/**
 * @package 	WordPress
 * @subpackage 	Logistic Business
 * @version 	1.0.9
 * 
 * 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

-------------------------------------------------------------------------*/
/***************** Functions ******************/
/*-------------------------------------------------------------------------*/
/*	Browser Reset */
/*-------------------------------------------------------------------------*/
body {
  text-align: left;
}
div {
  text-align: left;
}
p {
  padding: 0 0 20px;
  margin: 0;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  padding: 0;
  margin: 0 0 20px;
}
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: 20px;
}
ul {
  list-style-type: none;
  padding-left: 15px;
}
ul > li {
  display: block;
  position: relative;
}
ul > li:before {
  content: '\e937';
  font-family: 'fontello';
  font-size: 4px;
  font-style: normal;
  font-weight: normal;
  speak: none;
  display: inline-block;
  text-decoration: inherit;
  width: 1em;
  padding: 0;
  margin: 0;
  text-align: center;
  font-variant: normal;
  text-transform: none;
  line-height: 1em;
  position: absolute;
  top: 18px;
  left: -14px;
}
ul > li:first-child:before {
  top: 8px;
}
ul > li li:first-child:before {
  top: 8px;
}
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: 20px;
}
address {
  margin: 0 0 20px;
}
pre {
  margin: 0 0 20px;
}
dd {
  margin: 0 0 20px;
}
blockquote {
  padding-left: 45px;
  padding-right: 0;
  margin: 0 0 20px;
  /* don't touch */
  position: relative;
  quotes: none;
}
blockquote:before,
blockquote:after {
  content: none;
}
blockquote p:last-of-type {
  margin: 0;
  padding: 0;
}
blockquote:before {
  content: '\e8ef';
  font-family: 'fontello';
  font-size: 20px;
  line-height: 30px;
  position: absolute;
  left: 1px;
  top: -5px;
}
blockquote cite {
  display: block;
}
table {
  border-spacing: 0;
  border-collapse: separate;
  width: 100%;
  margin-bottom: 20px;
  /* don't touch */
  /* for gutenberg start */
  /* for gutenberg end */
}
table th,
table td {
  border-width: 0;
  border-style: solid;
  /* for gutenberg */
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
table tr th:first-child,
table tr td:first-child {
  border-left-width: 1px;
  border-left-style: solid;
}
table tr th:last-child,
table tr td:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
table thead tr:first-child th {
  border-top-width: 1px;
  border-top-style: solid;
}
table thead tr th,
table thead tr td {
  padding: 15px 20px;
}
table thead + tbody tr:first-child th,
table thead + tbody tr:first-child td {
  border-top-width: 0;
  border-top-style: solid;
}
table.is-style-stripes {
  border-width: 0;
  border-style: solid;
}
table.is-style-stripes tr:nth-child(odd) {
  background-color: transparent !important;
}
table tbody tr:first-child th,
table tbody tr:first-child td {
  border-top-width: 1px;
  border-top-style: solid;
}
table tbody tr th,
table tbody tr td {
  padding: 13px 30px;
}
table tfoot tr th,
table tfoot tr td {
  padding: 16px 30px;
}
table caption {
  text-align: center;
  padding: 20px;
}
.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=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]),
textarea,
option {
  padding: 8px;
  max-width: 100%;
  border-width: 1px;
  border-style: solid;
}
address {
  margin: 0 0 20px;
}
ol {
  list-style-type: decimal-leading-zero;
}
dl {
  display: block;
  overflow: hidden;
}
dt {
  display: block;
  font-weight: bold;
  overflow: hidden;
}
dd {
  display: block;
  margin: 0 0 20px;
  overflow: hidden;
}
blockquote:after,
q:after {
  content: none;
}
del {
  text-decoration: line-through;
}
input {
  line-height: normal;
}
select {
  line-height: 1em;
  text-indent: 0.01px;
  text-transform: none;
  text-overflow: '';
  min-width: 100px;
  max-width: 100%;
  height: 40px;
  padding: 8px 40px 8px 18px;
  background-position: 100% center;
  background-repeat: no-repeat;
  -webkit-appearance: none;
  -moz-appearance: none;
  -ms-appearance: none;
  appearance: none !important;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 2px;
  border-radius: 2px;
  background-image: url('../img/select.png');
}
select::-ms-expand {
  display: none;
}
select::-ms-expand {
  display: none;
}
option {
  -webkit-border-radius: 0;
  border-radius: 0;
}
textarea {
  padding: 9px 18px;
}
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;
}
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: 38px;
}
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,
textarea:focus {
  border-width: 1px;
  border-style: solid;
}
input[type=submit],
input[type=button],
button {
  max-width: 100%;
  cursor: pointer;
}
option {
  border: 0;
}
input:-webkit-autofill {
  -webkit-animation-name: autofill;
  -webkit-animation-fill-mode: both;
}
.jetpack_subscription_widget #subscribe-email 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]) {
  width: 100% !important;
  padding: 8px 18px !important;
}
.widget_wysija_cont .wysija-submit {
  display: inline-block !important;
  margin: 0 !important;
}
.gform_wrapper 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]),
.gform_wrapper textarea {
  padding: 8px !important;
}
.gform_wrapper select {
  padding: 8px !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;
  height: 100%;
  vertical-align: middle;
}
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: 220px;
  margin: 20px 0 0;
  padding: 10px 0 20px;
  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: 220px;
  margin: 20px 0 0;
  padding: 10px 0 20px;
}
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: 0px 0 0;
  visibility: visible;
  opacity: 1;
}
.header_top nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
.header_bot nav > div > ul li:hover > ul {
  margin: 0px 0 0;
}
nav > div > ul li:hover > ul:before {
  content: '';
  width: 100%;
  height: 0px;
  position: absolute;
  left: 0;
  top: -1px;
}
.header_top nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
.header_bot nav > div > ul li:hover > ul:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0px 0 0;
  visibility: visible;
  opacity: 1;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container {
  margin: 0px 0 0;
}
nav > div > ul li:hover > div.menu-item-mega-container:before {
  content: '';
  width: 100%;
  height: 0px;
  position: absolute;
  left: 0;
  top: -1px;
}
.header_bot nav > div > ul li:hover > div.menu-item-mega-container:before {
  width: 100%;
  height: 0px;
  top: -1px;
}
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 2px;
}
.header_top nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
.header_bot nav > div > ul li li:hover > ul {
  margin: 0 0 0 2px;
}
nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  top: 0;
  left: -3px;
}
.header_top nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
.header_bot nav > div > ul li li:hover > ul:before {
  width: 2px;
  height: 100%;
  left: -3px;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul {
  margin: 0 2px 0 0;
}
nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  left: auto;
  right: -3px;
}
.header_bot nav > div > ul li.menu-item-dropdown-right li:hover > ul:before {
  right: -3px;
}
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 0;
  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;
  border-right-width: 1px;
  border-right-style: solid;
}
nav > div > ul > li:last-child {
  border-right-width: 0;
  border-right-style: solid;
}
nav > div > ul > li li {
  padding: 0 20px;
}
nav > div > ul > li li > a {
  border-bottom-width: 1px;
  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: 10px 15px 20px;
  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 15px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > a {
  margin-bottom: 7px;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 220px;
  margin: 0;
  padding: 0;
}
nav > div > ul div.menu-item-mega-container > ul > li > ul li {
  padding: 0;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li > ul {
  width: 220px;
}
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%;
}
.header_bot nav > div > ul div.menu-item-mega-container > ul > li > a:before,
.header_mid nav > div > ul div.menu-item-mega-container > ul > li > a:before {
  content: none;
}
.header_bot nav > div > ul ul li.current-menu-item > a:before,
.header_mid nav > div > ul ul li.current-menu-item > a:before {
  height: 2px;
}
.header_bot nav > div > ul ul li a,
.header_mid nav > div > ul ul li a {
  position: relative;
}
.header_bot nav > div > ul ul li a:before,
.header_mid nav > div > ul ul li a:before {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  bottom: -1px;
  left: 0;
  opacity: 0;
}
.header_bot nav > div > ul ul li a:hover:before,
.header_mid nav > div > ul ul li a:hover:before {
  opacity: 1;
}
.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: 20px;
  margin-bottom: 20px;
}
img.alignright,
img.fr {
  margin-left: 20px;
  margin-bottom: 20px;
}
img.aligncenter {
  margin: 0 auto 20px;
}
img.alignnone {
  margin-bottom: 20px;
}
.dn {
  display: none;
}
.tal,
.ta_left {
  text-align: left;
}
.tac,
.ta_center {
  text-align: center;
}
.tar,
.ta_right {
  text-align: right;
}
.cl,
.clear {
  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;
}
.one_first,
.one_half,
.one_third,
.two_third,
.one_fourth,
.three_fourth,
.one_fifth,
.one_sixth {
  margin: 0 2%;
  position: relative;
  float: left;
}
.one_sixth {
  width: 12.67%;
}
.cmsmasters_row_no_margin .one_sixth {
  width: 16.67%;
}
.one_fifth {
  width: 16%;
}
.cmsmasters_row_no_margin .one_fifth {
  width: 20%;
}
.one_fourth {
  width: 21%;
}
.cmsmasters_row_no_margin .one_fourth {
  width: 25%;
}
.one_third {
  width: 29.33%;
}
.cmsmasters_row_no_margin .one_third {
  width: 33.33%;
}
.one_half {
  width: 46%;
}
.cmsmasters_row_no_margin .one_half {
  width: 50%;
}
.two_third {
  width: 62.67%;
}
.cmsmasters_row_no_margin .two_third {
  width: 66.67%;
}
.three_fourth {
  width: 71%;
}
.cmsmasters_row_no_margin .three_fourth {
  width: 75%;
}
.one_first {
  width: 96%;
  float: none;
  position: relative;
  clear: both;
}
.cmsmasters_row_no_margin .one_first {
  width: 100%;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.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 {
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: flex;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column:after {
  content: none;
}
.cmsmasters_row_margin.cmsmasters_row_columns_behavior .cmsmasters_column > div {
  width: 100%;
}
[data-animation] {
  opacity: 0;
}
[data-animation].animated {
  opacity: 1;
}
#page.cmsmasters_boxed {
  width: 1000px;
  margin: 0 auto;
}
#page.cmsmasters_boxed .middle_inner,
#page.cmsmasters_boxed #header {
  width: 1000px;
  margin: 0 auto;
}
#page,
#main,
#middle,
.middle_content,
#bottom,
#footer,
.headline,
.headline_outer,
.cmsmasters_row,
.cmsmasters_row_outer,
.cmsmasters_row_outer_parent {
  width: 100%;
  position: relative;
}
.middle_content {
  padding: 40px 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,
.footer_copyright_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 -2.07%;
  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:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.content {
  width: 74%;
  padding: 70px 0 40px;
  position: relative;
  float: left;
}
.content.fr {
  float: right;
}
.sidebar {
  width: 26%;
  padding: 70px 0 40px 30px;
  position: relative;
  float: right;
}
.sidebar.fl {
  padding: 70px 30px 40px 0;
  float: left;
}
.bottom_bg {
  padding-top: 50px;
  padding-bottom: 50px;
}
.bottom_inner {
  margin: 0 -2%;
}
.bottom_inner aside {
  position: relative;
  float: left;
  margin: 0 2%;
}
/***************** Icons ******************/
/* Global */
.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';
}
/* Arrows */
.cmsmasters_theme_icon_slide_prev:before,
.cmsmasters_theme_icon_pagination_prev:before,
.cmsmasters_theme_icon_comments_nav_prev:before,
.cmsmasters_prev_arrow span:before {
  content: '\eb1d';
}
.cmsmasters_theme_icon_slide_next:before,
.cmsmasters_theme_icon_pagination_next:before,
.cmsmasters_theme_icon_comments_nav_next:before,
.cmsmasters_next_arrow span:before {
  content: '\eb1e';
}
.post.cmsmasters_default_type.format-gallery .cmsmasters_prev_arrow span:before,
.post.cmsmasters_masonry_type.format-gallery .cmsmasters_prev_arrow span:before,
.post.cmsmasters_timeline_type.format-gallery .cmsmasters_prev_arrow span:before,
.cmsmasters_content_slider .cmsmasters_prev_arrow span:before {
  content: '\e94e';
}
.post.cmsmasters_default_type.format-gallery .cmsmasters_next_arrow span:before,
.post.cmsmasters_masonry_type.format-gallery .cmsmasters_next_arrow span:before,
.post.cmsmasters_timeline_type.format-gallery .cmsmasters_next_arrow span:before,
.cmsmasters_content_slider .cmsmasters_next_arrow span:before {
  content: '\e94f';
}
.cmsmasters_theme_icon_slide_top:before,
.cmsmasters_theme_icon_resp_nav_slide_up:before {
  content: '\eb23';
}
.cmsmasters_theme_icon_slide_bottom:before,
.cmsmasters_theme_icon_resp_nav_slide_down:before {
  content: '\e951';
}
/* Widget Add Info */
.cmsmasters_theme_icon_user_mail:before {
  content: '\eaae';
}
.cmsmasters_theme_icon_user_user:before {
  content: '\e8ae';
}
.cmsmasters_theme_icon_user_website:before {
  content: '\e98b';
}
.cmsmasters_theme_icon_user_phone:before {
  content: '\eb55';
}
.cmsmasters_theme_icon_user_address:before {
  content: '\eaeb';
}
/* Twitter stripe */
.cmsmasters_theme_icon_user_twitter:before {
  content: '\eb9a';
}
/* 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: 30px;
  height: 30px;
  position: relative;
  text-align: center;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_prev_arrow:after,
.cmsmasters_next_arrow:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.cmsmasters_prev_arrow span,
.cmsmasters_next_arrow span {
  display: inline-block;
  width: 6px;
  height: 10px;
  vertical-align: middle;
}
.cmsmasters_prev_arrow span:before,
.cmsmasters_next_arrow span:before {
  font-family: 'fontello';
  font-size: 14px;
  line-height: 10px;
  text-align: center;
  display: block;
  speak: none;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
/* 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: 38px;
  display: inline-block;
  margin: 0 0 0 5px;
  vertical-align: bottom;
}
/* Prelodaer */
.preloader {
  display: block;
  width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  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: 56.25%;
  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;
  overflow: hidden;
  text-align: center;
}
.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: 56.25%;
  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: 56.25%;
  position: relative;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  text-align: center;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link {
  display: inline-block;
  width: 36px;
  height: 36px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -25px;
  bottom: 0;
  opacity: 0;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link:before {
  content: '\e810';
  font-family: 'fontello-custom';
  font-size: 40px;
  line-height: 44px;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link {
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -25px;
  bottom: 0;
  opacity: 0;
}
.cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link .cmsmasters_theme_icon_search:before {
  font-size: 24px;
}
.cmsmasters_img_rollover_wrap:hover .cmsmasters_img_rollover .cmsmasters_open_post_link {
  top: 0;
  opacity: 1;
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -ms-transform: rotateY(180deg);
  transform: rotateY(180deg);
}
.cmsmasters_img_rollover_wrap:hover .cmsmasters_img_rollover .cmsmasters_image_link {
  top: 0;
  opacity: 1;
}
/* Placeholder Small */
.img_placeholder_small {
  height: 60px;
  width: 60px;
  display: block;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  border-width: 1px;
  border-style: solid;
}
.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: 20px;
  max-width: 100%;
}
.cmsmasters_video_wrap {
  width: 100%;
  max-width: 100%;
  height: 0;
  padding-bottom: 56.25%;
  margin-bottom: 20px;
  position: relative;
  overflow: hidden;
}
.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: 36px;
}
.search_bar_wrap .search_button {
  padding: 0;
  margin: 0;
  width: 36px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  overflow: hidden;
}
.search_bar_wrap .search_button button {
  font-size: 15px;
  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 {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 5px;
  right: auto;
  top: 0;
  bottom: 0;
}
/* 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;
  height: 100%;
  vertical-align: middle;
}
.social_wrap ul {
  list-style: none;
  display: inline-block;
  margin: 0;
  padding: 0;
  vertical-align: middle;
}
.social_wrap li {
  display: inline-block;
  margin: 0 5px 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: 30px;
  height: 30px;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.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;
  display: block;
  height: 0;
  visibility: hidden;
  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: 15px;
  text-align: center;
}
.owl-pagination .owl-page {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 4px 1px;
  text-indent: -9999px;
  cursor: pointer;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.owl-pagination .owl-page:first-child {
  margin-left: 0;
}
.owl-pagination .owl-page:last-child {
  margin-right: 0;
}
.owl-pagination .owl-page:hover,
.owl-pagination .owl-page.active {
  -webkit-box-shadow: none;
  box-shadow: none;
}
.owl-pagination .owl-page.active {
  cursor: default;
}
.owl-buttons {
  display: block;
  text-align: center;
}
.owl-buttons > div {
  display: inline-block;
  cursor: pointer;
  position: relative;
}
/* Slide Top Button */
#slide_top {
  text-align: center;
  width: 50px;
  height: 50px;
  position: fixed;
  bottom: 20px;
  right: 20px;
  z-index: 99999;
  display: none;
}
#slide_top:before {
  font-size: 20px;
  line-height: 50px;
}
#slide_top > span {
  display: inline-block;
  text-indent: -9999px;
}
/* Button */
.middle_inner #fbuilder .pbreak .pbPrevious,
.middle_inner #fbuilder .pbreak .pbNext,
.button,
input[type=submit],
input[type=button],
button {
  display: inline-block;
  padding: 0 25px;
  position: relative;
  white-space: nowrap;
  text-align: center;
  border-width: 0;
  border-style: solid;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}
/* Items Filter */
.cmsmasters_items_filter_wrap {
  padding: 0 0 50px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter {
  position: relative;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_block {
  display: block;
  position: relative;
  float: right;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but {
  display: block;
  margin: 7px 0 0 20px;
  padding: 0 28px 0 0;
  float: left;
  border-width: 0;
  border-style: solid;
  background: none;
  position: relative;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:before {
  content: '';
  display: block;
  width: 5px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 6px;
  top: -2px;
  bottom: 0;
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but:after {
  content: '';
  display: block;
  width: 5px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 6px;
  top: 2px;
  bottom: 0;
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:before {
  -webkit-transform: rotate(135deg);
  -moz-transform: rotate(135deg);
  -ms-transform: rotate(135deg);
  transform: rotate(135deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but.reversed:after {
  -webkit-transform: rotate(45deg);
  -moz-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}
.cmsmasters_items_filter_wrap .cmsmasters_items_sort_but > span:before {
  content: '';
  width: 18px;
  height: 18px;
  margin: auto;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_block {
  position: relative;
  float: left;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_but {
  display: none;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list {
  margin: 0 0 -1px;
  padding: 0 20px 0 0;
  overflow: visible !important;
}
.cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li {
  display: inline-block;
  margin: 0 0 -5px;
  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 {
  border-color: transparent;
  background-color: transparent;
  display: inline-block;
  padding: 7px 20px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 3px;
  border-top-style: solid;
  -webkit-border-radius: 0;
  border-radius: 0;
  -webkit-box-shadow: none;
  box-shadow: none;
}
/* More Items Loader and Pagination */
.cmsmasters_wrap_more_items {
  width: 100%;
  padding: 40px 0 0;
  overflow: hidden;
}
.cmsmasters_wrap_items_loader {
  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 {
  overflow: hidden;
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
.cmsmasters_wrap_pagination ul {
  display: inline-block;
  padding: 0;
  margin: 0;
}
.cmsmasters_wrap_pagination ul li {
  display: block;
  margin: 0;
  padding: 0;
  float: left;
}
.cmsmasters_wrap_pagination ul li:before {
  content: none;
}
.cmsmasters_wrap_pagination ul li:first-child .page-numbers {
  border-left-width: 1px;
  border-left-style: solid;
}
.cmsmasters_wrap_pagination ul li .page-numbers {
  line-height: 40px;
  display: block;
  min-width: 40px;
  height: 40px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  border-left-width: 0;
  border-left-style: solid;
  text-align: center;
}
.cmsmasters_wrap_pagination ul li .page-numbers:before {
  content: '';
  display: block;
  height: 2px;
  position: absolute;
  top: 0;
  left: -1px;
  right: -1px;
  opacity: 0;
}
.cmsmasters_wrap_pagination ul li .page-numbers:hover:before,
.cmsmasters_wrap_pagination ul li .page-numbers.current:before {
  opacity: 1;
}
.cmsmasters_wrap_pagination:empty {
  display: none;
}
/* Post Navigation */
.post_nav {
  margin-top: 30px;
  padding: 25px 20px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  overflow: hidden;
}
.post_nav > span {
  display: block;
  position: relative;
}
.post_nav > span a {
  display: inline-block;
  padding: 4px 0;
  position: relative;
  z-index: 2;
}
.post_nav > span > span {
  margin: auto !important;
  position: absolute;
  top: 0;
  bottom: 0;
  width: 26px;
  height: 26px;
}
.post_nav > span > span > span {
  height: 12px;
}
.post_nav > span > span > span:before {
  font-size: 13px;
  line-height: 1em;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.post_nav > span.cmsmasters_prev_post {
  padding-right: 20px;
  float: left;
}
.post_nav > span.cmsmasters_prev_post a {
  padding-left: 40px;
}
.post_nav > span.cmsmasters_prev_post > span {
  left: 0;
  right: auto;
}
.post_nav > span.cmsmasters_next_post {
  padding-left: 20px;
  float: right;
}
.post_nav > span.cmsmasters_next_post a {
  padding-right: 40px;
}
.post_nav > span.cmsmasters_next_post > span {
  left: auto;
  right: 0;
}
/* Share Posts */
.share_posts {
  padding: 15px 0 0;
  position: relative;
  overflow: hidden;
}
.share_posts .share_posts_title {
  position: relative;
  margin-bottom: 12px;
}
.share_posts .share_posts_inner {
  position: relative;
  overflow: hidden;
}
.share_posts a {
  display: inline-block;
  position: relative;
  margin-right: 2px;
}
.share_posts a:before {
  font-family: 'fontello';
  font-size: 26px;
  margin: 0;
}
/* About Author */
.about_author {
  padding: 50px 0 0;
  position: relative;
}
.about_author .about_author_inner {
  overflow: hidden;
}
.about_author .about_author_avatar {
  margin: 0 25px 0 0;
  border-width: 5px;
  border-style: solid;
  float: left;
  overflow: hidden;
}
.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: 0 0 10px;
}
/* Single Post Slider */
.cmsmasters_single_slider {
  padding: 50px 0 0;
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .preloader {
  padding-bottom: 60.34%;
}
.cmsmasters_single_slider .preloader.highImg {
  height: auto;
  padding: 0;
}
.cmsmasters_single_slider .cmsmasters_owl_slider {
  padding-bottom: 0;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_date {
  display: block;
  padding: 12px 20px;
  border-width: 1px;
  border-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.cmsmasters_single_slider .cmsmasters_single_slider_title {
  margin: 0 0 20px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_inner {
  margin: 0 -20px;
  padding-top: 5px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item {
  min-width: 200px;
  padding: 0 20px;
  position: relative;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_outer {
  position: relative;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_inner {
  padding: 15px 20px;
  position: relative;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  overflow: hidden;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_title {
  margin: 0;
  padding: 0;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_meta {
  padding-top: 15px;
}
.cmsmasters_single_slider .cmsmasters_single_slider_item_meta a {
  margin-right: 10px;
}
.cmsmasters_single_slider .owl-buttons {
  position: absolute;
  right: 20px;
  top: -52px;
}
.cmsmasters_single_slider .owl-buttons > div {
  margin-left: 3px;
}
/* Post Comments */
.post_comments {
  padding: 45px 0 0;
  position: relative;
}
.post_comments:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .post_comments_title {
  margin: 0 0 5px;
}
.post_comments .commentlist {
  list-style: none;
  margin: 0;
  padding: 0;
}
.post_comments .commentlist:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .children {
  list-style: none;
  margin: 0;
  padding: 0 0 0 30px;
}
.post_comments .comment {
  margin: 0;
  padding: 25px 0 0;
}
.post_comments .comment:before {
  content: none;
}
.post_comments .comment:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .cmsmasters_comment_item {
  position: relative;
}
.post_comments .cmsmasters_comment_item:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.post_comments .comment-reply-link {
  float: right;
  margin-left: 15px;
}
.post_comments .cmsmasters_comment_item_date {
  float: right;
  margin-left: 15px;
}
.post_comments .cmsmasters_comment_item_avatar_wrap {
  margin: 0 25px 0 0;
  float: left;
  text-align: center;
}
.post_comments .cmsmasters_comment_item_avatar {
  display: block;
  margin-bottom: 4px;
  border-width: 3px;
  border-style: solid;
  overflow: hidden;
}
.post_comments .cmsmasters_comment_item_cont {
  position: relative;
  margin-top: -3px;
  overflow: hidden;
}
.post_comments .cmsmasters_comment_item_cont_info {
  padding: 0 0 10px;
  position: relative;
  overflow: hidden;
}
.post_comments .cmsmasters_comment_item_title {
  display: inline-block;
  margin: 0;
  padding: 0;
}
.post_comments .cmsmasters_comment_item_content > *:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
}
/* Like, Comment button */
.cmsmastersLike {
  font-size: 13px;
  cursor: pointer;
}
.cmsmastersLike:before {
  position: relative;
  top: 1px;
}
.cmsmastersLike.active {
  cursor: default;
}
.cmsmastersLike span {
  padding-left: 5px;
}
.cmsmasters_post_comments {
  font-size: 13px;
}
.cmsmasters_post_comments:before {
  position: relative;
  top: 1px;
}
.cmsmasters_post_comments span {
  padding-left: 5px;
}
/* Comment Respond */
.comment-respond {
  padding: 50px 0 0;
  position: relative;
}
.comment-respond:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond textarea {
  min-height: 170px;
}
.comment-respond label {
  padding-bottom: 10px;
  display: inline-block;
}
.comment-respond p {
  padding-bottom: 15px;
}
.comment-respond .comment-reply-title {
  position: relative;
}
.comment-respond .comment-reply-title small {
  float: right;
}
.comment-respond .comment-form {
  position: relative;
}
.comment-respond .comment-form:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.comment-respond .comment-notes,
.comment-respond .logged-in-as {
  padding-bottom: 20px;
  clear: both;
}
.comment-respond .comment-form-author,
.comment-respond .comment-form-email {
  float: left;
  width: 50%;
}
.comment-respond .comment-form-author input,
.comment-respond .comment-form-email input {
  width: 100%;
}
.comment-respond .comment-form-cookies-consent {
  float: none;
  padding: 15px 0;
  position: relative;
  clear: both;
}
.comment-respond .comment-form-cookies-consent input {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: 0;
  bottom: 0;
}
.comment-respond .comment-form-cookies-consent label {
  padding: 2px 0 0 22px;
}
.comment-respond .comment-form-author {
  padding-right: 20px;
}
.comment-respond .comment-form-email {
  padding-left: 20px;
}
.comment-respond .comment-form-comment textarea {
  width: 100%;
}
.comment-respond .form-submit {
  padding-top: 10px;
  clear: both;
}
.nocomments {
  margin: 50px 0 0;
  position: relative;
  overflow: hidden;
}
/*-------------------------------------------------------------------------*/
/*	Header + Centered + Right + Fixed Versions */
/*-------------------------------------------------------------------------*/
/***************** Header ******************/
#header {
  width: 100%;
  position: absolute;
  z-index: 999;
}
.fixed_header #header {
  position: fixed;
}
/***************** 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: 14px;
  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;
}
.header_top .header_top_inner {
  height: 100%;
}
.header_top .header_top_inner:before {
  content: '';
  position: absolute;
  bottom: -1px;
  left: 20px;
  right: 20px;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_top .header_top_inner:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.header_top .header_top_right {
  height: 100%;
  float: right;
}
.header_top .header_top_left {
  height: 100%;
  padding: 0 20px 0 0;
  overflow: hidden;
}
.header_top .header_top_left:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_top .top_nav_wrap {
  display: block;
  height: 100%;
  text-align: center;
}
.header_top .responsive_top_nav {
  font-size: 14px;
  width: 12px;
  height: 10px;
  position: relative;
  border-top-width: 2px;
  border-top-style: solid;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  display: none;
}
.header_top .responsive_top_nav:before {
  content: '';
  position: absolute;
  top: 2px;
  left: 0;
  width: 12px;
  height: 2px;
}
.header_top .social_wrap {
  outline: none;
}
.header_top .social_wrap li {
  margin-right: 2px;
}
.header_top .social_wrap li:last-child {
  margin-right: 0;
}
.header_top .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 20px;
  height: 20px;
  opacity: 0.3;
}
.header_top .social_wrap a:hover {
  opacity: 1;
}
.header_top .meta_wrap {
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.header_top .meta_wrap > * {
  margin: 4px 16px 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: 4px 10px 0;
}
.top_line_nav > li > a:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.top_line_nav > li > a .nav_item_wrap {
  display: inline-block;
  vertical-align: middle;
}
.top_line_nav ul {
  left: -5px;
}
.top_line_nav ul li {
  padding: 0;
}
.top_line_nav ul li a {
  padding: 1px 15px;
}
.top_line_nav ul ul {
  left: 100%;
}
/***************** Header Mid ******************/
.header_mid {
  clear: both;
}
.header_mid.header_mid_scroll {
  position: relative;
}
.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_mid .logo_wrap {
  height: 100%;
  position: relative;
  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;
  height: 100%;
  vertical-align: middle;
}
.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 2px;
}
.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 .header_mid_but_wrap {
  height: 100%;
  margin-left: 30px;
  position: relative;
  float: right;
}
.header_mid .header_mid_but_wrap .header_mid_but_wrap_inner {
  height: 100%;
}
.header_mid .header_mid_but_wrap .header_mid_but_wrap_inner:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_mid .header_mid_but_wrap .header_mid_but {
  display: inline-block;
  padding: 0 20px;
  vertical-align: middle;
  line-height: 32px;
  border-width: 2px;
  border-style: solid;
  -webkit-border-radius: 18px;
  border-radius: 18px;
}
.header_mid .header_mid_but_wrap + .resp_mid_nav_wrap + .mid_nav_wrap {
  margin-left: 30px;
}
.header_mid .header_mid_but_wrap + .resp_mid_nav_wrap + .mid_nav_wrap + .search_wrap {
  float: left;
}
.header_mid .search_wrap {
  height: 100%;
  margin-left: 30px;
  position: relative;
  float: right;
}
.header_mid .search_wrap .search_wrap_inner {
  height: 100%;
}
.header_mid .search_wrap .search_wrap_inner:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_mid .search_wrap .search_wrap_in_inner {
  display: inline-block;
  vertical-align: middle;
  height: 36px;
  position: relative;
}
.header_mid .search_wrap .search_bar_wrap {
  width: auto;
  margin: 0;
  padding: 0;
  overflow: visible;
  position: absolute;
  right: 30px;
  top: 0;
  z-index: 202;
}
.header_mid .search_wrap .search_bar_wrap .search_field {
  width: 0;
  position: relative;
  opacity: 0;
}
.header_mid .search_wrap .search_bar_wrap .search_field input {
  padding-top: 3px;
  padding-bottom: 3px;
  padding-right: 36px;
  height: 36px;
}
.header_mid .search_wrap .search_bar_wrap .search_button {
  width: 0;
  opacity: 0;
}
.header_mid .search_wrap .search_bar_wrap .search_button button {
  background: none;
}
.header_mid .search_wrap .search_toggle {
  display: block;
  width: 20px;
  height: 36px;
  cursor: pointer;
}
.header_mid .search_wrap .search_toggle:before {
  font-size: 16px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_mid .search_wrap .search_toggle.cmsmasters_theme_icon_cancel:before {
  font-size: 15px;
}
.header_mid .search_wrap.search_opened .search_bar_wrap .search_field {
  width: 230px;
  opacity: 1;
}
.header_mid .search_wrap.search_opened .search_bar_wrap .search_button {
  width: 36px;
  opacity: 1;
}
.header_mid .social_wrap {
  outline: none;
  float: right;
  overflow: visible;
  margin-left: 7px;
}
.header_mid .social_wrap .social_wrap_inner {
  text-align: right;
}
.header_mid .social_wrap li {
  margin-left: 0;
  margin-right: 2px;
}
.header_mid .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.header_mid .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 20px;
  height: 20px;
}
.header_mid .slogan_wrap {
  height: 100%;
  display: block;
  margin-left: 10px;
  position: relative;
  float: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner {
  height: 100%;
  text-align: right;
}
.header_mid .slogan_wrap .slogan_wrap_inner:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_mid .slogan_wrap .slogan_wrap_text {
  display: inline-block;
  margin: -30px -20px 0;
  vertical-align: middle;
  text-align: center;
}
.header_mid .slogan_wrap .slogan_wrap_text > * {
  margin: 30px 20px 0;
  display: inline-block;
  vertical-align: middle;
  position: relative;
}
.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 {
  font-size: 24px;
  line-height: 1em;
  dispaly: inline-block;
  width: 1em;
  height: 1em;
  margin: auto;
  vertical-align: middle;
  position: relative;
  left: auto;
  right: auto;
  top: auto;
  bottom: auto;
}
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters-icon-"] > span,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters-icon-"] > span,
.header_mid .slogan_wrap .slogan_wrap_text > *[class^="cmsmasters_theme_icon_"] > span,
.header_mid .slogan_wrap .slogan_wrap_text > *[class*=" cmsmasters_theme_icon_"] > span {
  display: inline-block;
  vertical-align: middle;
  padding-left: 10px;
}
.header_mid .slogan_wrap .slogan_wrap_text > * * {
  display: block;
}
.header_mid .slogan_wrap .slogan_wrap_text > p {
  padding: 0;
}
.header_mid .slogan_wrap .slogan_wrap_text .adr {
  white-space: nowrap;
}
.header_mid .slogan_wrap.slogan_closed {
  visibility: hidden !important;
  opacity: 0 !important;
}
.header_mid .resp_mid_nav_wrap {
  position: relative;
  margin: 0 -20px;
  display: none;
  overflow: hidden;
  clear: both;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav_outer {
  text-align: center;
  padding: 18px 0;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav {
  display: inline-block;
  width: 16px;
  height: 10px;
  position: relative;
  border-top-width: 2px;
  border-top-style: solid;
  border-bottom-width: 2px;
  border-bottom-style: solid;
}
.header_mid .resp_mid_nav_wrap .resp_mid_nav:before {
  content: '';
  position: absolute;
  top: 2px;
  left: 0;
  display: block;
  width: 16px;
  height: 2px;
}
.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_nav_wrap {
  height: 100%;
  position: relative;
  float: right;
}
.header_mid .mid_nav_wrap.nav_closed {
  visibility: hidden;
  opacity: 0;
}
/***************** Header Mid Navigation ******************/
.mid_nav_wrap #navigation {
  display: inline-block;
  height: 100%;
  vertical-align: middle;
  position: relative;
}
.mid_nav_wrap #navigation > li {
  height: 100%;
  margin: 0;
  border-right-width: 0;
  border-right-style: solid;
}
.mid_nav_wrap #navigation > li > a {
  display: block;
  height: 100%;
  padding: 4px 10px;
}
.mid_nav_wrap #navigation > li > a:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.mid_nav_wrap #navigation > li > a .nav_item_wrap {
  display: inline-block;
  vertical-align: middle;
}
.mid_nav_wrap #navigation > li > a .nav_tag {
  display: inline-block;
  padding: 0 10px;
  margin-left: 5px;
}
.mid_nav_wrap #navigation ul li a {
  padding: 6px 0;
}
.mid_nav_wrap #navigation ul .nav_tag {
  display: inline-block;
  margin: 0 5px;
  padding: 0 3px;
}
.mid_nav_wrap #navigation .nav_subtitle {
  display: block;
}
/***************** Header Bot ******************/
.header_bot {
  clear: both;
}
.header_bot .header_bot_outer {
  height: 100%;
  position: relative;
}
.header_bot .header_bot_outer:before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.header_bot .header_bot_outer:after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  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 .resp_bot_nav_wrap {
  position: relative;
  display: none;
  overflow: hidden;
}
.header_bot .resp_bot_nav_wrap .resp_bot_nav_outer {
  outline: none;
}
.header_bot .bot_nav_wrap {
  height: 100%;
  position: relative;
  float: left;
}
.header_bot .bot_nav_wrap.nav_closed {
  visibility: hidden !important;
  opacity: 0 !important;
}
.enable_header_right .header_bot .bot_nav_wrap {
  float: right;
}
.enable_header_centered .header_bot .bot_nav_wrap {
  display: inline-block;
  float: none;
}
.header_bot .search_wrap {
  height: 100%;
  margin: 0 0 0 15px;
  position: relative;
  float: right;
}
.enable_header_right .header_bot .search_wrap {
  margin: 0 15px 0 0;
  float: left;
}
.header_bot .search_wrap .search_wrap_inner {
  height: 100%;
}
.header_bot .search_wrap .search_wrap_inner:after {
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle;
}
.header_bot .search_wrap .search_wrap_in_inner {
  border-color: transparent;
  height: 100%;
  position: relative;
  border-left-width: 1px;
  border-left-style: solid;
}
.header_bot .search_wrap .search_bar_wrap {
  width: auto;
  height: 36px;
  margin: auto !important;
  padding: 0;
  overflow: visible;
  position: absolute;
  right: 30px;
  left: auto;
  top: 0;
  bottom: 0;
  z-index: 202;
}
.header_bot .search_wrap .search_bar_wrap .search_field {
  width: 0;
  position: relative;
  opacity: 0;
}
.header_bot .search_wrap .search_bar_wrap .search_field input[type=search] {
  padding: 3px 0 3px 30px;
  height: 36px;
  border-width: 0;
  border-style: solid;
  -webkit-box-shadow: none !important;
  box-shadow: none !important;
}
.header_bot .search_wrap .search_bar_wrap .search_button {
  width: 0;
  opacity: 0;
  display: none;
}
.header_bot .search_wrap .search_bar_wrap .search_button button {
  background: none;
}
.header_bot .search_wrap .search_toggle {
  display: block;
  width: 66px;
  height: 100%;
  cursor: pointer;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
.header_bot .search_wrap .search_toggle:before {
  font-size: 22px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.header_bot .search_wrap .search_toggle.cmsmasters_theme_icon_cancel:before {
  font-size: 15px;
}
.header_bot .search_wrap.search_opened {
  width: 100%;
  height: 100%;
  margin: 0;
  position: absolute;
  left: 0;
  top: 0;
}
.header_bot .search_wrap.search_opened .search_wrap_inner {
  padding: 0 20px;
}
.header_bot .search_wrap.search_opened .search_wrap_in_inner {
  width: 100%;
}
.header_bot .search_wrap.search_opened .search_bar_wrap {
  width: 100%;
  padding: 0 80px 0 0;
  left: 0;
  right: auto;
}
.header_bot .search_wrap.search_opened .search_bar_wrap form {
  position: relative;
}
.header_bot .search_wrap.search_opened .search_bar_wrap .search_field {
  width: 100%;
  opacity: 1;
}
.header_bot .search_wrap.search_opened .search_bar_wrap .search_button {
  width: 36px;
  opacity: 1;
}
.header_bot .search_wrap.search_opened .search_toggle {
  border-left-color: transparent;
  position: absolute;
  right: 0;
  z-index: 203;
}
/***************** Header Bot Navigation ******************/
.bot_nav {
  position: relative;
}
.bot_nav > li {
  height: 100%;
  margin: 0;
  word-spacing: -2px;
  border-right-width: 1px;
  border-right-style: solid;
}
.bot_nav > li:first-child {
  border-left-width: 1px;
  border-left-style: solid;
}
.bot_nav > li:last-child {
  border-right-width: 1px;
  border-right-style: solid;
}
.bot_nav > li:hover:before,
.bot_nav > li.current-menu-ancestor:before,
.bot_nav > li.current-menu-item:before {
  width: 80%;
}
.bot_nav > li:before {
  content: '';
  display: block;
  width: 20px;
  height: 2px;
  position: absolute;
  left: -1px;
  top: -2px !important;
}
.bot_nav > li * {
  word-spacing: normal;
}
.bot_nav > li > a {
  display: block;
  height: 100%;
  padding: 13px 20px 13px 20px;
  -webkit-border-radius: 4px;
  border-radius: 4px;
}
.bot_nav > li > a .nav_item_wrap {
  display: block;
}
.bot_nav > li > a .nav_tag {
  display: inline-block;
  padding: 0 10px;
  margin-left: 5px;
}
.bot_nav ul a {
  padding: 7px 0 4px;
}
.bot_nav ul .nav_tag {
  display: inline-block;
  margin: 0 5px;
  padding: 0 3px;
}
.bot_nav .nav_subtitle {
  display: block;
}
.navigation_wrap > .navigation {
  width: auto;
}
/*-------------------------------------------------------------------------*/
/*	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: 10px;
  padding-bottom: 10px;
  vertical-align: middle;
  overflow: hidden;
}
.headline_outer {
  background-position: top center;
  position: relative;
  z-index: 1;
}
.headline_outer:not(.headline_disabled) {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.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 {
  display: inline-block;
  vertical-align: middle;
  position: relative;
  padding: 15px 0;
}
.headline_outer .headline_inner .headline_text:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
  vertical-align: middle;
}
.headline_outer .headline_inner .headline_text .entry-title {
  word-wrap: break-word;
  margin: 0;
}
.headline_outer .headline_inner .headline_text .entry-subtitle {
  margin: 5px 0 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 {
  float: right;
}
.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 {
  float: left;
}
.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 .cmsmasters_breadcrumbs {
  text-align: center;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_aligner {
  display: none;
}
.headline_outer .headline_inner.align_center .cmsmasters_breadcrumbs .cmsmasters_breadcrumbs_inner {
  padding: 20px 0;
}
.content_wrap {
  display: block;
  min-width: inherit;
}
/*-------------------------------------------------------------------------*/
/*	Bottom + Footer Styles
/*-------------------------------------------------------------------------*/
/***************** Bottom ******************/
.bottom_inner .widgettitle {
  margin-bottom: 35px;
  position: relative;
}
/***************** Footer ******************/
#footer {
  overflow: hidden;
}
.footer_border {
  border-top-width: 1px;
  border-top-style: solid;
}
.footer_inner {
  position: relative;
  overflow: hidden;
}
.footer_inner .social_wrap ul {
  line-height: 0;
}
/***************** Footer Default ******************/
.cmsmasters_footer_default .footer_inner {
  padding: 50px 0 10px;
}
.cmsmasters_footer_default .footer_inner > div:first-child {
  padding-top: 0;
}
.cmsmasters_footer_default .footer_logo_wrap {
  position: relative;
  text-align: center;
  overflow: hidden;
}
.cmsmasters_footer_default .footer_logo_wrap .footer_logo {
  display: inline-block;
}
.cmsmasters_footer_default .footer_logo_wrap .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;
}
.cmsmasters_footer_default .footer_nav_wrap {
  padding: 35px 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;
  margin: -5px -15px 0;
}
.cmsmasters_footer_default .footer_nav > li {
  float: none;
  display: inline-block;
  margin: 5px 15px 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_default .footer_nav > li ul {
  display: none !important;
}
.cmsmasters_footer_default .social_wrap {
  padding: 40px 0 0;
}
.cmsmasters_footer_default .social_wrap .social_wrap_inner {
  text-align: center;
}
.cmsmasters_footer_default .social_wrap li {
  margin-left: 0;
  margin-right: 5px;
}
.cmsmasters_footer_default .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_default .social_wrap a {
  font-size: 14px;
  line-height: 14px;
  width: 30px;
  height: 30px;
}
.cmsmasters_footer_default .footer_copyright {
  display: block;
  padding: 55px 0 0;
  text-align: center;
}
/***************** Footer Small ******************/
.cmsmasters_footer_small .footer_border {
  padding: 10px 0;
}
.cmsmasters_footer_small .footer_nav_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_nav {
  width: auto;
  margin: -5px -12px 0;
}
.cmsmasters_footer_small .footer_nav > li {
  float: none;
  display: inline-block;
  margin: 5px 12px 0;
  border-width: 0;
  border-style: solid;
}
.cmsmasters_footer_small .social_wrap {
  float: right;
}
.cmsmasters_footer_small .social_wrap li {
  margin-left: 0;
  margin-right: 5px;
}
.cmsmasters_footer_small .social_wrap li:last-child {
  margin-left: 0;
  margin-right: 0;
}
.cmsmasters_footer_small .social_wrap a {
  font-size: 12px;
  line-height: 12px;
  width: 16px;
  height: 16px;
}
.cmsmasters_footer_small .footer_custom_html_wrap {
  position: relative;
  float: right;
  overflow: hidden;
}
.cmsmasters_footer_small .footer_copyright {
  display: block;
  padding: 0 20px 0 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.columns {
  margin: 0 -20px;
}
.blog.timeline:before {
  content: '';
  width: 1px;
  height: 100%;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.blog .cmsmasters_wrap_pagination {
  margin-top: 50px;
}
/***************** Blog Default ******************/
.post.cmsmasters_default_type {
  max-width: 100%;
  width: 100%;
  padding: 60px 0 0;
  position: relative;
  overflow: hidden;
}
.post.cmsmasters_default_type .preloader {
  padding-bottom: 58.14%;
}
.post.cmsmasters_default_type .preloader.highImg {
  height: auto;
  padding: 0;
}
.post.cmsmasters_default_type:first-child {
  padding-top: 0;
}
.post.cmsmasters_default_type .cmsmasters_post_date {
  float: left;
  width: 60px;
  margin-right: 30px;
}
.post.cmsmasters_default_type .cmsmasters_post_date .published {
  display: block;
}
.post.cmsmasters_default_type .cmsmasters_post_date .cmsmasters_day {
  font-size: 30px;
  line-height: 34px;
  display: block;
  padding: 10px 5px 6px;
  text-align: center;
}
.post.cmsmasters_default_type .cmsmasters_post_date .cmsmasters_mon {
  font-size: 13px;
  line-height: 20px;
  display: block;
  padding: 5px 5px 4px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  text-align: center;
}
.post.cmsmasters_default_type .cmsmasters_post_cont {
  overflow: hidden;
}
.post.cmsmasters_default_type .cmsmasters_owl_slider,
.post.cmsmasters_default_type .cmsmasters_img_wrap {
  margin-bottom: 35px;
}
.post.cmsmasters_default_type .cmsmasters_post_title {
  margin-bottom: 15px;
}
.post.cmsmasters_default_type .cmsmasters_post_content p {
  padding-bottom: 16px;
}
.post.cmsmasters_default_type .cmsmasters_post_footer {
  padding-bottom: 25px;
}
.post.cmsmasters_default_type .cmsmasters_post_cont_info {
  border-top-width: 1px;
  border-top-style: solid;
  padding: 13px 0;
}
.post.cmsmasters_default_type .cmsmasters_post_cont_info > * {
  margin-right: 10px;
}
.post.cmsmasters_default_type .cmsmasters_post_meta_info {
  float: right;
  margin: 0;
}
.post.cmsmasters_default_type .cmsmasters_post_meta_info > a {
  margin-left: 10px;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div {
  display: block;
  width: 40px;
  height: 100%;
  position: absolute;
  top: 0;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div > span {
  background: none;
  border-width: 0;
  border-style: solid;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div > span span {
  width: 10px;
  height: 14px;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div > span span:before {
  font-size: 26px;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div.owl-prev {
  left: -40px;
}
.post.cmsmasters_default_type.format-gallery .owl-buttons > div.owl-next {
  right: -40px;
}
.post.cmsmasters_default_type.format-gallery .cmsmasters_owl_slider {
  overflow: hidden;
}
.post.cmsmasters_default_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-prev {
  left: 0;
}
.post.cmsmasters_default_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-next {
  right: 0;
}
/***************** Blog Masonry ******************/
.post.cmsmasters_masonry_type {
  min-width: 280px;
  padding: 0 20px 40px;
  float: left;
  opacity: 0;
}
.post.cmsmasters_masonry_type.shortcode_animated {
  opacity: 1;
}
.post.cmsmasters_masonry_type .preloader {
  padding-bottom: 60.34%;
}
.post.cmsmasters_masonry_type .preloader.highImg {
  height: auto;
  padding: 0;
}
.post.cmsmasters_masonry_type .cmsmasters_video_wrap,
.post.cmsmasters_masonry_type .resizable_block {
  padding-bottom: 60.34%;
}
.post.cmsmasters_masonry_type .cmsmasters_post_date {
  display: block;
  border-width: 1px;
  border-style: solid;
  border-bottom-width: 0;
  border-bottom-style: solid;
  padding: 12px 20px;
}
.post.cmsmasters_masonry_type .cmsmasters_post_date + .cmsmasters_post_cont_inner {
  border-top-width: 1px;
  border-top-style: solid;
}
.post.cmsmasters_masonry_type .cmsmasters_post_cont_inner {
  padding: 17px 20px 15px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
}
.post.cmsmasters_masonry_type .cmsmasters_post_title {
  margin: 0;
}
.post.cmsmasters_masonry_type .cmsmasters_post_cont_info {
  margin-bottom: 12px;
}
.post.cmsmasters_masonry_type .cmsmasters_post_cont_info > * {
  margin-right: 10px;
}
.post.cmsmasters_masonry_type .cmsmasters_post_content {
  padding-bottom: 15px;
}
.post.cmsmasters_masonry_type .cmsmasters_post_content p {
  padding: 0;
}
.post.cmsmasters_masonry_type .cmsmasters_post_meta_info a {
  margin-right: 10px;
}
.post.cmsmasters_masonry_type .cmsmasters_post_read_more {
  float: right;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div {
  display: block;
  width: 40px;
  height: 100%;
  position: absolute;
  top: 0;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div > span {
  background: none;
  border-width: 0;
  border-style: solid;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div > span span {
  width: 10px;
  height: 14px;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div > span span:before {
  font-size: 26px;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div.owl-prev {
  left: -40px;
}
.post.cmsmasters_masonry_type.format-gallery .owl-buttons > div.owl-next {
  right: -40px;
}
.post.cmsmasters_masonry_type.format-gallery .cmsmasters_owl_slider {
  overflow: hidden;
}
.post.cmsmasters_masonry_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-prev {
  left: 0;
}
.post.cmsmasters_masonry_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-next {
  right: 0;
}
.post.cmsmasters_masonry_type.format-audio .cmsmasters_audio + .cmsmasters_post_date {
  border-top-width: 0;
  border-top-style: solid;
}
.post.cmsmasters_masonry_type.format-audio .mejs-container.wp-video-shortcode,
.post.cmsmasters_masonry_type.format-audio .mejs-container.wp-audio-shortcode {
  margin-bottom: 0;
}
.post.cmsmasters_masonry_type .cmsmasters_video_wrap {
  margin-bottom: 0;
}
/***************** Blog Timeline ******************/
.post.cmsmasters_timeline_type {
  width: 50%;
  float: left;
  opacity: 0;
}
.post.cmsmasters_timeline_type:before {
  content: '';
  width: 100%;
  height: 1px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 26px;
  bottom: auto;
}
.post.cmsmasters_timeline_type .preloader {
  padding-bottom: 58.14%;
}
.post.cmsmasters_timeline_type .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_left {
  margin-left: -40px;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_left .cmsmasters_post_cont {
  margin-right: 22%;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_left .cmsmasters_post_info {
  right: -30px;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_right {
  margin-left: 40px;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_right .cmsmasters_post_cont {
  margin-left: 22%;
  margin-right: 1px;
}
.post.cmsmasters_timeline_type.cmsmasters_timeline_right .cmsmasters_post_info {
  left: -30px;
}
.post.cmsmasters_timeline_type.shortcode_animated {
  margin-left: 0;
  opacity: 1;
}
.post.cmsmasters_timeline_type .cmsmasters_post_cont {
  position: relative;
}
.post.cmsmasters_timeline_type .cmsmasters_post_info {
  position: absolute;
  top: 0;
  width: 60px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_date {
  display: block;
  width: 60px;
  margin-right: 30px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_date .published {
  display: block;
}
.post.cmsmasters_timeline_type .cmsmasters_post_date .cmsmasters_day {
  font-size: 30px;
  line-height: 34px;
  display: block;
  padding: 10px 5px 6px;
  text-align: center;
}
.post.cmsmasters_timeline_type .cmsmasters_post_date .cmsmasters_mon {
  font-size: 13px;
  line-height: 20px;
  display: block;
  padding: 5px 5px 4px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  text-align: center;
}
.post.cmsmasters_timeline_type .cmsmasters_audio + .cmsmasters_post_cont_inner,
.post.cmsmasters_timeline_type .cmsmasters_video_wrap + .cmsmasters_post_cont_inner,
.post.cmsmasters_timeline_type .cmsmasters_owl_slider + .cmsmasters_post_cont_inner,
.post.cmsmasters_timeline_type .cmsmasters_img_wrap + .cmsmasters_post_cont_inner {
  border-top-width: 0;
  border-top-style: solid;
}
.post.cmsmasters_timeline_type .cmsmasters_post_cont_inner {
  border-width: 1px;
  border-style: solid;
  padding: 17px 20px 15px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_title {
  margin: 0;
}
.post.cmsmasters_timeline_type .cmsmasters_post_cont_info {
  margin-bottom: 12px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_cont_info > * {
  margin-right: 10px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_content {
  padding-bottom: 15px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_content p {
  padding: 0;
}
.post.cmsmasters_timeline_type .cmsmasters_post_meta_info a {
  margin-right: 10px;
}
.post.cmsmasters_timeline_type .cmsmasters_post_read_more {
  float: right;
}
.post.cmsmasters_timeline_type .cmsmasters_video_wrap,
.post.cmsmasters_timeline_type .mejs-container.wp-video-shortcode,
.post.cmsmasters_timeline_type .mejs-container.wp-audio-shortcode {
  margin-bottom: 0;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div {
  display: block;
  width: 40px;
  height: 100%;
  position: absolute;
  top: 0;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div > span {
  background: none;
  border-width: 0;
  border-style: solid;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div > span span {
  width: 10px;
  height: 14px;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div > span span:before {
  font-size: 26px;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div.owl-prev {
  left: -40px;
}
.post.cmsmasters_timeline_type.format-gallery .owl-buttons > div.owl-next {
  right: -40px;
}
.post.cmsmasters_timeline_type.format-gallery .cmsmasters_owl_slider {
  overflow: hidden;
}
.post.cmsmasters_timeline_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-prev {
  left: 0;
}
.post.cmsmasters_timeline_type.format-gallery .cmsmasters_owl_slider:hover .owl-buttons > div.owl-next {
  right: 0;
}
/***************** Blog Puzzle ******************/
.blog.columns.puzzle {
  margin: 0;
  overflow: visible !important;
}
.blog.columns.puzzle.cmsmasters_4 .post.cmsmasters_puzzle_type {
  min-width: 230px;
}
.post.cmsmasters_puzzle_type {
  min-width: 280px;
  padding: 0;
  float: left;
  opacity: 0;
}
.post.cmsmasters_puzzle_type.shortcode_animated {
  opacity: 1;
}
.post.cmsmasters_puzzle_type .preloader {
  padding-bottom: 100%;
}
.post.cmsmasters_puzzle_type .preloader[class^="cmsmasters_theme_icon_"],
.post.cmsmasters_puzzle_type .preloader[class*=" cmsmasters_theme_icon_"] {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.post.cmsmasters_puzzle_type .preloader:before {
  font-size: 30px;
  line-height: 1em;
  margin: -15px 0 0 -15px;
  position: absolute;
  top: 50%;
  left: 50%;
}
.post.cmsmasters_puzzle_type .preloader:after {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
}
.post.cmsmasters_puzzle_type .cmsmasters_video_wrap,
.post.cmsmasters_puzzle_type .resizable_block {
  padding-bottom: 100%;
}
.post.cmsmasters_puzzle_type:nth-child(odd) .puzzle_post_content_wrapper {
  bottom: 0;
}
.post.cmsmasters_puzzle_type:nth-child(odd) .puzzle_post_content_wrapper:before {
  top: -10px;
  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_puzzle_type:nth-child(odd) .cmsmasters_img_wrap {
  top: 0;
}
.post.cmsmasters_puzzle_type:nth-child(odd) .preloader[class^="cmsmasters_theme_icon_"],
.post.cmsmasters_puzzle_type:nth-child(odd) .preloader[class*=" cmsmasters_theme_icon_"] {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.post.cmsmasters_puzzle_type:nth-child(even) .puzzle_post_content_wrapper {
  top: 0;
}
.post.cmsmasters_puzzle_type:nth-child(even) .puzzle_post_content_wrapper:before {
  bottom: -10px;
  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_puzzle_type:nth-child(even) .cmsmasters_img_wrap {
  bottom: 0;
}
.post.cmsmasters_puzzle_type:nth-child(even) .preloader[class^="cmsmasters_theme_icon_"],
.post.cmsmasters_puzzle_type:nth-child(even) .preloader[class*=" cmsmasters_theme_icon_"] {
  border-top-width: 1px;
  border-top-style: solid;
}
.post.cmsmasters_puzzle_type .cmsmasters_post_cont {
  padding-bottom: 200%;
}
.post.cmsmasters_puzzle_type .cmsmasters_post_cont:hover .preloader:after {
  opacity: 1;
}
.post.cmsmasters_puzzle_type figure,
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper {
  width: 100%;
  position: absolute;
  left: 0;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper {
  padding-bottom: 100%;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper:before {
  content: '';
  display: block;
  position: absolute;
  left: 25px;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .puzzle_post_content_wrap {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  padding: 20px 25px 15px;
  overflow: hidden;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_date {
  display: block;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_header {
  padding: 3px 0 0;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_title {
  margin: 0;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_content {
  padding: 18px 0 0;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_content p {
  padding: 0;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_read_more {
  margin-top: 10px;
  display: inline-block;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_footer {
  padding: 10px 25px 15px 25px;
  position: absolute;
  bottom: 0;
  left: 1px;
  right: 1px;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_footer > span {
  display: block;
  padding-bottom: 5px;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_footer .cmsmasters_post_footer_info {
  padding: 0 0 0 10px;
  float: right;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_footer .cmsmasters_post_footer_info a {
  margin: 0 0 3px;
  display: block;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_comments span,
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmastersLike span {
  padding: 0 6px 0 0;
  float: left;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmasters_post_comments {
  font-size: 14px;
}
.post.cmsmasters_puzzle_type .puzzle_post_content_wrapper .cmsmastersLike {
  font-size: 13px;
}
.post.cmsmasters_puzzle_type .cmsmasters_audio {
  margin-top: 10px;
}
.post.cmsmasters_puzzle_type .cmsmasters_audio + .cmsmasters_post_content {
  padding-top: 25px;
}
.post.cmsmasters_puzzle_type .mejs-container.wp-video-shortcode,
.post.cmsmasters_puzzle_type .mejs-container.wp-audio-shortcode {
  margin: 0;
}
/***************** Blog Post ******************/
.blog.opened-article .post .cmsmasters_post_date {
  float: left;
  width: 60px;
  margin-right: 30px;
}
.blog.opened-article .post .cmsmasters_post_date .published {
  display: block;
}
.blog.opened-article .post .cmsmasters_post_date .cmsmasters_day {
  font-size: 30px;
  line-height: 34px;
  display: block;
  padding: 10px 5px 6px;
  text-align: center;
}
.blog.opened-article .post .cmsmasters_post_date .cmsmasters_mon {
  font-size: 13px;
  line-height: 20px;
  display: block;
  padding: 5px 5px 4px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  text-align: center;
}
.blog.opened-article .post .cmsmasters_post_content {
  padding-top: 30px;
}
.blog.opened-article .post .cmsmasters_post_cont {
  overflow: hidden;
}
.blog.opened-article .post .cmsmasters_post_cont .cmsmasters_post_content {
  padding-top: 0;
  padding-bottom: 10px;
}
.blog.opened-article .post .cmsmasters_post_cont .cmsmasters_video_wrap,
.blog.opened-article .post .cmsmasters_post_cont .cmsmasters_img_wrap,
.blog.opened-article .post .cmsmasters_post_cont .cmsmasters_owl_slider {
  margin-bottom: 33px;
}
.blog.opened-article .post .cmsmasters_post_cont_info {
  border-top-width: 1px;
  border-top-style: solid;
  padding: 13px 0;
}
.blog.opened-article .post .cmsmasters_post_cont_info > * {
  margin-right: 10px;
}
.blog.opened-article .post .cmsmasters_post_meta_info {
  float: right;
  margin: 0;
}
.blog.opened-article .post .cmsmasters_post_meta_info > a {
  margin-left: 10px;
}
/*-------------------------------------------------------------------------*/
/*	Portfolio (Grid, Puzzle) + Project Styles
/*-------------------------------------------------------------------------*/
/***************** Portfolio ******************/
.portfolio {
  position: relative;
}
.portfolio:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio .project {
  min-width: 200px;
  position: relative;
  float: left;
}
.portfolio .project .preloader {
  padding-bottom: 100%;
}
.portfolio .project .preloader.highImg {
  height: auto;
  padding-bottom: 0;
}
.portfolio.large_gap {
  margin: 0 -20px;
}
.portfolio.large_gap .project {
  padding-left: 20px;
  padding-right: 20px;
  padding-bottom: 40px;
}
.portfolio.small_gap {
  padding: 1px;
  -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-right: 1px;
  margin-bottom: 1px;
  border-width: 0;
  border-style: solid;
}
.portfolio.grid.perfect .project figure {
  opacity: 0;
}
.portfolio.grid.perfect .project.shortcode_animated figure {
  opacity: 1;
}
.portfolio.small_gap .project .img_placeholder,
.portfolio.zero_gap .project .img_placeholder {
  border-width: 0;
  border-style: solid;
}
.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 ******************/
.portfolio.grid .project .project_outer {
  position: relative;
}
.portfolio.grid .project .project_inner {
  position: relative;
  padding: 14px 15px;
}
.portfolio.grid .project .cmsmasters_project_title {
  margin: 0;
}
.portfolio.grid .project .cmsmasters_project_category {
  display: block;
  margin-top: -1px;
}
.portfolio.grid .project .cmsmasters_project_content {
  padding-top: 12px;
}
.portfolio.grid .project .cmsmasters_project_content p {
  padding: 0;
}
.portfolio.grid .project .cmsmasters_project_footer {
  padding-top: 15px;
}
.portfolio.grid .project .cmsmasters_project_footer > a {
  margin-right: 10px;
}
.portfolio.grid.large_gap .project_outer {
  border-width: 1px;
  border-style: solid;
}
.portfolio.grid.large_gap .project_outer .cmsmasters_img_rollover_wrap {
  margin: -1px -1px 0;
  width: auto;
}
/***************** Portfolio Puzzle ******************/
.portfolio.puzzle .project .project_outer {
  position: relative;
}
.portfolio.puzzle .project .project_inner {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 50%;
  padding: 0 40px 20px;
  margin-top: 25px;
  opacity: 0;
}
.portfolio.puzzle .project .cmsmasters_img_rollover:before {
  content: '\e810';
  font-family: 'fontello-custom';
  font-size: 40px;
  line-height: 44px;
  display: inline-block;
  width: 40px;
  height: 44px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -100px;
  bottom: 0;
  opacity: 0;
}
.portfolio.puzzle .project .project_outer {
  overflow: hidden;
}
.portfolio.puzzle .project .project_outer:hover .cmsmasters_img_rollover:before {
  top: -75px;
  opacity: 1;
  -webkit-transform: rotateY(180deg);
  -moz-transform: rotateY(180deg);
  -ms-transform: rotateY(180deg);
  transform: rotateY(180deg);
}
.portfolio.puzzle .project .project_outer:hover .project_inner {
  margin-top: 0;
  opacity: 1;
}
.portfolio.puzzle .project .cmsmasters_project_header {
  text-align: center;
}
.portfolio.puzzle .project .cmsmasters_project_title {
  margin: 0;
}
.portfolio.puzzle .project .cmsmasters_project_title a:hover {
  opacity: 0.6;
}
.portfolio.puzzle .project .cmsmasters_project_category {
  text-align: center;
  display: block;
  margin-top: 5px;
}
.portfolio.puzzle .project .cmsmasters_project_category a:hover {
  opacity: 0.6;
}
.portfolio.puzzle .project .cmsmasters_project_footer {
  text-align: center;
  margin-top: 15px;
}
.portfolio.puzzle .project .cmsmasters_project_footer > a {
  display: inline-block;
  margin: 0 5px;
}
.portfolio.puzzle .project .cmsmasters_project_footer > a.active:before,
.portfolio.puzzle .project .cmsmasters_project_footer > a:hover:before {
  opacity: 0.6;
}
/***************** Portfolio Open Project ******************/
.portfolio.opened-article {
  padding-top: 40px;
  padding-bottom: 40px;
}
.portfolio.opened-article .project {
  min-width: 1px;
  float: none;
  overflow: visible;
  clear: both;
}
.portfolio.opened-article .project:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.portfolio.opened-article .project .cmsmasters_project_title {
  display: inline-block;
  margin-bottom: 40px;
  border-bottom-width: 2px;
  border-bottom-style: solid;
}
.portfolio.opened-article .project .cmsmasters_video_wrap,
.portfolio.opened-article .project .cmsmasters_img_wrap {
  margin-bottom: 35px;
}
.portfolio.opened-article .project .project_content.with_sidebar {
  width: 69%;
  float: left;
  padding-right: 40px;
}
.portfolio.opened-article .project .project_content .cmsmasters_owl_slider {
  margin-bottom: 35px;
}
.portfolio.opened-article .project .project_sidebar {
  width: 31%;
  float: right;
}
.portfolio.opened-article .project .project_features,
.portfolio.opened-article .project .project_details {
  margin-bottom: 35px;
}
.portfolio.opened-article .project .project_details_title {
  margin-bottom: 30px;
}
.portfolio.opened-article .project .project_features_item,
.portfolio.opened-article .project .project_details_item {
  padding: 9px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  display: table;
  width: 100%;
}
.portfolio.opened-article .project .project_features_item:first-child,
.portfolio.opened-article .project .project_details_item:first-child {
  padding-top: 0;
}
.portfolio.opened-article .project .project_features_item:last-child,
.portfolio.opened-article .project .project_details_item:last-child {
  padding-bottom: 0;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.portfolio.opened-article .project .project_features_item > div,
.portfolio.opened-article .project .project_details_item > div {
  width: 50%;
  display: table-cell;
}
.portfolio.opened-article .project .project_features_item_title,
.portfolio.opened-article .project .project_details_item_title {
  font-weight: 600;
}
.portfolio.opened-article .project .project_details_item_desc,
.portfolio.opened-article .project .project_features_item_desc {
  text-align: right;
}
.portfolio.opened-article .project .project_gallery_row {
  margin: 0 -2% 4%;
}
/*-------------------------------------------------------------------------*/
/*	Posts Slider Styles
/*-------------------------------------------------------------------------*/
/***************** Posts Slider ******************/
.cmsmasters_posts_slider {
  padding-top: 105px;
  margin: 0 -20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_posts_slider .cmsmasters_owl_slider {
  opacity: 0;
}
.cmsmasters_posts_slider .owl-buttons {
  width: 100%;
  padding: 0 20px;
  position: absolute;
  top: -104px;
  text-align: right;
}
.cmsmasters_posts_slider .owl-buttons > div {
  margin: 0 1px;
}
.cmsmasters_posts_slider .owl-buttons > div > span {
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_posts_slider .owl-buttons > div > span > span {
  height: 11px;
}
/***************** Posts Slider Blog ******************/
.cmsmasters_posts_slider .post {
  padding: 0 20px 40px;
  min-width: 280px;
}
.cmsmasters_posts_slider .post .preloader {
  padding-bottom: 60.34%;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont {
  margin: 20px 0 0;
  position: relative;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_date {
  width: 50px;
  height: 60px;
  z-index: 1;
  position: absolute;
  left: 20px;
  top: -20px;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_date .published {
  display: block;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_date .cmsmasters_day {
  font-size: 24px;
  line-height: 32px;
  display: block;
  padding: 6px 5px 2px;
  text-align: center;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_date .cmsmasters_mon {
  font-size: 11px;
  line-height: 20px;
  display: block;
  padding: 0 5px;
  text-align: center;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .img_placeholder {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_slider_post_cont_wrap {
  padding: 15px 20px 15px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_slider_post_title {
  margin: 0 0 2px;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_cont_info {
  margin: 0 0 15px;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_cont_info > * {
  margin: 0 10px 0 0;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_cont_info > *:last-child {
  margin: 0;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_slider_post_content {
  padding-bottom: 15px;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_slider_post_content p {
  padding: 0;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_slider_post_meta_info a {
  margin-right: 10px;
}
.cmsmasters_posts_slider .post .cmsmasters_slider_post_cont .cmsmasters_post_read_more {
  float: right;
}
/***************** Posts Slider Portfolio ******************/
.cmsmasters_posts_slider .project {
  min-width: 280px;
  padding: 0 20px 40px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_posts_slider .project .preloader {
  padding-bottom: 100%;
}
.cmsmasters_posts_slider .project .img_placeholder {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_posts_slider .project .slider_project_inner {
  padding: 15px 20px 15px;
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
}
.cmsmasters_posts_slider .project .cmsmasters_slider_project_title {
  margin: 0 0 1px;
}
.cmsmasters_posts_slider .project .cmsmasters_slider_project_cont_info {
  margin-bottom: 15px;
}
.cmsmasters_posts_slider .project .cmsmasters_slider_project_content {
  margin-bottom: 15px;
}
.cmsmasters_posts_slider .project .cmsmasters_slider_project_content p {
  padding: 0;
}
.cmsmasters_posts_slider .project .cmsmasters_slider_project_footer > a {
  margin-right: 10px;
}
/*-------------------------------------------------------------------------*/
/*	Profiles + Profile Styles
/*-------------------------------------------------------------------------*/
/***************** Profiles ******************/
.cmsmasters_profile {
  position: relative;
  overflow: hidden;
}
/***************** Profiles Vertical ******************/
.cmsmasters_profile.vertical .profile {
  display: table;
  width: 100%;
  padding: 45px 50px;
  margin-bottom: 20px;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_profile.vertical .profile:before {
  content: '';
  display: block;
  width: 2px;
  height: 50px;
  margin: auto !important;
  position: absolute;
  left: 1px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_profile.vertical .profile .pl_img {
  display: table-cell;
  width: 21%;
  padding: 0 50px 0 0;
  vertical-align: middle;
}
.cmsmasters_profile.vertical .profile .pl_img img,
.cmsmasters_profile.vertical .profile .pl_img .pl_noimg {
  width: 100%;
  z-index: 2;
  position: relative;
  -webkit-transform: scale(0.3);
  -moz-transform: scale(0.3);
  transform: scale(0.3);
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile.vertical .profile .pl_img figure {
  position: relative;
}
.cmsmasters_profile.vertical .profile .pl_img a {
  display: block;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile.vertical .profile .pl_img a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  opacity: 0;
}
.cmsmasters_profile.vertical .profile .pl_img a:after {
  content: '\eabf';
  font-size: 24px;
  font-family: 'fontello';
  width: 16px;
  height: 16px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -25px;
  bottom: 0;
  line-height: 14px;
  z-index: 4;
  opacity: 0;
}
.cmsmasters_profile.vertical .profile .pl_img a:hover:before {
  opacity: 1;
}
.cmsmasters_profile.vertical .profile .pl_img a:hover:after {
  opacity: 1;
  top: 0;
}
.cmsmasters_profile.vertical .profile .pl_img .pl_noimg {
  position: relative;
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  min-width: 100%;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_profile.vertical .profile .pl_img .pl_noimg:before {
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  font-size: 36px;
}
.cmsmasters_profile.vertical .profile .pl_content {
  display: table-cell;
  width: 27%;
  padding: 0 30px 0 0;
  vertical-align: middle;
}
.cmsmasters_profile.vertical .profile .entry-title {
  margin: 0 0 15px;
}
.cmsmasters_profile.vertical .profile .pl_subtitle {
  margin: 0 0 1px;
}
.cmsmasters_profile.vertical .profile .pl_social {
  margin: 35px 0 0;
}
.cmsmasters_profile.vertical .profile .pl_social .pl_social_list {
  padding: 0;
  margin: 0 -4px;
  display: block;
  opacity: 0.1;
}
.cmsmasters_profile.vertical .profile .pl_social .pl_social_list li {
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0 4px;
}
.cmsmasters_profile.vertical .profile .pl_social .pl_social_list li:before {
  display: none;
}
.cmsmasters_profile.vertical .profile .pl_social .pl_social_list li a {
  display: block;
  width: 1em;
  height: 1em;
  font-size: 16px;
}
.cmsmasters_profile.vertical .profile .pl_social .pl_social_list li a:before {
  display: block;
  margin: 0;
}
.cmsmasters_profile.vertical .profile .entry-content {
  display: table-cell;
  width: 52%;
  vertical-align: middle;
}
.cmsmasters_profile.vertical .profile.shortcode_animated .pl_img img,
.cmsmasters_profile.vertical .profile.shortcode_animated .pl_img .pl_noimg {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
}
.cmsmasters_profile.vertical .profile.shortcode_animated .pl_social .pl_social_list {
  margin: 0 -4px;
  opacity: 1;
}
/***************** Profiles Horizontal ******************/
.cmsmasters_profile.horizontal {
  margin: 0 -2%;
}
.cmsmasters_profile.horizontal .profile {
  padding: 35px 30px 25px;
  margin-bottom: 30px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_profile.horizontal .profile.one_half:nth-child(2n+1),
.cmsmasters_profile.horizontal .profile.one_third:nth-child(3n+1),
.cmsmasters_profile.horizontal .profile.one_fourth:nth-child(4n+1) {
  clear: left;
}
.cmsmasters_profile.horizontal .profile:before {
  content: '';
  display: block;
  height: 2px;
  width: 60px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: auto;
}
.cmsmasters_profile.horizontal .profile .entry-content {
  margin: 15px 0 10px;
  text-align: center;
}
.cmsmasters_profile.horizontal .pl_content {
  text-align: center;
}
.cmsmasters_profile.horizontal .entry-title {
  margin-bottom: 0;
}
.cmsmasters_profile.horizontal .pl_subtitle {
  margin: 7px 0 0;
}
.cmsmasters_profile.horizontal .pl_social_list {
  padding: 15px 0 0;
  display: block;
  margin: 0 -4px;
}
.cmsmasters_profile.horizontal .pl_social_list li {
  display: inline-block;
  padding: 0;
  margin: 0 4px;
  list-style: none;
}
.cmsmasters_profile.horizontal .pl_social_list li:before {
  display: none;
}
.cmsmasters_profile.horizontal .pl_social_list li a {
  font-size: 16px;
  display: block;
  width: 1em;
  height: 1em;
}
.cmsmasters_profile.horizontal .pl_social_list li a:before {
  margin: 0;
  display: block;
}
.cmsmasters_profile.horizontal figure {
  position: relative;
  text-align: center;
}
.cmsmasters_profile.horizontal .pl_img {
  padding: 0 15px;
  margin-bottom: 27px;
}
.cmsmasters_profile.horizontal .pl_img img {
  width: 100%;
  max-width: 100%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile.horizontal .pl_img a {
  display: inline-block;
  position: relative;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_profile.horizontal .pl_img a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 3;
  opacity: 0;
}
.cmsmasters_profile.horizontal .pl_img a:after {
  content: '\eabf';
  font-size: 24px;
  font-family: 'fontello';
  width: 16px;
  height: 16px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: -25px;
  bottom: 0;
  line-height: 14px;
  z-index: 4;
  opacity: 0;
}
.cmsmasters_profile.horizontal .pl_img a:hover:before {
  opacity: 1;
}
.cmsmasters_profile.horizontal .pl_img a:hover:after {
  top: 0;
  opacity: 1;
}
.cmsmasters_profile.horizontal .pl_social_list {
  text-align: center;
}
.cmsmasters_profile.horizontal .one_fourth:nth-child(4n+1),
.cmsmasters_profile.horizontal .one_third:nth-child(3n+1),
.cmsmasters_profile.horizontal .one_half:nth-child(2n+1) {
  clear: both;
}
/***************** Profiles Open Profile ******************/
.profiles.opened-article {
  padding-top: 40px;
  padding-bottom: 40px;
}
.profiles.opened-article:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.profiles.opened-article .profile {
  position: relative;
  clear: both;
}
.profiles.opened-article .profile:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.profiles.opened-article .profile .cmsmasters_profile_header {
  margin-bottom: 40px;
}
.profiles.opened-article .profile .cmsmasters_profile_title {
  display: inline-block;
  border-bottom-width: 2px;
  border-bottom-style: solid;
  margin: 0;
}
.profiles.opened-article .profile .cmsmasters_profile_subtitle {
  margin: 10px 0 0;
}
.profiles.opened-article .profile .with_sidebar {
  width: 69%;
  float: left;
  padding-right: 40px;
}
.profiles.opened-article .profile .profile_sidebar {
  width: 31%;
  padding: 25px;
  float: right;
  border-width: 3px;
  border-style: solid;
}
.profiles.opened-article .profile .profile_features,
.profiles.opened-article .profile .profile_details {
  margin-bottom: 35px;
}
.profiles.opened-article .profile .profile_features_item,
.profiles.opened-article .profile .profile_details_item {
  display: table;
  width: 100%;
  padding: 9px 0;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.profiles.opened-article .profile .profile_features_item:last-child,
.profiles.opened-article .profile .profile_details_item:last-child {
  padding-bottom: 0;
  border-bottom-width: 0;
  border-bottom-style: solid;
}
.profiles.opened-article .profile .profile_features_item > div,
.profiles.opened-article .profile .profile_details_item > div {
  display: table-cell;
  width: 50%;
}
.profiles.opened-article .profile .profile_features_item > div.profile_details_item_desc,
.profiles.opened-article .profile .profile_details_item > div.profile_details_item_desc,
.profiles.opened-article .profile .profile_features_item > div.profile_features_item_desc,
.profiles.opened-article .profile .profile_details_item > div.profile_features_item_desc {
  text-align: right;
}
.profiles.opened-article .profile .profile_features_title {
  margin-bottom: 25px;
}
.profiles.opened-article .profile .profile_features_item_title,
.profiles.opened-article .profile .profile_details_item_title {
  font-weight: 600;
}
.profiles.opened-article .profile .profile_social_icons_list {
  padding: 0;
  margin: 0;
  display: block;
}
.profiles.opened-article .profile .profile_social_icons_list li {
  list-style: none;
  display: inline-block;
  padding: 0;
  margin: 0 10px 0 0;
}
.profiles.opened-article .profile .profile_social_icons_list li:before {
  display: none;
}
.profiles.opened-article .profile .profile_social_icons_list li a {
  display: block;
  width: 1em;
  height: 1em;
  font-size: 16px;
}
.profiles.opened-article .profile .profile_social_icons_list li a:before {
  display: block;
  margin: 0;
}
/*-------------------------------------------------------------------------*/
/*	Shortcodes Styles */
/*-------------------------------------------------------------------------*/
/***************** Divider ******************/
hr {
  border: 0;
  border-top-style: solid;
  margin: 40px 0;
}
hr,
.cmsmasters_widget_divider,
.cmsmasters_divider {
  background-color: transparent;
  border-bottom-width: 1px;
  width: 100%;
  height: 1px;
  position: relative;
  clear: both;
}
.cmsmasters_widget_divider {
  margin: 0 2% 20px;
  width: 96%;
}
.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;
  overflow: hidden;
}
.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%;
}
.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%;
}
.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%;
}
.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 {
  border-style: solid;
  position: relative;
  overflow: hidden;
  height: 430px;
}
.cmsmasters_featured_block .featured_block_inner {
  width: 100%;
  padding: 20px 20px 0;
  position: relative;
  overflow: hidden;
}
/***************** Table ******************/
.cmsmasters_table {
  width: 100%;
}
.cmsmasters_table tr td,
.cmsmasters_table tr th {
  padding: 15px 20px;
}
.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;
}
.cmsmasters_table tfoot tr,
.cmsmasters_table tbody tr {
  border-bottom-width: 1px;
  border-bottom-style: solid;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
}
/***************** Notice ******************/
.cmsmasters_notice {
  display: block;
  width: 100%;
  padding: 0 30px;
  margin-bottom: 20px;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_notice[class*=" cmsmasters-icon-"],
.cmsmasters_notice[class*=" cmsmasters_theme_icon_"] {
  padding-left: 80px;
}
.cmsmasters_notice:before {
  font-size: 32px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 25px;
  right: auto;
  top: 0;
  bottom: 0;
}
.cmsmasters_notice .notice_content {
  position: relative;
  padding: 20px 0 0;
}
.cmsmasters_notice .notice_close {
  font-size: 14px;
  line-height: 31px;
  text-align: center;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -15px;
  top: -15px;
  bottom: auto;
  border-width: 1px;
  border-style: solid;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_notice.cmsmasters_notice_success {
  border-color: #d0e4a8;
  background-color: #fdfff9;
}
.cmsmasters_notice.cmsmasters_notice_success:before {
  color: #8bc34a;
  content: '\e8be';
}
.cmsmasters_notice.cmsmasters_notice_error {
  border-color: #f7d1d1;
  background-color: #fffdfd;
}
.cmsmasters_notice.cmsmasters_notice_error:before {
  color: #ea5151;
  content: '\e8c2';
}
.cmsmasters_notice.cmsmasters_notice_info {
  border-color: #d5dde9;
  background-color: #fafcff;
}
.cmsmasters_notice.cmsmasters_notice_info:before {
  color: #6e95d1;
  content: '\e8cf';
}
.cmsmasters_notice.cmsmasters_notice_warning {
  border-color: #f1ceb7;
  background-color: #fffdf9;
}
.cmsmasters_notice.cmsmasters_notice_warning:before {
  color: #fdb543;
  content: '\eae7';
}
.cmsmasters_notice.cmsmasters_notice_download {
  border-color: #c9e0cd;
  background-color: #f9fffa;
}
.cmsmasters_notice.cmsmasters_notice_download:before {
  color: #63b698;
  content: '\e8ea';
}
/***************** Icon ******************/
.cmsmasters_icon_wrap .cmsmasters_simple_icon {
  border-style: solid;
  display: inline-block;
}
/***************** Icon List ******************/
.cmsmasters_icon_list_items {
  list-style: none;
  padding: 0;
  margin: 0;
  position: relative;
}
.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;
  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: '';
  background-position: center center;
  background-repeat: no-repeat;
  background-size: cover;
  display: inline-block;
  vertical-align: middle;
  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;
}
.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: 50%;
  -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: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-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: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;
}
.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_toggle_wrap {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap:before {
  content: '';
  position: absolute;
  left: -1px;
  right: -1px;
  top: 0;
  height: 2px;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle_title {
  position: relative;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle_title > .cmsmasters_toggle_plus {
  display: block;
  z-index: 1;
  width: 26px;
  height: 26px;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: 15px;
  top: 0;
  bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle_title > .cmsmasters_toggle_plus > span {
  display: block;
  width: 8px;
  height: 2px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle_title > .cmsmasters_toggle_plus > span.cmsmasters_toggle_plus_vert {
  width: 2px;
  height: 8px;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle_title > a {
  display: block;
  padding: 18px 55px 18px 25px;
  position: relative;
  z-index: 2;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap .cmsmasters_toggle .cmsmasters_toggle_inner {
  padding: 0 25px 20px;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle_title .cmsmasters_toggle_plus_vert {
  display: none;
}
.cmsmasters_toggles .cmsmasters_toggle_wrap.current_toggle .cmsmasters_toggle {
  display: block;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap {
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 1px;
  border-right-style: solid;
  border-top-width: 1px;
  border-top-style: solid;
}
.cmsmasters_toggles.toggles_mode_accordion .cmsmasters_toggle_wrap:last-child {
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_toggles.toggles_mode_toggle .cmsmasters_toggle_wrap {
  border: 1px solid transparent;
}
/***************** 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;
  padding: 0;
  margin: 0;
  position: relative;
}
.cmsmasters_tabs .cmsmasters_tabs_list:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item {
  display: block;
  padding: 0;
  margin: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item:before {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a {
  display: block;
  position: relative;
}
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters-icon-"],
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters_theme_icon_"] {
  padding: 15px 30px 15px 60px;
}
.cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a:before {
  font-size: 20px;
  line-height: 46px;
  display: block;
  width: 24px;
  height: 48px;
  padding: 0;
  margin: 0 0 0 -0.1em;
  position: absolute;
  left: 25px;
  top: 0;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap {
  position: relative;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap .cmsmasters_tab {
  display: none;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap .cmsmasters_tab:after {
  content: '.';
  display: block;
  clear: both;
  height: 0;
  visibility: hidden;
  overflow: hidden;
}
.cmsmasters_tabs .cmsmasters_tabs_wrap .cmsmasters_tab.active_tab {
  display: block;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list {
  overflow: visible !important;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list .cmsmasters_tabs_list_item {
  display: inline-block;
  margin-bottom: -1px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list .cmsmasters_tabs_list_item:before {
  content: '';
  display: block;
  width: 100%;
  height: 3px;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a {
  padding: 16px 25px;
  border: 1px solid transparent;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters_theme_icon_"] {
  padding-left: 55px;
}
.cmsmasters_tabs.tabs_mode_tab .cmsmasters_tabs_wrap .cmsmasters_tab .cmsmasters_tab_inner {
  padding: 45px 0 20px;
}
.cmsmasters_tabs.tabs_mode_tour {
  display: table;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list {
  display: table-cell;
  width: 23%;
  padding: 0;
  vertical-align: top;
  overflow: visible !important;
  border-right-width: 1px;
  border-right-style: solid;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item {
  margin-right: -1px;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item:before {
  content: '';
  display: block;
  width: 3px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  z-index: 2;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a {
  padding: 14px 20px;
  border: 1px solid transparent;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters_theme_icon_"] {
  padding: 14px 20px 14px 50px;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a:before {
  left: 20px;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap {
  display: table-cell;
  width: 77%;
  padding: 0 0 0 42px;
  vertical-align: top;
}
.cmsmasters_tabs.tabs_mode_tour .cmsmasters_tabs_wrap .cmsmasters_tab .cmsmasters_tab_inner {
  padding: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right {
  direction: rtl;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list {
  padding: 0;
  direction: ltr;
  border-left-width: 1px;
  border-left-style: solid;
  border-right-width: 0;
  border-right-style: solid;
  text-align: right;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list .cmsmasters_tabs_list_item {
  margin-left: -1px;
  margin-right: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list .cmsmasters_tabs_list_item:before {
  left: auto;
  right: 0;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters-icon-"],
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a[class^="cmsmasters_theme_icon_"] {
  padding: 14px 50px 14px 20px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a:before {
  margin: 0 -0.1em 0 0;
  left: auto;
  right: 20px;
}
.cmsmasters_tabs.tabs_mode_tour.tabs_pos_right .cmsmasters_tabs_wrap {
  padding: 0 42px 0 0;
  direction: ltr;
}
/***************** 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: 220px;
  margin: 0 0 15px;
  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: 16px;
  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 -2%;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap {
  padding-bottom: 20px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_counter_wrap {
  position: absolute;
  left: 10px;
  top: -3px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_container_wrap {
  position: relative;
  padding-top: 30px;
  border-left-width: 1px;
  border-left-style: solid;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_container {
  width: 60%;
  margin-left: -1px;
}
.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 .cmsmasters_stat_inner:before {
  left: auto;
  right: 15px;
  top: 10px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_title {
  display: block;
  padding-bottom: 5px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_vertical .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap {
  padding-bottom: 10px;
  position: relative;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap:before {
  content: '';
  display: block;
  width: 100%;
  height: 6px;
  position: absolute;
  top: 34px;
  left: 0;
}
.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: 6px;
  position: absolute;
  bottom: 0;
  left: 0;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner .cmsmasters_stat_counter_wrap {
  left: auto;
  right: 0;
  top: auto;
  bottom: 13px;
}
.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: 26px;
}
.cmsmasters_stats.stats_mode_bars.stats_type_horizontal .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: inline-block;
  padding-top: 10px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap {
  display: inline-block;
  float: none;
  margin: 0 0 20px;
  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: 90px;
  overflow: hidden;
  margin: 0 0 20px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat .cmsmasters_stat_inner {
  width: 170px;
  height: 170px;
  padding-top: 47px;
  position: absolute;
  left: 5px;
  top: 5px;
  border-width: 1px;
  border-style: solid;
  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: 26px;
  margin-top: -10px;
}
.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 > span {
  display: inline-block;
  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: 27px;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_title,
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  display: block;
  text-align: center;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_title {
  padding: 10px 20px 0;
}
.cmsmasters_stats.stats_mode_circles .cmsmasters_stat_wrap .cmsmasters_stat_subtitle {
  padding: 20px 20px 0;
}
/***************** 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 20px;
  position: relative;
  overflow: hidden;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner {
  display: block;
  margin: 30px 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_counter_wrap {
  display: inline-block;
}
.cmsmasters_counters .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  display: 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_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_counter_wrap,
.cmsmasters_counters.counters_type_horizontal .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  margin-top: 3px;
}
.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 {
  margin-top: 10px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter .cmsmasters_counter_inner .cmsmasters_counter_title {
  margin-top: -1px;
}
.cmsmasters_counters.counters_type_vertical .cmsmasters_counter_wrap .cmsmasters_counter_subtitle {
  display: block;
  text-align: center;
}
/***************** CMSMASTERS Button ******************/
.cmsmasters_button {
  display: inline-block;
  padding: 0 25px;
  cursor: pointer;
  position: relative;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}
.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 20px;
  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_bg_slide_left {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:after {
  width: 0;
  height: 100%;
  left: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_left:hover:after {
  width: 100%;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:after {
  width: 0;
  height: 100%;
  right: 0;
  top: 0;
}
.cmsmasters_button.cmsmasters_but_bg_slide_right:hover:after {
  width: 100%;
}
.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);
}
.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: 40px;
  padding-right: 40px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_button.cmsmasters_but_icon_slide_left:before {
  width: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: -40px;
  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: 40px;
  height: auto;
  margin: auto !important;
  position: absolute;
  left: auto;
  right: -40px;
  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;
}
.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 {
  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_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=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]),
.wpcf7-form select,
.wpcf7-form textarea,
.wpcf7-form option {
  min-width: 100px;
  width: 100%;
}
/***************** 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 > li > figure.cmsmasters_hover_slider_full_img {
  width: 100%;
  max-width: 100%;
  height: 100%;
  max-height: 100%;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_items > li > figure.cmsmasters_hover_slider_full_img 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 -4px;
  padding: 0;
  word-spacing: -1px;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li {
  word-spacing: normal;
  display: inline-block;
  display: -moz-inline-stack;
  padding: 11px 4px 0;
  vertical-align: top;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a {
  display: block;
  position: relative;
  -webkit-transform: scale(0.5);
  -moz-transform: scale(0.5);
  transform: scale(0.5);
  opacity: 0.3;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a:before {
  content: '';
  display: block;
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 1;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li a:hover:before {
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li img {
  display: block;
  image-rendering: auto;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li.hovered_item a:before {
  opacity: 0;
}
.cmsmasters_hover_slider .cmsmasters_hover_slider_thumbs > li.shortcode_animated a {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.js_body .cmsmasters_hover_slider_items > li > figure.cmsmasters_hover_slider_full_img img {
  position: absolute;
}
/***************** Content slider ******************/
.cmsmasters_content_slider {
  margin-bottom: 20px;
  overflow: hidden;
}
.cmsmasters_content_slider .item > img {
  width: 100%;
}
.cmsmasters_content_slider .owl-buttons > div {
  display: block;
  width: 40px;
  height: 100%;
  position: absolute;
  top: 0;
}
.cmsmasters_content_slider .owl-buttons > div > span {
  background: none;
  border-width: 0;
  border-style: solid;
  width: 30px;
  height: 30px;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.cmsmasters_content_slider .owl-buttons > div > span span {
  width: 10px;
  height: 14px;
}
.cmsmasters_content_slider .owl-buttons > div > span span:before {
  font-size: 26px;
}
.cmsmasters_content_slider .owl-buttons > div.owl-prev {
  left: -40px;
}
.cmsmasters_content_slider .owl-buttons > div.owl-next {
  right: -40px;
}
.cmsmasters_content_slider:hover .owl-buttons > div.owl-prev {
  left: 0;
}
.cmsmasters_content_slider:hover .owl-buttons > div.owl-next {
  right: 0;
}
/***************** 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_quotes_slider {
  margin-bottom: 20px;
}
.cmsmasters_quotes_slider .cmsmasters_quote_inner {
  padding: 0 1px;
  position: relative;
}
.cmsmasters_quotes_slider .quote_content {
  position: relative;
}
.cmsmasters_quotes_slider .quote_content p {
  padding: 0;
}
.cmsmasters_quotes_slider .quote_content img {
  width: auto;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .cmsmasters_quote {
  padding-top: 25px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_content {
  padding: 25px 30px 40px;
  margin-bottom: 20px;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_content:before,
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_content:after {
  content: '';
  display: block;
  position: absolute;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_content:before {
  left: 25px;
  bottom: -12px;
  border-right: 12px solid transparent !important;
  border-left: 0 solid transparent !important;
  border-bottom: 0 solid transparent !important;
  border-top-width: 12px;
  border-top-style: solid;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_content:after {
  left: 26px;
  bottom: -10px;
  border-right: 10px solid transparent !important;
  border-left: 0 solid transparent !important;
  border-bottom: 0 solid transparent !important;
  border-top-width: 10px;
  border-top-style: solid;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_info_wrap {
  display: table;
  overflow: hidden;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_image {
  display: table-cell;
  vertical-align: top;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_image img {
  width: 50px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .wrap_quote_title {
  display: table-cell;
  vertical-align: middle;
  padding: 5px 15px;
  min-width: 150px;
  height: 50px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .wrap_quote_title a {
  position: relative;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .wrap_quote_title a:hover {
  opacity: 0.6;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .quote_subtitle {
  margin-top: -2px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .owl-pagination {
  width: auto;
  right: 0;
  left: auto;
  bottom: 32px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .owl-pagination .owl-page {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .cmsmasters_quote {
  padding-top: 75px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .cmsmasters_quote_inner {
  text-align: center;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .quote_content {
  padding: 75px 14% 50px;
  text-align: center;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .quote_content:before {
  content: '\201d';
  font-family: 'Roboto Condensed';
  display: block;
  width: 30px;
  height: 30px;
  line-height: 100px;
  font-size: 100px;
  position: absolute;
  top: 0;
  left: 50%;
  margin-left: -15px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .wrap_quote_title {
  margin-top: 15px;
  text-align: center;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .quote_subtitle {
  margin-top: -1px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .quote_image {
  display: inline-block;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .quote_image img {
  width: 60px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .owl-buttons > div {
  position: absolute;
  top: 50%;
  margin-top: -15px;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .owl-buttons > div > span {
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .owl-buttons > div.owl-prev {
  left: 0;
}
.cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_center .owl-buttons > div.owl-next {
  right: 0;
}
.quote_title {
  margin-bottom: 0;
}
.quote_content_wrap {
  overflow: hidden;
}
.cmsmasters_quote_inner blockquote {
  padding: 0;
}
.quote_grid {
  display: table;
  border-spacing: 4px;
  border-collapse: separate;
  margin: 0 -4px 20px -4px;
  position: relative;
  overflow: hidden;
}
.quote_grid.quote_two .cmsmasters_quote {
  width: 50%;
}
.quote_grid.quote_three .cmsmasters_quote {
  width: 33.33%;
}
.quote_grid.quote_four .cmsmasters_quote {
  width: 25%;
}
.quote_grid .quote_content {
  margin: 12px 0 21px;
}
.quote_grid .quote_content p {
  padding: 0;
}
.quote_grid .quote_info_wrap {
  display: table;
}
.quote_grid .cmsmasters_quote_inner {
  position: relative;
  padding: 60px 40px 25px;
}
.quote_grid .cmsmasters_quote_inner:before {
  content: '\201d';
  font-family: 'Roboto Condensed';
  font-size: 60px;
  line-height: 108px;
  display: block;
  width: 37px;
  height: 58px;
  position: absolute;
  top: -1px;
  left: 40px;
  text-align: center;
}
.quote_grid .quote_image {
  display: table-cell;
  vertical-align: middle;
  padding-right: 20px;
}
.quote_grid .quote_image img {
  width: 50px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.quote_grid .wrap_quote_title {
  display: table-cell;
  vertical-align: middle;
}
.quote_grid .quote_subtitle {
  margin-top: -3px;
}
.quote_grid .cmsmasters_quote {
  border-width: 1px;
  border-style: solid;
}
.quote_grid .quotes_list {
  display: table-row;
  width: 100%;
  overflow: hidden;
}
.quote_grid .quotes_list .cmsmasters_quote {
  display: table-cell;
}
/***************** Pricing tables ******************/
.cmsmasters_pricing_table {
  margin: 0 -20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item {
  width: 25%;
  display: block;
  padding: 0 20px 40px;
  position: relative;
  float: left;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_pricing_item_inner {
  padding: 20px 0 30px;
  position: relative;
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_pricing_item_inner:before {
  content: '';
  display: block;
  width: 60px;
  height: 2px;
  position: absolute;
  top: 0;
  left: 30px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .pricing_title {
  margin-bottom: 20px;
  padding: 0 30px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list {
  padding-left: 0;
  margin: 0 30px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list [class*="cmsmasters-icon-"]:before,
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list [class*="cmsmasters_theme_icon_"]:before {
  margin-right: 10px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list li {
  padding-top: 8px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list li:first-child {
  padding-top: 0;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .feature_list a {
  font-size: 14px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_button {
  margin: 24px 30px 0;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_price_wrap {
  padding: 20px 30px 35px;
  margin-bottom: 30px;
  position: relative;
  border-top-width: 1px;
  border-top-style: solid;
  border-bottom-width: 1px;
  border-bottom-style: solid;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_price_wrap .cmsmasters_currency,
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_price_wrap .cmsmasters_price,
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_price_wrap .cmsmasters_coins {
  display: inline-block;
  vertical-align: top;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item .cmsmasters_price_wrap .cmsmasters_period {
  display: block;
  margin-top: -7px;
  padding: 0 0 0 21px;
}
.cmsmasters_pricing_table .cmsmasters_pricing_item.pricing_best .cmsmasters_price_wrap {
  margin-left: -1px;
  margin-right: -1px;
}
.cmsmasters_pricing_table.pricing_one .cmsmasters_pricing_item {
  width: 100%;
}
.cmsmasters_pricing_table.pricing_two .cmsmasters_pricing_item {
  width: 50%;
}
.cmsmasters_pricing_table.pricing_three .cmsmasters_pricing_item {
  width: 33.33%;
}
.cmsmasters_pricing_table.pricing_four .cmsmasters_pricing_item {
  width: 25%;
}
/***************** 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: 20px;
  float: left;
}
.cmsmasters_img.cmsmasters_image_r {
  margin-left: 20px;
  float: right;
}
.cmsmasters_img.with_caption {
  padding: 20px 20px 0 20px;
  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: 20px;
  border-width: 1px;
  border-style: solid;
}
.wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
}
.wp-caption.alignleft {
  margin-right: 25px;
}
.wp-caption.alignright {
  margin-left: 25px;
}
.wp-caption .wp-caption-text {
  padding: 15px 0;
  text-align: center;
}
/***************** WP Gallery ******************/
.gallery {
  margin: 0 -20px;
}
.gallery-item {
  display: inline-block;
  padding: 0 20px;
  margin-bottom: 20px;
}
.gallery-item .wp-caption-text {
  word-wrap: break-word;
}
.gallery.gallery-columns-2 .gallery-item {
  width: 50%;
}
.gallery.gallery-columns-3 .gallery-item {
  width: 33.33%;
}
.gallery.gallery-columns-4 .gallery-item {
  width: 25%;
}
.gallery.gallery-columns-5 .gallery-item {
  width: 20%;
}
.gallery.gallery-columns-6 .gallery-item {
  width: 16.66%;
}
.gallery.gallery-columns-7 .gallery-item {
  width: 14.28%;
}
.gallery.gallery-columns-8 .gallery-item {
  width: 12.5%;
}
.gallery.gallery-columns-9 .gallery-item {
  width: 11.11%;
}
.gallery-item .gallery-icon {
  padding: 20px;
}
.gallery-item .gallery-icon img {
  width: 100%;
}
.gallery-item .gallery-caption {
  text-align: center;
  padding: 0 20px 15px;
  margin-top: -5px;
}
/***************** Sidebar ******************/
.cmsmasters_sidebar {
  margin: 0 -2%;
}
.cmsmasters_sidebar aside {
  margin: 0 2%;
  float: left;
}
.sidebar_layout_14141414 aside {
  width: 21%;
}
.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%;
}
.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%;
}
.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%;
}
.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%;
}
.sidebar_layout_121414 > aside:first-child,
.sidebar_layout_121414 > div.cl + aside,
.sidebar_layout_121414 > div.cmsmasters_widget_divider + aside {
  width: 46%;
}
.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%;
}
.sidebar_layout_131313 aside {
  width: 29.33%;
}
.sidebar_layout_3414 > aside:first-child,
.sidebar_layout_3414 > div.cl + aside,
.sidebar_layout_3414 > div.cmsmasters_widget_divider + aside {
  width: 71%;
}
.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%;
}
.sidebar_layout_1434 > aside:first-child,
.sidebar_layout_1434 > div.cl + aside,
.sidebar_layout_1434 > div.cmsmasters_widget_divider + aside {
  width: 21%;
}
.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%;
}
.sidebar_layout_2313 > aside:first-child,
.sidebar_layout_2313 > div.cl + aside,
.sidebar_layout_2313 > div.cmsmasters_widget_divider + aside {
  width: 62.67%;
}
.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.33%;
}
.sidebar_layout_1323 > aside:first-child,
.sidebar_layout_1323 > div.cl + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside {
  width: 29.33%;
}
.sidebar_layout_1323 > aside:first-child + aside,
.sidebar_layout_1323 > div.cl + aside + aside,
.sidebar_layout_1323 > div.cmsmasters_widget_divider + aside + aside {
  width: 62.67%;
}
.sidebar_layout_1212 aside {
  width: 46%;
}
.sidebar_layout_11 aside {
  width: 96%;
}
/***************** 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 {
  cursor: pointer;
}
/***************** Twitter Stripe ******************/
.cmsmasters_twitter_wrap {
  position: relative;
}
.cmsmasters_twitter .cmsmasters_twitter_item {
  padding: 0 50px 0 45px;
  position: relative;
}
.cmsmasters_twitter .published {
  padding: 0 15px 0 0;
  position: absolute;
  top: 50%;
  left: 45px;
  width: 110px;
  height: 20px;
  margin-top: -10px;
}
.cmsmasters_twitter .cmsmasters_twitter_item {
  padding-right: 80px;
}
.cmsmasters_twitter .cmsmasters_twitter_item_content {
  display: block;
  padding: 0 0 0 160px;
}
.cmsmasters_twitter .owl-buttons {
  position: absolute;
  right: 0;
  top: 50%;
  margin-top: -15px;
}
.cmsmasters_twitter .owl-buttons > div {
  margin-left: 3px;
}
.cmsmasters_twitter .owl-buttons > div > span {
  -webkit-border-radius: 0;
  border-radius: 0;
}
.cmsmasters_twitter .owl-buttons > div > span > span {
  height: 11px;
}
.twr_icon {
  font-size: 26px;
  line-height: 26x;
  display: block;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: auto;
  top: -4px;
  bottom: 0;
}
.twr_icon:before {
  margin: 0 !important;
}
/***************** Dropcap ******************/
.cmsmasters_dropcap {
  margin: 5px 33px 5px 23px;
  line-height: 50px;
  float: left;
}
.cmsmasters_dropcap.type2 {
  width: 46px;
  height: 46px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  text-align: center;
  margin: 5px 25px 5px 0;
}
/***************** Clients ******************/
.cmsmasters_clients_slider {
  margin: 0 0 30px;
}
.cmsmasters_clients_slider .owl-buttons > div > span > span {
  height: 11px;
}
.cmsmasters_clients_item {
  height: 180px;
  line-height: 180px;
  text-align: center;
  vertical-align: middle;
}
.cmsmasters_clients_item img {
  display: inline-block;
  padding: 20px;
  max-width: 100%;
  max-height: 100%;
  height: auto;
  width: auto;
  vertical-align: middle;
}
.cmsmasters_clients_item a {
  line-height: 180px;
  display: block;
  height: 100%;
}
.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;
}
.cmsmasters_clients_slider {
  padding: 0 50px;
}
.cmsmasters_clients_slider .owl-pagination {
  bottom: 0;
}
.cmsmasters_clients_slider .owl-pagination .owl-page {
  border-width: 1px;
  border-style: solid;
}
.cmsmasters_clients_slider .owl-buttons > div {
  position: absolute;
  top: 50%;
  margin-top: -15px;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-prev {
  left: 0;
}
.cmsmasters_clients_slider .owl-buttons > div.owl-next {
  right: 0;
}
/*-------------------------------------------------------------------------*/
/*	Widgets Styles
/*-------------------------------------------------------------------------*/
.widget {
  position: relative;
  padding: 0 0 20px;
}
.sidebar .widget {
  margin-bottom: 50px;
  padding-bottom: 0;
}
.sidebar .widget:last-child {
  margin-bottom: 0;
}
.sidebar .widget .widgettitle {
  margin-bottom: 25px;
}
.widget .widgettitle {
  margin-bottom: 30px;
}
.widget ul {
  padding: 0;
  margin-bottom: 0;
}
.widget ul li {
  padding: 7px 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.widget ul li:first-child {
  border-top-width: 0;
  border-top-style: solid;
  padding-top: 0;
}
.widget ul li li:first-child {
  border-top-width: 1px;
  border-top-style: solid;
}
.bottom_inner .widget .widgettitle {
  display: inline-block;
  padding-bottom: 10px;
}
.bottom_inner .widget .widgettitle:before {
  content: '';
  width: 50px;
  height: 2px;
  position: absolute;
  left: 0;
  bottom: 0;
}
.widget_archive ul li,
.widget_categories ul li,
.widget_meta ul li,
.widget_pages ul li,
.widget_recent_comments ul li,
.widget_recent_entries ul li {
  padding-left: 26px;
}
.widget_archive ul li:before,
.widget_categories ul li:before,
.widget_meta ul li:before,
.widget_pages ul li:before,
.widget_recent_comments ul li:before,
.widget_recent_entries ul li:before {
  content: '\e888';
  font-size: 12px;
  width: 14px;
  top: 12px;
  left: 1px;
}
.widget_archive ul li:first-child:before,
.widget_categories ul li:first-child:before,
.widget_meta ul li:first-child:before,
.widget_pages ul li:first-child:before,
.widget_recent_comments ul li:first-child:before,
.widget_recent_entries ul li:first-child:before {
  top: 5px;
}
/***************** Widget Booking ******************/
.cmsmasters_wrap_table {
  overflow: auto;
}
.widget_custom_booking_entries {
  display: table;
  width: 100%;
}
.widget_custom_booking_entries .booking_title {
  margin-bottom: 30px;
}
.widget_custom_booking_entries .widget_content li {
  padding: 10px 0;
  border-top-width: 1px;
  border-top-style: solid;
}
.widget_custom_booking_entries .widget_content li:first-child {
  border-top-width: 0;
  border-top-style: solid;
  padding-top: 0;
}
.widget_custom_booking_entries .widget_booking_cell {
  display: table-cell;
  padding: 30px;
}
.widget_custom_booking_entries .widget_booking_cell.booking_one_fourth {
  width: 25%;
}
.widget_custom_booking_entries .widget_booking_cell.booking_one_half {
  width: 50%;
}
.widget_custom_booking_entries .widget_booking_cell .button,
.widget_custom_booking_entries .widget_booking_cell input[type=submit],
.widget_custom_booking_entries .widget_booking_cell input[type=button],
.widget_custom_booking_entries .widget_booking_cell button {
  width: 100%;
  height: 38px;
}
.widget_custom_booking_entries 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]),
.widget_custom_booking_entries textarea,
.widget_custom_booking_entries select {
  width: 100%;
}
.widget_custom_booking_entries textarea {
  height: auto;
}
.widget_custom_booking_entries span.wpcf7-not-valid-tip {
  padding: 5px 15px;
  margin: 5px 0;
}
.select_arrow {
  position: relative;
}
.select_arrow select {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-image: none;
  position: relative;
  z-index: 2;
}
.select_arrow select::-ms-expand {
  display: none;
}
.select_arrow:after {
  content: '\eb20';
  font-family: 'fontello';
  line-height: 10px;
  font-size: 14px;
  display: block;
  height: 10px;
  width: 10px;
  position: absolute;
  right: 11px;
  top: 15px;
  z-index: 1;
}
/***************** Widget Custom Menu ******************/
.widget_nav_menu > div > ul {
  padding: 0;
}
.widget_nav_menu > div > ul ul {
  margin: 0;
}
.widget_nav_menu > div > ul li {
  padding: 0;
}
.widget_nav_menu > div > ul li:before {
  content: none;
}
.widget_nav_menu > div > ul li li:first-child {
  padding: 0;
}
.widget_nav_menu > div > ul li > a {
  display: block;
  padding: 10px 0;
  position: relative;
}
.widget_nav_menu > div > ul li > a:before {
  content: '';
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  bottom: -1px;
  left: 0;
  opacity: 0;
  z-index: 2;
}
.widget_nav_menu > div > ul li > a:hover:before {
  opacity: 1;
}
.widget_nav_menu > div > ul li > a:empty {
  display: none;
}
.widget_nav_menu > div > ul li.current_page_item > a:before {
  opacity: 1;
}
.widget_nav_menu > div > ul > li > a {
  padding-left: 0;
}
.widget_nav_menu > div > ul > li:last-child > a:before {
  content: none;
}
.widget_nav_menu > div > ul > li > ul > li > a {
  padding-left: 20px;
  padding-top: 8px;
  padding-bottom: 8px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > a {
  padding-left: 40px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 60px;
  padding-top: 6px;
  padding-bottom: 6px;
}
.widget_nav_menu > div > ul > li > ul > li > ul > li > ul > li > ul > li > a {
  padding-left: 80px;
  padding-top: 6px;
  padding-bottom: 6px;
}
/***************** 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 Facebook ******************/
.widget_custom_facebook_entries iframe {
  margin-bottom: 0;
}
/***************** Widget Pages and Categories ******************/
.widget_pages ul ul,
.widget_categories ul ul {
  margin-left: 0;
}
.widget_pages ul ul li:first-child,
.widget_categories ul ul li:first-child {
  padding: 7px 0;
}
.widget_pages li > ul,
.widget_categories li > ul {
  padding-top: 7px;
  margin-bottom: -7px;
}
.widget_pages ul > li > ul > li > a,
.widget_categories 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 {
  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 {
  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 {
  padding-left: 60px;
}
/***************** Widget Contact Info ******************/
.widget_custom_contact_info_entries span {
  display: block;
}
.contact_widget_name,
.contact_widget_email,
.contact_widget_url,
.contact_widget_phone,
.adress_wrap {
  padding-left: 33px;
  position: relative;
}
.contact_widget_name:before,
.contact_widget_email:before,
.contact_widget_url:before,
.contact_widget_phone:before,
.adress_wrap:before {
  font-size: 16px;
  position: absolute;
  left: 0;
  top: 2px;
}
.contact_widget_name,
.contact_widget_email,
.contact_widget_url,
.contact_widget_phone {
  padding-bottom: 20px;
}
/***************** Widget Twitter ******************/
.widget_custom_twitter_entries {
  position: relative;
}
.widget_custom_twitter_entries .tweet_list li {
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  padding: 15px 20px 25px;
}
.widget_custom_twitter_entries .tweet_list li:before {
  content: none;
}
.widget_custom_twitter_entries .tweet_list li:first-child {
  border-top-width: 1px;
  border-top-style: solid;
  padding-top: 15px;
}
.widget_custom_twitter_entries .tweet_list li .tweet_time {
  padding-left: 27px;
  position: relative;
  display: block;
}
.widget_custom_twitter_entries .tweet_list li .tweet_time:before {
  content: '\eb9a';
  font-size: 15px;
  font-family: 'fontello';
  position: absolute;
  left: 0;
  top: -1px;
}
.widget_custom_twitter_entries .tweet_list li .tweet_text {
  display: block;
  padding-top: 15px;
}
.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: 10px 15px;
}
#wp-calendar caption:before {
  content: '\eb1e';
  font-family: 'fontello';
  font-size: 14px;
  left: 2px;
  top: 10px;
  position: absolute;
}
#wp-calendar td,
#wp-calendar th {
  padding: 5px 0;
}
#wp-calendar tfoot a {
  display: inline-block;
  padding-top: 10px;
}
/***************** Widget Flickr ******************/
.widget_custom_flickr_entries .wrap {
  margin: 0 -7px;
}
.widget_custom_flickr_entries .more_button {
  display: none;
}
.widget_custom_flickr_entries .flickr_badge_image {
  margin: 0 7px 14px;
  float: left;
}
/***************** Widget Posts Tabs ******************/
.cmsmasters_tabs.lpr {
  position: relative;
}
.cmsmasters_tabs.lpr li {
  border-width: 0;
  border-style: solid;
}
.cmsmasters_tabs.lpr li:before {
  content: none;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_list {
  text-align: left;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_list .cmsmasters_tabs_list_item {
  width: 33.32%;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a {
  padding: 12px 10px 8px;
  text-align: center;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_wrap {
  padding-top: 20px;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_wrap .cmsmasters_tab:first-child {
  display: block;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_wrap .cmsmasters_tab li {
  padding: 10px 0;
}
.cmsmasters_tabs.lpr .cmsmasters_tabs_wrap p {
  padding: 0;
}
.cmsmasters_tabs.lpr .cmsmasters_lpr_img {
  margin-right: 20px;
  float: left;
}
.cmsmasters_tabs.lpr .cmsmasters_lpr_img .img_placeholder_small {
  width: 50px;
  height: 50px;
}
.cmsmasters_tabs.lpr .cmsmasters_lpr_img img {
  width: 50px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.cmsmasters_tabs.lpr .cmsmasters_lpr_cont {
  overflow: hidden;
  padding-top: 5px;
}
.cmsmasters_tabs.lpr .published {
  display: block;
}
/***************** Widget RSS ******************/
.widget_rss ul li {
  padding: 15px 0;
  overflow: hidden;
}
.widget_rss ul li:before {
  content: none;
}
.widget_rss ul li cite {
  float: right;
}
.widget_rss ul li:first-child {
  padding-top: 0;
}
.widget_rss ul li:last-child {
  padding-bottom: 0;
}
.iclflag {
  display: inline;
}
.rss-date {
  display: block;
}
.rssSummary {
  padding-top: 10px;
}
.rsswidget img {
  margin: 0 3px 2px 0;
}
/***************** Widget Latest and Popular Projects ******************/
.widget_custom_popular_projects_entries,
.widget_custom_latest_projects_entries {
  position: relative;
}
.widget_custom_popular_projects_entries .widgettitle,
.widget_custom_latest_projects_entries .widgettitle {
  padding-right: 60px;
}
.widget_custom_popular_projects_entries .img_placeholder,
.widget_custom_latest_projects_entries .img_placeholder {
  position: relative;
  padding-bottom: 60.34%;
  display: block;
  border-width: 1px;
  border-style: solid;
}
.widget_custom_popular_projects_entries .img_placeholder:before,
.widget_custom_latest_projects_entries .img_placeholder:before {
  font-size: 40px;
  width: 1em;
  height: 1em;
  margin: auto !important;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}
.widget_custom_popular_projects_entries .pj_ddn,
.widget_custom_latest_projects_entries .pj_ddn {
  border-width: 1px;
  border-style: solid;
  border-top-width: 0;
  border-top-style: solid;
  padding: 15px 20px;
}
.widget_custom_popular_projects_entries .pj_ddn .entry-title,
.widget_custom_latest_projects_entries .pj_ddn .entry-title {
  margin: 0;
}
.widget_custom_popular_projects_entries .pj_ddn .cmsmasters_project_content,
.widget_custom_latest_projects_entries .pj_ddn .cmsmasters_project_content {
  margin-top: 15px;
}
.widget_custom_popular_projects_entries .pj_ddn .cmsmasters_project_content p,
.widget_custom_latest_projects_entries .pj_ddn .cmsmasters_project_content p {
  padding: 0;
}
.widget_custom_popular_projects_entries .pj_ddn .cmsmastersLike,
.widget_custom_latest_projects_entries .pj_ddn .cmsmastersLike,
.widget_custom_popular_projects_entries .pj_ddn .cmsmasters_post_comments,
.widget_custom_latest_projects_entries .pj_ddn .cmsmasters_post_comments {
  margin: 15px 10px 0 0;
  display: inline-block;
}
.widget_custom_popular_projects_entries .owl-buttons,
.widget_custom_latest_projects_entries .owl-buttons {
  position: absolute;
  right: 0;
  top: -50px;
}
.widget_custom_popular_projects_entries .owl-buttons > div > span,
.widget_custom_latest_projects_entries .owl-buttons > div > span {
  width: 26px;
  height: 26px;
  margin-left: 3px;
}
/*-------------------------------------------------------------------------*/
/*	Search + Archives + Sitemap + Error + Other Styles
/*-------------------------------------------------------------------------*/
/***************** Archives + Search ******************/
.cmsmasters_search,
.cmsmasters_archive {
  position: relative;
  overflow: hidden;
}
.cmsmasters_search .cmsmasters_wrap_pagination,
.cmsmasters_archive .cmsmasters_wrap_pagination {
  margin-top: 50px;
}
.cmsmasters_archive .about_author {
  padding: 0 0 50px;
}
.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_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 {
  word-wrap: break-word;
  margin: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content {
  padding: 0 0 20px;
  position: relative;
  overflow: hidden;
}
.cmsmasters_archive_type .cmsmasters_archive_item_content p {
  padding: 0;
}
.cmsmasters_archive_type .cmsmasters_archive_item_info {
  padding: 10px 0 0;
  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 20px 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 .search_bar_wrap {
  margin: 0 auto 40px;
  width: 400px;
  max-width: 100%;
  display: block;
}
.error .error_subtitle {
  text-align: center;
  margin-bottom: 50px;
}
.error .error_title {
  font-size: 220px;
  text-align: center;
  line-height: 1em;
  margin: 0;
  padding: 100px 0;
}
.error .error_inner {
  margin-bottom: 60px;
}
.error .error_button_wrap {
  text-align: center;
  padding-bottom: 50px;
}
/***************** 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;
  border-bottom-width: 1px;
  border-bottom-style: solid;
  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: 8px;
}
#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 -2%;
}
.cmsmasters-form-builder .success_box {
  margin: 0 2% 10px;
  width: 96%;
}
.cmsmasters-form-builder .form_info {
  margin: 0 2%;
  padding-bottom: 15px !important;
}
.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;
}
.page #fbuilder label {
  position: relative;
}
.page #fbuilder .fields {
  padding-bottom: 10px;
  padding-top: 0;
}
.page #fbuilder .fields > div[id^="fieldname"] {
  margin: 0 -10px;
}
.page #fbuilder .fields > div[id^="fieldname"] .fields {
  padding-left: 10px;
  padding-right: 10px;
}
.page #fbuilder .fields > label {
  display: block;
  padding-bottom: 5px;
}
.page #fbuilder .fields > fieldset {
  margin-bottom: 0;
}
.page #fbuilder fieldset > .fields {
  padding-left: 10px;
  padding-right: 10px;
}
.page #fbuilder .dfield > div {
  margin-top: 10px;
}
.page #fbuilder .dfield > input {
  margin-top: 5px;
}
.page #fbuilder .codepeoplecalculatedfield {
  height: 42px;
  padding-left: 20px;
  padding-right: 20px;
  border-width: 0;
  border-style: solid;
}
#fbuilder input[type="checkbox"] + .field_before,
#fbuilder input[type="radio"] + .field_before {
  width: 17px;
  height: 19px;
}
.wpcf7-list-item-label,
#fbuilder input[type="checkbox"] + .field_before,
#fbuilder input[type="radio"] + .field_before,
body .cmsmasters-form-builder .check_parent input[type="checkbox"] + label,
body .cmsmasters-form-builder .check_parent input[type="radio"] + label {
  padding-left: 28px;
  padding-right: 0;
  position: relative;
  cursor: pointer;
  float: left;
}
.wpcf7-list-item label {
  position: relative;
  display: block;
  overflow: hidden;
  padding: 5px 0;
}
#fbuilder input[type="checkbox"],
#fbuilder input[type="radio"],
.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"] {
  position: absolute;
  top: 0;
  left: 0;
  float: left;
  opacity: 0;
}
.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,
#fbuilder input[type="checkbox"] + .field_before:after {
  content: '\eabb';
  font-family: 'fontello';
  font-size: 14px;
  font-weight: bold;
  display: block;
  position: absolute;
  top: -1px;
  left: 3px;
  -webkit-transform: scale(0.75);
  -moz-transform: scale(0.75);
  transform: scale(0.75);
  opacity: 0;
}
.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,
#fbuilder input[type="radio"] + .field_before:after {
  content: '';
  display: block;
  width: 10px;
  height: 10px;
  opacity: 0;
  position: absolute;
  top: 5px;
  left: 4px;
  -webkit-transform: scale(0);
  -moz-transform: scale(0);
  transform: scale(0);
  text-align: center;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.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,
#fbuilder input[type="checkbox"]:checked + .field_before: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,
#fbuilder input[type="radio"]:checked + .field_before:after {
  -webkit-transform: scale(1);
  -moz-transform: scale(1);
  transform: scale(1);
  opacity: 1;
}
.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,
#fbuilder input[type="checkbox"] + .field_before: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,
#fbuilder input[type="radio"] + .field_before:before {
  content: '';
  display: block;
  width: 17px;
  height: 17px;
  text-align: center;
  position: absolute;
  left: 0;
  top: 1px;
  border-width: 1px;
  border-style: solid;
}
.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,
#fbuilder input[type="radio"] + .field_before:before {
  width: 18px;
  height: 18px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.widget_custom_contact_form_entries 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]),
.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;
}
.wpcf7-form-control-wrap {
  margin-bottom: 20px;
  display: block;
}
.wpcf7-mail-sent-ok {
  overflow: hidden;
}
@supports (-ms-accelerator:true) {
  .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,
  #fbuilder input[type="radio"] + .field_before:after {
    top: 5px;
  }
  .cmsmasters_profile.vertical .profile:before {
    left: 0;
  }
}
.custom_subscribe .widget_wysija {
  position: relative;
}
.custom_subscribe .widgettitle {
  margin: 0;
}
.custom_subscribe .wysija-paragraph {
  padding: 0;
}
.custom_subscribe 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: 38px;
}
.custom_subscribe .wysija-submit-field {
  position: absolute;
  right: 0;
  bottom: 0;
  line-height: 36px;
  -webkit-border-radius: 0 20px 20px 0;
  border-radius: 0 20px 20px 0;
}
#page #signup-content {
  padding: 60px 0 40px;
}
#page .mu_register input[type=submit],
#page .mu_register #blog_title,
#page .mu_register #user_email,
#page .mu_register #blogname,
#page .mu_register #user_name {
  font-size: inherit;
  width: auto;
}
#page .mu_register label {
  font-size: inherit;
  font-weight: inherit;
}
#page .mu_register .error {
  padding: 15px 20px;
  margin-bottom: 10px;
  font-weight: inherit;
  position: relative;
  overflow: visible;
}
#page .mu_register .error:before {
  content: '';
  display: block;
  width: 2px;
  position: absolute;
  left: -1px;
  top: -1px;
  bottom: -1px;
}
/*-------------------------------------------------------------------------*/
/*	CSS3 Animations */
/*-------------------------------------------------------------------------*/
html.csstransitions {
  /* Global Animations */
}
html.csstransitions .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link:before,
html.csstransitions .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link span:before,
html.csstransitions .cmsmastersLike:before,
html.csstransitions .cmsmasters_post_comments:before,
html.csstransitions #header .navigation .cmsmasters_resp_nav_toggle {
  -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 .header_bot .search_wrap .search_toggle {
  -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_toggles .cmsmasters_toggle_wrap:before,
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item:before,
html.csstransitions .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover,
html.csstransitions .cmsmasters_wrap_pagination ul li a.page-numbers,
html.csstransitions .header_mid_but {
  -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 .img_placeholder_small,
html.csstransitions .cmsmasters_toggles .cmsmasters_toggle_wrap,
html.csstransitions .cmsmasters_tabs .cmsmasters_tabs_list .cmsmasters_tabs_list_item > a,
html.csstransitions .cmsmasters_items_filter_wrap .cmsmasters_items_filter_list li a,
html.csstransitions .owl-pagination .owl-page,
html.csstransitions .cmsmasters_content_slider .owl-buttons > div,
html.csstransitions .post.cmsmasters_default_type.format-gallery .owl-buttons > div,
html.csstransitions .post.cmsmasters_timeline_type.format-gallery .owl-buttons > div,
html.csstransitions .post.cmsmasters_masonry_type.format-gallery .owl-buttons > div,
html.csstransitions .pbPrevious,
html.csstransitions .pbNext,
html.csstransitions .button,
html.csstransitions input[type=submit],
html.csstransitions input[type=button],
html.csstransitions button,
html.csstransitions .cmsmasters_prev_arrow,
html.csstransitions .cmsmasters_next_arrow,
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 .header_bot nav > div > ul ul li a:before,
html.csstransitions .header_mid nav > div > ul ul li a:before,
html.csstransitions .widget_nav_menu > div > ul li > a:before,
html.csstransitions .cmsmasters_profile .profile .pl_img a:before,
html.csstransitions .portfolio.puzzle .project .cmsmasters_project_footer a:before,
html.csstransitions .portfolio.puzzle .project .cmsmasters_project_category a,
html.csstransitions .portfolio.puzzle .project .cmsmasters_project_title a,
html.csstransitions .cmsmasters_wrap_pagination ul li .page-numbers:before,
html.csstransitions .post.cmsmasters_puzzle_type .cmsmasters_post_cont .preloader:after,
html.csstransitions .header_bot .search_wrap .search_bar_wrap .search_button,
html.csstransitions .cmsmasters_quotes_slider.cmsmasters_quotes_slider_type_box .wrap_quote_title a {
  -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 .header_top .social_wrap .cmsmasters_social_icon {
  -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_profile .profile .pl_img a:after,
html.csstransitions .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_image_link {
  -webkit-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s;
  -moz-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s;
  -ms-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s;
  -o-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s;
  transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s;
}
html.csstransitions .cmsmasters_img_rollover_wrap .cmsmasters_img_rollover .cmsmasters_open_post_link {
  -webkit-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -moz-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -ms-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -o-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
}
html.csstransitions .portfolio.puzzle .project .cmsmasters_img_rollover:before {
  -webkit-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -moz-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -ms-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  -o-transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
  transition: opacity .2s ease-in-out .1s, top .4s ease-in-out .1s, transform .4s ease-in-out .1s, color .3s ease-in-out;
}
html.csstransitions .post.cmsmasters_default_type.format-gallery .owl-buttons > div,
html.csstransitions .post.cmsmasters_masonry_type.format-gallery .owl-buttons > div,
html.csstransitions .post.cmsmasters_timeline_type.format-gallery .owl-buttons > div,
html.csstransitions .cmsmasters_content_slider .owl-buttons > div {
  -webkit-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out, right .3s ease-in-out, left .3s ease-in-out;
  -moz-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out, right .3s ease-in-out, left .3s ease-in-out;
  -ms-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out, right .3s ease-in-out, left .3s ease-in-out;
  -o-transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out, right .3s ease-in-out, left .3s ease-in-out;
  transition: background-color .3s ease-in-out, color .3s ease-in-out, border-color .3s ease-in-out, right .3s ease-in-out, left .3s ease-in-out;
}
html.csstransitions 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]),
html.csstransitions textarea,
html.csstransitions select {
  -webkit-transition: border-color .2s ease-in-out, box-shadow .1s ease-in-out, background-color .2s ease-in-out;
  -moz-transition: border-color .2s ease-in-out, box-shadow .1s ease-in-out, background-color .2s ease-in-out;
  -ms-transition: border-color .2s ease-in-out, box-shadow .1s ease-in-out, background-color .2s ease-in-out;
  -o-transition: border-color .2s ease-in-out, box-shadow .1s ease-in-out, background-color .2s ease-in-out;
  transition: border-color .2s ease-in-out, box-shadow .1s ease-in-out, background-color .2s ease-in-out;
}
html.csstransitions .bot_nav > li:before {
  -webkit-transition: width .3s ease-in-out, background-color .3s ease-in-out;
  -moz-transition: width .3s ease-in-out, background-color .3s ease-in-out;
  -ms-transition: width .3s ease-in-out, background-color .3s ease-in-out;
  -o-transition: width .3s ease-in-out, background-color .3s ease-in-out;
  transition: width .3s ease-in-out, background-color .3s ease-in-out;
}
html.csstransitions .search_button,
html.csstransitions .search_wrap .search_bar_wrap .search_field {
  -webkit-transition: width .3s ease-in-out, opacity .3s ease-in-out;
  -moz-transition: width .3s ease-in-out, opacity .3s ease-in-out;
  -ms-transition: width .3s ease-in-out, opacity .3s ease-in-out;
  -o-transition: width .3s ease-in-out, opacity .3s ease-in-out;
  transition: width .3s ease-in-out, opacity .3s ease-in-out;
}
html.csstransitions .portfolio.puzzle .project .project_outer .project_inner {
  -webkit-transition: margin-top .4s ease-in-out .1s, opacity .3s ease-in-out;
  -moz-transition: margin-top .4s ease-in-out .1s, opacity .3s ease-in-out;
  -ms-transition: margin-top .4s ease-in-out .1s, opacity .3s ease-in-out;
  -o-transition: margin-top .4s ease-in-out .1s, opacity .3s ease-in-out;
  transition: margin-top .4s ease-in-out .1s, opacity .3s ease-in-out;
}
html.csstransitions .header_top .responsive_top_nav,
html.csstransitions .header_top .responsive_top_nav:before,
html.csstransitions .header_mid .resp_mid_nav_wrap .resp_mid_nav,
html.csstransitions .header_mid .resp_mid_nav_wrap .resp_mid_nav:before,
html.csstransitions .header_mid .mid_nav_wrap,
html.csstransitions .header_bot .bot_nav_wrap {
  -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 a,
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_outer,
html.csstransitions .header_bot_outer {
  -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 .cmsmasters_social_icon {
  -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 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 {
  -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 .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 .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 #fbuilder input[type="checkbox"] + .field_before: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 #fbuilder input[type="radio"] + .field_before: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: height .5s ease-in;
  -moz-transition: height .5s ease-in;
  -ms-transition: height .5s ease-in;
  -o-transition: height .5s ease-in;
  transition: height .5s 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_noimg,
html.csstransitions .cmsmasters_profile .profile img {
  -webkit-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -moz-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -ms-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  -o-transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
  transition: all .7s cubic-bezier(.55, .3, .5, 1.65);
}
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 .portfolio.grid article.project 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 .portfolio.puzzle .project .project_outer figure img,
html.csstransitions .portfolio.puzzle .project .project_outer figure .img_placeholder {
  -webkit-transition: all .2s ease-in-out;
  -moz-transition: all .2s ease-in-out;
  -ms-transition: all .2s ease-in-out;
  -o-transition: all .2s ease-in-out;
  transition: all .2s 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.shortcode_animated .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;
}
@-webkit-keyframes autofill {
  to {
    color: inherit;
    background: transparent;
  }
}
@-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: 0%;
  }
}
@-moz-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0%;
  }
}
@-o-keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0%;
  }
}
@keyframes bar_title {
  from {
    margin-left: -200px;
  }
  to {
    margin-left: 0%;
  }
}
@-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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInN0eWxlLmxlc3MiLCJnZW5lcmFsLmxlc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEySkE7RUFDQyxnQkFBQTs7QUFHRDtFQUNDLGdCQUFBOztBQUdEO0VBQ0MsaUJBQUE7RUFDQSxTQUFBOztBQUdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNDLFVBQUE7RUFDQSxnQkFBQTs7QUFHRCxFQUFHO0FBQ0gsRUFBRztBQUNILEVBQUc7QUFDSCxFQUFHO0FBQ0gsRUFBRztBQUNILEVBQUc7RUFDRixvQkFBQTtFQUNBLGtCQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLG9CQUFBOztBQUdEO0FBQ0E7RUFDQywyQkFBQTtFQUNBLG1CQUFBOztBQUdEO0VDc0pDLHFCQUFBO0VBQ0Esa0JBQUE7O0FEdkpELEVDeUpDO0VBQ0MsY0FBQTtFQUNBLGtCQUFBOztBQUVBLEVBSkQsS0FJRTtFQUNBLFNBQVEsT0FBUjtFQUNBLGFBQVksVUFBWjtFQUNBLGNBQUE7RUFDQSxrQkFBQTtFQUNBLG1CQUFBO0VBQ0EsV0FBQTtFQUNBLHFCQUFBO0VBQ0Esd0JBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLFNBQUE7RUFDQSxrQkFBQTtFQUNBLG9CQUFBO0VBQ0Esb0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtFQUNBLFdBQUE7O0FBSUEsRUExQkYsS0F5QkUsWUFDQztFQUNBLFFBQUE7O0FBTUEsRUFqQ0gsS0ErQkMsR0FDRSxZQUNDO0VBQ0EsUUFBQTs7QUR2TEw7RUFDQyxxQ0FBQTs7QUFHRCxFQUFHO0FBQ0gsRUFBRztFQUNGLGlCQUFBOztBQUdELEVBQUcsR0FB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Q0M7SUFDQyxRQUFBOztFQUdEO0lBQ0MsV0FBQTs7O0FBSUY7RUFDQztJQUNDLFFBQUE7O0VBR0Q7SUFDQyxXQUFBOzs7QUFLRjtFQUNDO0lBQ0MsbUJBQW1CLGtCQUFuQjs7RUFHRDtJQUNDLG1CQUFtQixnQkFBbkI7OztBQUlGO0VBQ0M7SUFDQyxnQkFBZ0Isa0JBQWhCOztFQUdEO0lBQ0MsZ0JBQWdCLGdCQUFoQjs7O0FBSUY7RUFDQztJQUNDLGNBQWMsa0JBQWQ7O0VBR0Q7SUFDQyxjQUFjLGdCQUFkOzs7QUFJRjtFQUNDO0lBQ0MsV0FBVyxrQkFBWDs7RUFHRDtJQUNDLFdBQVcsZ0JBQVg7OztBQUtGO0VBQ0M7SUFDQyxtQkFBQTs7RUFHRDtJQUNDLGVBQUE7OztBQUlGO0VBQ0M7SUFDQyxtQkFBQTs7RUFHRDtJQUNDLGVBQUE7OztBQUlGO0VBQ0M7SUFDQyxtQkFBQTs7RUFHRDtJQUNDLGVBQUE7OztBQUlGO0VBQ0M7SUFDQyxtQkFBQTs7RUFHRDtJQUNDLGVBQUE7OztBQUtGO0VBQ0M7SUFDQyxVQUFBOztFQUdEO0lBQ0MsVUFBQTs7O0FBSUY7RUFDQztJQUNDLFVBQUE7O0VBR0Q7SUFDQyxVQUFBOzs7QUFJRjtFQUNDO0lBQ0MsVUFBQTs7RUFHRDtJQUNDLFVBQUE7OztBQUlGO0VBQ0M7SUFDQyxVQUFBOztFQUdEO0lBQ0MsVUFBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxyXG4gKiBAcGFja2FnZSBcdFdvcmRQcmVzc1xyXG4gKiBAc3VicGFja2FnZSBcdExvZ2lzdGljIEJ1c2luZXNzXHJcbiAqIEB2ZXJzaW9uIFx0MS4wLjlcclxuICogXHJcbiAqIERlc2lnbiBDU1MgUnVsZXNcclxuICogQ3JlYXRlZCBieSBDTVNNYXN0ZXJzXHJcbiAqIFxyXG4gKi9cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXHJcblxyXG5cdDEuXHRHbG9iYWxseSBBcHBsaWVkIFN0eWxlcyAvIGJvZHlcclxuXHRcdDEuMS4gSW5zdGFncmFtIC8gI3NiaV9sb2FkXHJcblx0XHQxLjIuIEljb25zXHJcblx0XHRcdDEuMi4xLiBHbG9iYWxcclxuXHRcdFx0MS4yLjIuIEFycm93c1xyXG5cdFx0XHQxLjIuMy4gV2lkZ2V0IEFkZCBJbmZvXHJcblx0XHRcdDEuMi40LiBUd2l0dGVyIHN0cmlwZVxyXG5cdFx0MS4zLiBFbGVtZW50c1xyXG5cdFx0XHQxLjMuMS4gSWNvbiBBcnJvdyBHbG9iYWwgU3R5bGVzXHJcblx0XHRcdDEuMy4yLiBQaXhlbCBBcnJvdyBHbG9iYWwgU3R5bGVzXHJcblx0XHRcdDEuMy4zLiBQb3N0IFBhc3N3b3JkIEZvcm0gLyAucG9zdC1wYXNzd29yZC1mb3JtXHJcblx0XHRcdDEuMy40LiBQcmVsb2RhZXIgLyAucHJlbG9hZGVyXHJcblx0XHRcdDEuMy41LiBSZXNpemFibGUgQmxvY2sgLyAucmVzaXphYmxlX2Jsb2NrXHJcblx0XHRcdDEuMy42LiBJbWcgV3JhcHBlciAvIC5jbXNtYXN0ZXJzX2ltZ193cmFwXHJcblx0XHRcdDEuMy43LiBJbWcgUm9sbG92ZXIgLyAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcFxyXG5cdFx0XHQxLjMuOC4gUGxhY2Vob2xkZXIgU21hbGwgLyAuaW1nX3BsYWNlaG9sZGVyX3NtYWxsXHJcblx0XHRcdDEuMy45LiBWaWRlbyBXcmFwcGVyIC8gLm1lanMtY29udGFpbmVyXHJcblx0XHRcdDEuMy4xMC4gU2VhcmNoIEJhciAvIC5zZWFyY2hfYmFyX3dyYXBcclxuXHRcdFx0MS4zLjEwLiBTb2NpYWwgSWNvbnMgLyAuc29jaWFsX3dyYXBcclxuXHRcdFx0MS4zLjExLiBDb3JlIE93bCBDYXJvdXNlbCBDU1MgdjEuMy4yIC8gLm93bC1jYXJvdXNlbFxyXG5cdFx0XHQxLjMuMTIuIFNsaWRlIFRvcCBCdXR0b24gLyAjc2xpZGVfdG9wXHJcblx0XHRcdDEuMy4xMy4gT3BlbmVkIEFydGljbGUgLyAub3BlbmVkLWFydGljbGVcclxuXHRcdFx0MS4zLjE0LiBMaWtlcyBhbmQgQ29tbWVudHNcclxuXHRcdFx0XHQxLjMuMTQuMS4gTGlrZXMgLyAuY21zbWFzdGVyc19saWtlc1xyXG5cdFx0XHRcdDEuMy4xNC4yLiBDb21tZW50cyAvIC5jbXNtYXN0ZXJzX2NvbW1lbnRzXHJcblx0XHRcdDEuMy4xNS4gQnV0dG9uXHJcblx0XHRcdDEuMy4xNi4gSXRlbXMgRmlsdGVyIC8gLmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX3dyYXBcclxuXHRcdFx0MS4zLjE3LiBNb3JlIEl0ZW1zIExvYWRlciBhbmQgUGFnaW5hdGlvblxyXG5cdFx0XHRcdDEuMy4xNy4xLiBNb3JlIEl0ZW1zIExvYWRlciAvIC5jbXNtYXN0ZXJzX3dyYXBfbW9yZV9pdGVtc1xyXG5cdFx0XHRcdDEuMy4xNy4yLiBTdWJwYWdlIFBhZ2luYXRpb24gLyAuc3VicGFnZV9uYXZcclxuXHRcdFx0XHQxLjMuMTcuMi4gUGFnaW5hdGlvbiAvIC5jbXNtYXN0ZXJzX3dyYXBfcGFnaW5hdGlvblxyXG5cdFx0XHQxLjMuMTguIFBvc3QgTmF2aWdhdGlvbiAvIC5wb3N0X25hdlxyXG5cdFx0XHQxLjMuMTkuIFNoYXJlIFBvc3RzIC8gLnNoYXJlX3Bvc3RzXHJcblx0XHRcdDEuMy4yMC4gQWJvdXQgQXV0aG9yIC8gLmFib3V0X2F1dGhvclxyXG5cdFx0XHQxLjMuMjEuIFNpbmdsZSBQb3N0IFNsaWRlciAvIC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJcclxuXHRcdFx0MS4zLjIyLiBTaW5nbGUgUGluZ3MgTGlzdCAvIC5jbXNtYXN0ZXJzX3BpbmdzX2xpc3RcclxuXHRcdFx0MS4zLjIzLiBQb3N0IENvbW1lbnRzIC8gLnBvc3RfY29tbWVudHNcclxuXHRcdFx0MS4zLjI0LiBDb21tZW50IFJlc3BvbmQgLyAuY29tbWVudC1yZXNwb25kXHJcblx0Mi5cdEhlYWRlciAvICNoZWFkZXJcclxuXHRcdDIuMS4gSGVhZGVyIFRvcCAvIC5oZWFkZXJfdG9wXHJcblx0XHRcdDIuMS4xLiBIZWFkZXIgVG9wIE5hdmlnYXRpb24gLyAudG9wX2xpbmVfbmF2XHJcblx0XHQyLjIuIEhlYWRlciBNaWQgLyAuaGVhZGVyX21pZFxyXG5cdFx0XHQyLjEuMS4gSGVhZGVyIE1pZCBOYXZpZ2F0aW9uIC8gLm1pZF9uYXZcclxuXHRcdDIuMy4gSGVhZGVyIEJvdCAvIC5oZWFkZXJfYm90XHJcblx0XHRcdDIuMS4xLiBIZWFkZXIgQm90IE5hdmlnYXRpb24gLyAuYm90X25hdlxyXG5cdFx0Mi40LiBIZWFkZXIgU2VhcmNoIEZvcm1cclxuXHQzLlx0SGVhZGxpbmUgU3R5bGVzXHJcblx0NC5cdEJvdHRvbSArIEZvb3RlciBTdHlsZXNcclxuXHRcdDQuMS4gQm90dG9tIC8gI2JvdHRvbVxyXG5cdFx0NC4yLiBGb290ZXIgLyAjZm9vdGVyXHJcblx0XHRcdDQuMi4xLiBGb290ZXIgRGVmYXVsdCAvIC5jbXNtYXN0ZXJzX2Zvb3Rlcl9kZWZhdWx0XHJcblx0XHRcdDQuMi4yLiBGb290ZXIgU21hbGwgLyAuY21zbWFzdGVyc19mb290ZXJfc21hbGxcclxuXHQ1Llx0QmxvZyAvIC5ibG9nXHJcblx0XHQ1LjEuIEJsb2cgRGVmYXVsdCAvIC5jbXNtYXN0ZXJzX3Bvc3RfZGVmYXVsdFxyXG5cdFx0NS4yLiBCbG9nIE1hc29ucnkgLyAuY21zbWFzdGVyc19wb3N0X21hc29ucnlcclxuXHRcdDUuMy4gQmxvZyBUaW1lbGluZSAvIC5jbXNtYXN0ZXJzX3Bvc3RfdGltZWxpbmVcclxuXHRcdDUuNC4gQmxvZyBQb3N0IC8gLmNtc21hc3RlcnNfb3Blbl9wb3N0XHJcblx0Ni5cdFBvcnRmb2xpbyAvIC5wb3J0Zm9saW9cclxuXHRcdDYuMS4gUG9ydGZvbGlvIEdyaWQgLyAuY21zbWFzdGVyc19wcm9qZWN0X2dyaWRcclxuXHRcdDYuMi4gUG9ydGZvbGlvIFB1enpsZSAvIC5jbXNtYXN0ZXJzX3Byb2plY3RfcHV6emxlXHJcblx0XHQ2LjMuIFBvcnRmb2xpbyBPcGVuIFByb2plY3QgLyAuY21zbWFzdGVyc19vcGVuX3Byb2plY3RcclxuXHQ3Llx0UG9zdHMgU2xpZGVyIFN0eWxlcyAvIC5jbXNtYXN0ZXJzX3Bvc3RzX3NsaWRlclxyXG5cdFx0Ny4xLiBQb3N0cyBTbGlkZXIgQmxvZyAvIC5jbXNtYXN0ZXJzX3NsaWRlcl9wb3N0XHJcblx0XHQ3LjIuIFBvc3RzIFNsaWRlciBQb3J0Zm9saW8gLyAuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdFxyXG5cdDguXHRQcm9maWxlcyArIFByb2ZpbGUgU3R5bGVzIC8gLmNtc21hc3RlcnNfcHJvZmlsZVxyXG5cdFx0OC4xLiBQcm9maWxlcyBIb3Jpem9udGFsIC8gLmNtc21hc3RlcnNfcHJvZmlsZV9ob3Jpem9udGFsXHJcblx0XHQ4LjIuIFByb2ZpbGVzIFZlcnRpY2FsIC8gLmNtc21hc3RlcnNfcHJvZmlsZV92ZXJ0aWNhbFxyXG5cdFx0OC4zLiBQcm9maWxlcyBPcGVuIFByb2ZpbGUgLyAuY21zbWFzdGVyc19vcGVuX3Byb2ZpbGVcclxuXHQ5Llx0U2hvcnRjb2RlcyBTdHlsZXNcclxuXHRcdDkuMS4gRGl2aWRlciAvIC5jbXNtYXN0ZXJzX2RpdmlkZXJcclxuXHRcdDkuMi4gU3BlY2lhbCBIZWFkaW5nIC8gLmNtc21hc3RlcnNfaGVhZGluZ193cmFwXHJcblx0XHQ5LjMuIEZlYXR1cmVkIEJsb2NrIC8gLmNtc21hc3RlcnNfZmVhdHVyZWRfYmxvY2tcclxuXHRcdDkuNC4gVGFibGUgLyAuY21zbWFzdGVyc190YWJsZVxyXG5cdFx0OS41LiBOb3RpY2UgLyAuY21zbWFzdGVyc19ub3RpY2VcclxuXHRcdDkuNi4gSWNvbiAvIC5jbXNtYXN0ZXJzX2ljb25fd3JhcFxyXG5cdFx0OS43LiBJY29uIExpc3QgLyAuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbXNcclxuXHRcdDkuOC4gSWNvbiBCb3ggLyAuY21zbWFzdGVyc19pY29uX2JveFxyXG5cdFx0OS45LiBUb2dnbGVzIC8gLmNtc21hc3RlcnNfdG9nZ2xlc1xyXG5cdFx0OS4xMC4gVGFicyAvIC5jbXNtYXN0ZXJzX3RhYnNcclxuXHRcdDkuMTEuIFN0YXRzIC8gLmNtc21hc3RlcnNfc3RhdHNcclxuXHRcdDkuMTIuIENvdW50ZXJzIC8gLmNtc21hc3RlcnNfY291bnRlcnNcclxuXHRcdDkuMTMuIENNU01BU1RFUlMgQnV0dG9uIC8gLmNtc21hc3RlcnNfYnV0dG9uXHJcblx0XHQ5LjE0LiBDb250YWN0IEZvcm0gNyAvIC53cGNmNy1mb3JtXHJcblx0XHQ5LjE1LiBIb3ZlciBzbGlkZXIgLyAuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJcclxuXHRcdDkuMTYuIENvbnRlbnQgc2xpZGVyIC8gLmNtc21hc3RlcnNfY29udGVudF9zbGlkZXJcclxuXHRcdDkuMTcuIEdhbGxlcnkgLyAuY21zbWFzdGVyc19nYWxsZXJ5XHJcblx0XHQ5LjE4LiBRdW90ZXMgLyAuY21zbWFzdGVyc19xdW90ZXNfc2xpZGVyXHJcblx0XHQ5LjE5LiBQcmljaW5nIHRhYmxlcyAvIC5jbXNtYXN0ZXJzX3ByaWNpbmdfdGFibGVcclxuXHRcdDkuMjAuIEdvb2dsZSBNYXBzIC8gLmdvb2dsZV9tYXBcclxuXHRcdDkuMjEuIENhcHRpb24gLyAuY21zbWFzdGVyc19pbWdcclxuXHRcdDkuMjIuIFdQIEdhbGxlcnkgLyAuZ2FsbGVyeVxyXG5cdFx0OS4yMy4gU2lkZWJhciAvIC5jbXNtYXN0ZXJzX3NpZGViYXJcclxuXHRcdDkuMjQuIFNoYXJlIC8gLnNoYXJlX3dyYXBcclxuXHRcdDkuMjUuIFR3aXR0ZXIgU3RyaXBlIC8gLmNtc21hc3RlcnNfdHdpdHRlcl93cmFwXHJcblx0XHQ5LjI2LiBEcm9wY2FwIC8gLmNtc21hc3RlcnNfZHJvcGNhcFxyXG5cdFx0OS4yNy4gQ2xpZW50cyAvIC5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyXHJcblx0MTAuXHRXaWRnZXRzIFN0eWxlcyAvIC53aWRnZXRcclxuXHRcdDEwLjEuIFdpZGdldCBBZHZlcnRpc2VtZW50IC8gLndpZGdldF9jdXN0b21fYWR2ZXJ0aXNlbWVudF9lbnRyaWVzXHJcblx0XHQxMC4yLiBXaWRnZXQgTGlzdHNcclxuXHRcdFx0MTAuMi4xLiBXaWRnZXQgUGFnZXMgLyAud2lkZ2V0X3BhZ2VzXHJcblx0XHRcdDEwLjIuMi4gV2lkZ2V0IENhdGVnb3JpZXMgLyAud2lkZ2V0X2NhdGVnb3JpZXNcclxuXHRcdFx0MTAuMi4zLiBXaWRnZXQgQXJjaGl2ZSAvIC53aWRnZXRfYXJjaGl2ZVxyXG5cdFx0XHQxMC4yLjQuIFdpZGdldCBNZXRhIC8gLndpZGdldF9tZXRhXHJcblx0XHRcdDEwLjIuNS4gV2lkZ2V0IFJlY2VudCBDb21tZW50cyAvIC53aWRnZXRfcmVjZW50X2NvbW1lbnRzXHJcblx0XHRcdDEwLjIuNi4gV2lkZ2V0IFJlY2VudCBFbnRyaWVzIC8gLndpZGdldF9yZWNlbnRfZW50cmllc1xyXG5cdFx0MTAuMy4gV2lkZ2V0IENhbGVuZGFyIC8gI3dwLWNhbGVuZGFyXHJcblx0XHQxMC40LiBXaWRnZXQgQ29udGFjdCBGb3JtIC8gLndpZGdldF9jdXN0b21fY29udGFjdF9mb3JtX2VudHJpZXNcclxuXHRcdDEwLjUuIFdpZGdldCBDb250YWN0IEluZm8gLyAud2lkZ2V0X2N1c3RvbV9jb250YWN0X2luZm9fZW50cmllc1xyXG5cdFx0MTAuNi4gV2lkZ2V0IEN1c3RvbSBNZW51IC8gLndpZGdldF9uYXZfbWVudVxyXG5cdFx0MTAuNy4gV2lkZ2V0IEZhY2Vib29rIC8gLndpZGdldF9jdXN0b21fZmFjZWJvb2tfZW50cmllc1xyXG5cdFx0MTAuOC4gV2lkZ2V0IEZsaWNrciAvIC53aWRnZXRfY3VzdG9tX2ZsaWNrcl9lbnRyaWVzXHJcblx0XHQxMC45LiBXaWRnZXQgTGF0ZXN0IGFuZCBQb3B1bGFyIFByb2plY3RzXHJcblx0XHRcdDEwLjkuMS4gV2lkZ2V0IExhdGVzdCBQcm9qZWN0cyAvIC53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllc1xyXG5cdFx0XHQxMC45LjIuIFdpZGdldCBQb3B1bGFyIFByb2plY3RzIC8gLndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXNcclxuXHRcdDEwLjEwLiBXaWRnZXQgUG9zdHMgVGFicyAvIC53aWRnZXRfY3VzdG9tX3Bvc3RzX3RhYnNfZW50cmllc1xyXG5cdFx0MTAuMTEuIFdpZGdldCBSU1MgLyAud2lkZ2V0X3Jzc1xyXG5cdFx0MTAuMTIuIFdpZGdldCBUYWcgQ2xvdWQgLyAud2lkZ2V0X3RhZ19jbG91ZFxyXG5cdFx0MTAuMTMuIFdpZGdldCBUd2l0dGVyIC8gLndpZGdldF9jdXN0b21fdHdpdHRlcl9lbnRyaWVzXHJcblx0MTEuIFNlYXJjaCArIEFyY2hpdmVzICsgU2l0ZW1hcCArIEVycm9yICsgT3RoZXIgU3R5bGVzXHJcblx0XHQxMS4xLiBBcmNoaXZlcyArIFNlYXJjaFxyXG5cdFx0XHQxMS4xLjEuIEFyY2hpdmVzIC8gLmNtc21hc3RlcnNfYXJjaGl2ZVxyXG5cdFx0XHQxMS4xLjIuIFNlYXJjaCAvIC5jbXNtYXN0ZXJzX3NlYXJjaFxyXG5cdFx0MTEuMi4gU2l0ZW1hcCAvIC5jbXNtYXN0ZXJzX3NpdGVtYXBfd3JhcFxyXG5cdFx0MTEuMy4gRXJyb3IgLyAuZXJyb3JcclxuXHRcdDExLjQuIEF0dGFjaG1lbnQgUGFnZSAvIC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdcclxuXHRcdDExLjUuIE90aGVyXHJcblx0MTIuXHRDb250YWN0IEZvcm1zIFN0eWxlc1xyXG5cdFx0MTIuMS4gRm9ybSBCdWlsZGVyIC8gLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyXHJcblx0XHQxMi4yLiBDb250YWN0IEZvcm0gNyAvIC53cGNmN1xyXG5cdDEzLlx0Q1NTMyBBbmltYXRpb25zIC8gLmNzc3RyYW5zaXRpb25zXHJcblx0XHQxMy4xLiBDdXN0b20gQW5pbWF0aW9uc1xyXG5cdFx0MTMuMi4gR2xvYmFsIEFuaW1hdGlvbnNcclxuXHJcbi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuQGltcG9ydCBcImdlbmVyYWwubGVzc1wiO1xyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdEJyb3dzZXIgUmVzZXQgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbmJvZHkge1xyXG5cdHRleHQtYWxpZ246bGVmdDtcclxufVxyXG5cclxuZGl2IHtcclxuXHR0ZXh0LWFsaWduOmxlZnQ7XHJcbn1cclxuXHJcbnAge1xyXG5cdHBhZGRpbmc6MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0bWFyZ2luOjA7XHJcbn1cclxuXHJcbmgxLCBcclxuaDIsIFxyXG5oMywgXHJcbmg0LCBcclxuaDUsXHJcbmg2IHtcclxuXHRwYWRkaW5nOjA7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5oMSBhLCBcclxuaDIgYSwgXHJcbmgzIGEsIFxyXG5oNCBhLCBcclxuaDUgYSwgXHJcbmg2IGEge1xyXG5cdGZvbnQtZmFtaWx5OmluaGVyaXQ7XHJcblx0Zm9udC1zaXplOmluaGVyaXQ7XHJcblx0Zm9udC13ZWlnaHQ6aW5oZXJpdDtcclxuXHRmb250LXN0eWxlOmluaGVyaXQ7XHJcblx0bGluZS1oZWlnaHQ6aW5oZXJpdDtcclxufVxyXG5cclxudWwsXHJcbm9sIHtcclxuXHRsaXN0LXN0eWxlLXBvc2l0aW9uOmluc2lkZTtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbnVsIHtcclxuXHQuZGVmYXVsdF9saXN0KCk7XHJcbn1cclxuXHJcbm9sIHtcclxuXHRsaXN0LXN0eWxlLXR5cGU6ZGVjaW1hbC1sZWFkaW5nLXplcm87XHJcbn1cclxuXHJcbnVsIGxpLFxyXG5vbCBsaSB7XHJcblx0cGFkZGluZzpAZGVmYXVsdF9saXN0X3RvcF9wYWQgMCAwO1xyXG59XHJcblxyXG51bCBsaTpmaXJzdC1jaGlsZCxcclxub2wgbGk6Zmlyc3QtY2hpbGQge1xyXG4gIHBhZGRpbmctdG9wOiAwO1xyXG59XHJcblxyXG51bCB1bCxcclxub2wgdWwsXHJcbnVsIG9sLFxyXG5vbCBvbCB7XHJcblx0bWFyZ2luOjAgMCAwIEBkZWZhdWx0X2xpc3RfbGVmdF9wYWQ7XHJcblx0cGFkZGluZzpAZGVmYXVsdF9saXN0X3RvcF9wYWQgMCAwO1xyXG59XHJcblxyXG4uZXNnLWdyaWQge1xyXG5cdHVsIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbmlmcmFtZSB7XHJcblx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5hZGRyZXNzIHtcclxuXHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcbn1cclxuXHJcbnByZSB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5kZCB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlIHtcclxuXHQuZGVmYXVsdF9ibG9ja3F1b3RlKCk7XHJcbn1cclxuXHJcbnRhYmxlIHtcclxuXHQuZGVmYXVsdF90YWJsZSgpO1xyXG59XHJcblxyXG4ucGxzLWNvbnRhaW5lcixcclxuLnBscy1jb250YWluZXIgdGFibGUsXHJcbi5jbXNtYXN0ZXJzX3RhYmxlLFxyXG4udHJpYmUtbWluaS1jYWxlbmRhcixcclxuLnRyaWJlLWV2ZW50cy1jYWxlbmRhcixcclxuLnNob3BfdGFibGUsXHJcbi5ncm91cF90YWJsZSxcclxuLnZhcmlhdGlvbnMsXHJcbi5zaG9wX2F0dHJpYnV0ZXMge1xyXG5cdGJvcmRlci1jb2xsYXBzZTpjb2xsYXBzZTtcclxuXHRib3JkZXItc3BhY2luZzowO1xyXG5cdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxufVxyXG5cclxuQHtpbnB1dF90ZXh0fSxcclxudGV4dGFyZWEsXHJcbm9wdGlvbiB7XHJcblx0cGFkZGluZzpAaW5wdXRfcGFkO1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdC5iZDtcclxufVxyXG5cclxuYWRkcmVzcyB7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkO1xyXG59XHJcblxyXG5vbCB7XHJcblx0bGlzdC1zdHlsZS10eXBlOmRlY2ltYWwtbGVhZGluZy16ZXJvO1xyXG59XHJcblxyXG5kbCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHQub3ZoO1xyXG59XHJcblxyXG5kdCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRmb250LXdlaWdodDpib2xkO1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcbmRkIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdG1hcmdpbjowIDAgMjBweDtcclxuXHQub3ZoO1xyXG59XHJcblxyXG5ibG9ja3F1b3RlLFxyXG5xIHtcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6bm9uZTtcclxuXHR9XHJcbn1cclxuXHJcbmRlbCB7XHJcblx0dGV4dC1kZWNvcmF0aW9uOmxpbmUtdGhyb3VnaDtcclxufVxyXG5cclxuaW5wdXQge1xyXG5cdGxpbmUtaGVpZ2h0Om5vcm1hbDtcclxufVxyXG5cclxuc2VsZWN0IHtcclxuXHQuZGVmYXVsdF9zZWxlY3QoKTtcclxufVxyXG4gXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcbiAgICAuZG47XHJcbn1cclxuXHJcbnNlbGVjdDo6LW1zLWV4cGFuZCB7XHJcbiAgICBkaXNwbGF5OiBub25lO1xyXG59XHJcblxyXG5vcHRpb24ge1xyXG5cdC5iZHJzKDApO1xyXG59XHJcblxyXG50ZXh0YXJlYSB7XHJcblx0cGFkZGluZzooQGlucHV0X3BhZCArIDEpIDE4cHg7XHJcbn1cclxuXHJcbmlucHV0W3R5cGU9dGV4dF0sXHJcbmlucHV0W3R5cGU9c2VhcmNoXSxcclxuaW5wdXRbdHlwZT1wYXNzd29yZF0sXHJcbmlucHV0W3R5cGU9ZW1haWxdLFxyXG5pbnB1dFt0eXBlPXRlbF0sXHJcbmlucHV0W3R5cGU9dXJsXSxcclxuaW5wdXRbdHlwZT1udW1iZXJdLFxyXG5pbnB1dFt0eXBlPWRhdGVdLFxyXG50ZXh0YXJlYSB7XHJcblx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XHJcblx0LW1vei1hcHBlYXJhbmNlOm5vbmU7XHJcblx0YXBwZWFyYW5jZTpub25lO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXTo6LXdlYmtpdC1jbGVhci1idXR0b24ge1xyXG4gICAgZGlzcGxheTpub25lO1xyXG59XHJcblxyXG5pbnB1dFt0eXBlPVwiZGF0ZVwiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiB7IFxyXG4gICAgZGlzcGxheTpub25lO1xyXG59XHJcblxyXG5Ae2lucHV0X3RleHR9IHtcclxuXHRoZWlnaHQ6QGlucHV0X2hlaWdodDtcclxufVxyXG5cclxuQHtpbnB1dF90ZXh0fTpmb2N1cyxcclxudGV4dGFyZWE6Zm9jdXMge1xyXG5cdC5iZDtcclxufVxyXG5cclxuaW5wdXRbdHlwZT1zdWJtaXRdLCBcclxuaW5wdXRbdHlwZT1idXR0b25dLCBcclxuYnV0dG9uIHtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxufVxyXG5cclxub3B0aW9uIHtcclxuXHRib3JkZXI6MDtcclxufVxyXG5cclxuaW5wdXQ6LXdlYmtpdC1hdXRvZmlsbCB7XHJcblx0LXdlYmtpdC1hbmltYXRpb24tbmFtZTphdXRvZmlsbDtcclxuXHQtd2Via2l0LWFuaW1hdGlvbi1maWxsLW1vZGU6Ym90aDtcclxufVxyXG5cclxuLmpldHBhY2tfc3Vic2NyaXB0aW9uX3dpZGdldCAjc3Vic2NyaWJlLWVtYWlsIEB7aW5wdXRfdGV4dH0ge1xyXG5cdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcclxuXHRwYWRkaW5nOkBpbnB1dF9wYWQgMThweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4ud2lkZ2V0X3d5c2lqYV9jb250IC53eXNpamEtc3VibWl0IHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jayAhaW1wb3J0YW50O1xyXG5cdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcbn1cclxuXHJcbi5nZm9ybV93cmFwcGVyIEB7aW5wdXRfdGV4dH0sXHJcbi5nZm9ybV93cmFwcGVyIHRleHRhcmVhIHtcclxuXHRwYWRkaW5nOkBpbnB1dF9wYWQgIWltcG9ydGFudDtcclxufVxyXG5cclxuLmdmb3JtX3dyYXBwZXIgc2VsZWN0IHtcclxuXHRwYWRkaW5nOkBpbnB1dF9wYWQgIWltcG9ydGFudDtcclxuXHRtYXJnaW46MCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG5uYXYge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0aGVpZ2h0OjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0dWwgeyAvKiBjbGVhciB1bCBzdHlsZXMgKi9cclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdD4gZGl2IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0PiBkaXYgPiB1bCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoyMDI7XHJcblx0XHR6b29tOjE7XHJcblx0XHRcclxuXHRcdHVsIHtcclxuXHRcdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0cGFkZGluZzpAbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wIDAgQG1pZF9uYXZfZHJvcGRvd25fcGFkX2JvdDtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDoxMDAlO1xyXG5cdFx0XHR6LWluZGV4OjIwMztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX3RvcCAmIHtcclxuXHRcdFx0XHR3aWR0aDpAdG9wX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdHBhZGRpbmc6QHRvcF9uYXZfZHJvcGRvd25fcGFkX3RvcCAwIEB0b3BfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydCAwIDA7XHJcblx0XHRcdFx0cGFkZGluZzpAYm90X25hdl9kcm9wZG93bl9wYWRfdG9wIDAgQG1pZF9uYXZfZHJvcGRvd25fcGFkX2JvdDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0O1xyXG5cdFx0XHRcdGxlZnQ6MTAwJTtcclxuXHRcdFx0XHR0b3A6LShAbWlkX25hdl9kcm9wZG93bl9wYWRfdG9wICsgMSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQHRvcF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcclxuXHRcdFx0XHRcdHRvcDotKEB0b3BfbmF2X2Ryb3Bkb3duX3BhZF90b3AgKyAxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDtcclxuXHRcdFx0XHRcdHRvcDotKEBib3RfbmF2X2Ryb3Bkb3duX3BhZF90b3AgKyAxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkubWVudS1pdGVtLWRyb3Bkb3duLXJpZ2h0IHtcclxuXHRcdFx0LnRhcjtcclxuXHRcdFx0XHJcblx0XHRcdCoge1xyXG5cdFx0XHRcdC50YXI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIEBtaWRfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdFx0cmlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIEBib3RfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRvcGFjaXR5OjE7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kIDAgMDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRcdGhlaWdodDpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdHRvcDotKEBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6QHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDotKEB0b3BfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0XHRcdG1hcmdpbjpAbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0dmlzaWJpbGl0eTp2aXNpYmxlO1xyXG5cdFx0XHRcdFx0b3BhY2l0eToxO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZCAwIDA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0dG9wOi0oQG1pZF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDpAYm90X25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ7XHJcblx0XHRcdFx0XHRcdFx0dG9wOi0oQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kICsgMSk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0dWwge1xyXG5cdFx0XHRcdFx0XHR2aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdFx0XHRcdG9wYWNpdHk6MTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpOmhvdmVyIHtcclxuXHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl90b3AgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowIDAgMCBAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0XHRsZWZ0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfdG9wICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kO1xyXG5cdFx0XHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6LShAdG9wX25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZCArIDEpO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHR3aWR0aDpAYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0Oi0oQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHJcblx0XHRcdCYubWVudS1pdGVtLWRyb3Bkb3duLXJpZ2h0IHtcclxuXHRcdFx0XHRsaTpob3ZlciB7XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjAgQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0LmhlYWRlcl9ib3QgJiB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luOjAgQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgMCAwO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdFx0XHRcdHJpZ2h0Oi0oQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRcdHJpZ2h0Oi0oQGJvdF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQgKyAxKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0ei1pbmRleDoyMDM7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHR6LWluZGV4OjIwNDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdHotaW5kZXg6MjA0O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubWVudS1pdGVtLW1lZ2EtZGVzY3JpcHRpb24tY29udGFpbmVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5uYXZfdGl0bGUge1xyXG5cdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUge1xyXG5cdFx0XHRcdG1hcmdpbjowIC41ZW0gMCAwO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5tZW51LWl0ZW0taGlkZS10ZXh0IHtcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHQubmF2X3RpdGxlIHtcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUsIFxyXG5cdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXTpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRtYXJnaW46MCAuM2VtO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Jjpub3QoLm1lbnUtaXRlbS1pY29uKSB7XHJcblx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkcigwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHQuYmRiO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaS5tZW51LWl0ZW0tbWVnYSB1bCB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdGJvcmRlcjowO1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bWFyZ2luOkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0IDAgMDtcclxuXHRcdFx0cGFkZGluZzoxMHB4IDE1cHggMjBweDtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDoxMDAlO1xyXG5cdFx0XHR6LWluZGV4OjIwMztcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRtYXJnaW46QGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQgMCAwO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5OnRhYmxlO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MCAxNXB4O1xyXG5cdFx0XHRcdFx0LmJkYigwKTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTo3cHg7XHJcblx0XHRcdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHR3aWR0aDpAbWlkX25hdl9kcm9wZG93bl93aWR0aDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdC5oZWFkZXJfYm90ICYge1xyXG5cdFx0XHRcdFx0XHRcdHdpZHRoOkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6aG92ZXIgPiB1bCB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuaGVhZGVyX2JvdCAmIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0YTplbXB0eSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpLm1lbnUtaXRlbS1tZWdhLWZ1bGx3aWR0aCB7XHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgYSwgXHJcblx0XHRcdD4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkgdWwge1xyXG5cdFx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy10d28gPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6NTAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtdGhyZWUgPiBkaXYubWVudS1pdGVtLW1lZ2EtY29udGFpbmVyID4gdWwgPiBsaSB7XHJcblx0XHRcdFx0d2lkdGg6MzMuMzMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm1lbnUtaXRlbS1tZWdhLWNvbHMtZm91ciA+IGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpIHtcclxuXHRcdFx0XHR3aWR0aDoyNSU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYubWVudS1pdGVtLW1lZ2EtY29scy1maXZlID4gZGl2Lm1lbnUtaXRlbS1tZWdhLWNvbnRhaW5lciA+IHVsID4gbGkge1xyXG5cdFx0XHRcdHdpZHRoOjIwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX2JvdCAmLFxyXG5cdC5oZWFkZXJfbWlkICYge1xyXG5cdFx0PiBkaXYgPiB1bCB7XHJcblx0XHRcdGRpdi5tZW51LWl0ZW0tbWVnYS1jb250YWluZXIgPiB1bCA+IGxpID4gYTpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dWwge1xyXG5cdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdCYuY3VycmVudC1tZW51LWl0ZW0ge1xyXG5cdFx0XHRcdFx0XHQ+IGE6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGJvdHRvbTotMXB4O1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0XHQub3AoMCk7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5mdWxsLXdpZHRoIHtcclxuXHRtaW4td2lkdGg6MTAwJTtcclxufVxyXG5cclxuYXVkaW8uZnVsbC13aWR0aCB7XHJcblx0d2lkdGg6MTAwJTtcclxufVxyXG5cclxuLmFsaWdubGVmdCwgXHJcbi5mbCB7XHJcblx0LmZsO1xyXG59XHJcblxyXG4uYWxpZ25yaWdodCwgXHJcbi5mciB7XHJcblx0LmZyO1xyXG59XHJcblxyXG4uYWxpZ25jZW50ZXIge1xyXG5cdC50YWM7XHJcbn1cclxuXHJcbi5hbGlnbmNlbnRlcixcclxuLmFsaWdubm9uZSB7XHJcblx0Y2xlYXI6Ym90aDtcclxufVxyXG5cclxuaW1nIHtcclxuXHQmLmFsaWdubGVmdCwgXHJcblx0Ji5mbCB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6QGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWducmlnaHQsIFxyXG5cdCYuZnIge1xyXG5cdFx0bWFyZ2luLWxlZnQ6QGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWduY2VudGVyIHtcclxuXHRcdG1hcmdpbjowIGF1dG8gQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHR9XHJcblx0XHJcblx0Ji5hbGlnbm5vbmUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdH1cclxufVxyXG5cclxuLmRuIHtcclxuXHQuZG47XHJcbn1cclxuXHJcbi50YWwsIFxyXG4udGFfbGVmdCB7XHJcblx0LnRhbDtcclxufVxyXG5cclxuLnRhYywgXHJcbi50YV9jZW50ZXIge1xyXG5cdC50YWM7XHJcbn1cclxuXHJcbi50YXIsIFxyXG4udGFfcmlnaHQge1xyXG5cdC50YXI7XHJcbn1cclxuXHJcbi5jbCwgXHJcbi5jbGVhciB7XHJcblx0LmNsO1xyXG59XHJcblxyXG4ub3ZoIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4ubG93X2Nhc2Uge1xyXG5cdHRleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtcclxufVxyXG5cclxuLnVwX2Nhc2Uge1xyXG5cdHRleHQtdHJhbnNmb3JtOnVwcGVyY2FzZTtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcmVzcG9uc2l2ZV93aWR0aCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDphdXRvO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19jb2x1bW4ge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG1pbi1oZWlnaHQ6MXB4O1xyXG59XHJcblxyXG4ub25lX2ZpcnN0LCBcclxuLm9uZV9oYWxmLCBcclxuLm9uZV90aGlyZCwgXHJcbi50d29fdGhpcmQsIFxyXG4ub25lX2ZvdXJ0aCwgXHJcbi50aHJlZV9mb3VydGgsIFxyXG4ub25lX2ZpZnRoLCBcclxuLm9uZV9zaXh0aCB7XHJcblx0bWFyZ2luOjAgQGNvbF9tYXI7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmZsO1xyXG59XHJcblxyXG4ub25lX3NpeHRoIHtcclxuXHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gJiB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDYpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5vbmVfZmlmdGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X25vX21hcmdpbiAmIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNSksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLm9uZV9mb3VydGgge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X25vX21hcmdpbiAmIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLm9uZV90aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luICYge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAzKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4ub25lX2hhbGYge1xyXG5cdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X25vX21hcmdpbiAmIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnR3b190aGlyZCB7XHJcblx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luICYge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4udGhyZWVfZm91cnRoIHtcclxuXHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Jvd19ub19tYXJnaW4gJiB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5vbmVfZmlyc3Qge1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0ZmxvYXQ6bm9uZTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuY2w7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcm93X25vX21hcmdpbiAmIHtcclxuXHRcdHdpZHRoOnJvdW5kKDEwMCUsIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X21hcmdpbiB7XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19jb2x1bW5zX2JlaGF2aW9yIHtcclxuXHRcdC5kaXNwbGF5X2ZsZXg7XHJcblx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfMTMxMzEzIHtcclxuXHRcdFx0d2lkdGg6OTkuOTklO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19jb2x1bW4ge1xyXG5cdFx0XHQuZGlzcGxheV9mbGV4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuW2RhdGEtYW5pbWF0aW9uXSB7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG5bZGF0YS1hbmltYXRpb25dLmFuaW1hdGVkIHtcclxuXHQub3AoMSk7XHJcbn1cclxuXHJcbiNwYWdlIHtcclxuXHQmLmNtc21hc3RlcnNfYm94ZWQge1xyXG5cdFx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmICsgQGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0bWFyZ2luOjAgYXV0bztcclxuXHRcdFxyXG5cdFx0Lm1pZGRsZV9pbm5lcixcclxuXHRcdCNoZWFkZXIge1xyXG5cdFx0XHR3aWR0aDpAY29udF93aWR0aF9kZWYgKyBAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRcdG1hcmdpbjowIGF1dG87XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4jcGFnZSwgXHJcbiNtYWluLCBcclxuI21pZGRsZSwgXHJcbi5taWRkbGVfY29udGVudCwgXHJcbiNib3R0b20sIFxyXG4jZm9vdGVyLCBcclxuLmhlYWRsaW5lLCBcclxuLmhlYWRsaW5lX291dGVyLCBcclxuLmNtc21hc3RlcnNfcm93LCBcclxuLmNtc21hc3RlcnNfcm93X291dGVyLCBcclxuLmNtc21hc3RlcnNfcm93X291dGVyX3BhcmVudCB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxufVxyXG5cclxuLm1pZGRsZV9jb250ZW50IHtcclxuXHRwYWRkaW5nOkBjb250X3ZlcnRfcGFkIDA7XHJcbn1cclxuXHJcbi5taWRkbGVfY29udGVudDplbXB0eSB7XHJcblx0LmRuO1xyXG59XHJcblxyXG4ucG9zdC1wYXNzd29yZC1mb3JtLFxyXG4uaGVhZGVyX3RvcF9pbm5lciwgXHJcbi5oZWFkZXJfbWlkX2lubmVyLCBcclxuLmhlYWRlcl9ib3RfaW5uZXIsIFxyXG4uY29udGVudF93cmFwLCBcclxuLmhlYWRsaW5lX2lubmVyLCBcclxuLmJvdHRvbV9vdXRlciwgXHJcbi5mb290ZXJfaW5uZXIsIFxyXG4uZm9vdGVyX2NvcHlyaWdodF9pbm5lciwgXHJcbi5jbXNtYXN0ZXJzX3Jvd19pbm5lciB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0d2lkdGg6QGNvbnRfd2lkdGhfZGVmO1xyXG5cdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XHJcblx0Lm0wYTtcclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCAucG9zdC1wYXNzd29yZC1mb3JtIHtcclxuXHR3aWR0aDphdXRvO1xyXG5cdHBhZGRpbmc6MDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93IHtcclxuXHQmLmNtc21hc3RlcnNfcm93X3RvcF9kZWZhdWx0LmNtc21hc3RlcnNfcm93X2JvdF9kZWZhdWx0IHtcclxuXHRcdHotaW5kZXg6MDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfbGVmdF9kaWFnb25hbDpiZWZvcmUsIFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X2xlZnRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcclxuXHRcdHdpZHRoOjE1MCU7XHJcblx0XHRoZWlnaHQ6MTUwcHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHRcdC1tb3otdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjoxMDAlIDA7XHJcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOjEwMCUgMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfbGVmdF9kaWFnb25hbDphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTowO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgtMmRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfcmlnaHRfZGlhZ29uYWw6YmVmb3JlLCBcclxuXHQmLmNtc21hc3RlcnNfcm93X2JvdF9yaWdodF9kaWFnb25hbDphZnRlciB7XHJcblx0XHRjb250ZW50OicnO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjppbmhlcml0O1xyXG5cdFx0d2lkdGg6MTUwJTtcclxuXHRcdGhlaWdodDoxNTBweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0cmlnaHQ6YXV0bztcclxuXHRcdHRvcDowO1xyXG5cdFx0Ym90dG9tOmF1dG87XHJcblx0XHR6LWluZGV4OjE7XHJcblx0XHQtd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKC0yZGVnKTtcclxuXHRcdHRyYW5zZm9ybTpyb3RhdGUoLTJkZWcpO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHRcdC1tb3otdHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0XHQtbXMtdHJhbnNmb3JtLW9yaWdpbjowIDA7XHJcblx0XHR0cmFuc2Zvcm0tb3JpZ2luOjAgMDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfcmlnaHRfZGlhZ29uYWw6YWZ0ZXIge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MDtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDJkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSgyZGVnKTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd190b3BfemlnemFnOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfemlnemFnOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kLXNpemU6MTBweCA1cHg7XHJcblx0XHRoZWlnaHQ6NXB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0cmlnaHQ6MDtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjEwMCU7XHJcblx0XHR6LWluZGV4OjE7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3ppZ3phZzphZnRlciB7XHJcblx0XHR0b3A6MTAwJTtcclxuXHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoMTgwZGVnKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0XHR0cmFuc2Zvcm06cm90YXRlKDE4MGRlZyk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfdG9wX3RyaWFuZ2xlOmJlZm9yZSwgXHJcblx0Ji5jbXNtYXN0ZXJzX3Jvd19ib3RfdHJpYW5nbGU6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDonJztcclxuXHRcdGJhY2tncm91bmQtY29sb3I6aW5oZXJpdDtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHQucG9zX2FicygzMHB4LCAzMHB4LCAwLCAwLCAtMTVweCwgYXV0byk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19yb3dfYm90X3RyaWFuZ2xlOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOi0xNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfb3V0ZXJfcGFyZW50IHtcclxuXHRcdHBhZGRpbmc6LjFweCAwO1xyXG5cdFx0ei1pbmRleDoyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfaW5uZXIge1xyXG5cdFx0Ji5jbXNtYXN0ZXJzX3Jvd19mdWxsd2lkdGgge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nOjAgQGJsb2Nrc19ob3JfcGFkICogMjtcclxuXHRcdH1cclxuXHRcclxuXHRcdCYuY21zbWFzdGVyc19yb3dfbm9fbWFyZ2luIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfcm93X21hcmdpbiB7XHJcblx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19yb3dfb3ZlcmxheSB7XHJcblx0XHQuZnVsbHdpZHRoX2luX2Jsb2NrO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfcm93X21hcmdpbiB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyIC0gMC4wNztcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCB7XHJcblx0Ji5yX3NpZGViYXIsIFxyXG5cdCYubF9zaWRlYmFyLCBcclxuXHQub3BlbmVkLWFydGljbGUsIFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMge1xyXG5cdFx0LmNtc21hc3RlcnNfcm93IHtcclxuXHRcdFx0LmN0Yng7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19yb3dfaW5uZXIge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY29udGVudF93cmFwLmNtc21hc3RlcnNfc2V0X2Z1bGx3aWR0aCB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwYWRkaW5nOjA7XHJcbn1cclxuXHJcbiNwYWdlLCBcclxuI21pZGRsZSwgXHJcbi5taWRkbGVfaW5uZXIsIFxyXG4ubWlkZGxlX2NvbnRlbnQsIFxyXG4jYm90dG9tLCBcclxuLmJvdHRvbV9iZywgXHJcbi5jb250ZW50X3dyYXAsIFxyXG4uY21zbWFzdGVyc19yb3dfaW5uZXIsIFxyXG4uY21zbWFzdGVyc19yb3dfbWFyZ2luLCBcclxuLmNtc21hc3RlcnNfY29sdW1uIHtcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcbn1cclxuXHJcbi5jb250ZW50IHtcclxuXHR3aWR0aDpAY29udGVudF93aWR0aDtcclxuXHRwYWRkaW5nOjcwcHggMCBAY29udF92ZXJ0X3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuZmw7XHJcblx0XHJcblx0Ji5mciB7XHJcblx0XHQuZnI7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhciB7XHJcblx0d2lkdGg6QHNpZGViYXJfd2lkdGg7XHJcblx0cGFkZGluZzo3MHB4IDAgQGNvbnRfdmVydF9wYWQgQGNvbnRfc2lkZWJhcl9wYWQ7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmZyO1xyXG5cdFxyXG5cdCYuZmwge1xyXG5cdFx0cGFkZGluZzo3MHB4IEBjb250X3NpZGViYXJfcGFkIEBjb250X3ZlcnRfcGFkIDA7XHJcblx0XHQuZmw7XHJcblx0fVxyXG59XHJcblxyXG4uYm90dG9tX2JnIHtcclxuXHRwYWRkaW5nLXRvcDo1MHB4O1xyXG5cdHBhZGRpbmctYm90dG9tOjUwcHg7XHJcbn1cclxuXHJcbi5ib3R0b21faW5uZXIge1xyXG5cdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcclxuXHRhc2lkZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRtYXJnaW46MCBAY29sX21hcjtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSWNvbnMgKioqKioqKioqKioqKioqKioqL1xyXG4vKiBHbG9iYWwgKi9cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4N2MnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fbGlrZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlODg5JzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NlYXJjaDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODhmJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2NhbmNlbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlYWJjJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2OmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU5MjUnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGVyc29uOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4MTMnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25faW1hZ2U6YmVmb3JlIHsgY29udGVudDogJ1xcZTgzMSc7IH1cclxuXHJcbi8qIEFycm93cyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3ByZXY6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9wYWdpbmF0aW9uX3ByZXY6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9jb21tZW50c19uYXZfcHJldjpiZWZvcmUsIFxyXG4uY21zbWFzdGVyc19wcmV2X2Fycm93IHNwYW46YmVmb3JlIHsgY29udGVudDogJ1xcZWIxZCc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9uZXh0OmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcGFnaW5hdGlvbl9uZXh0OmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY29tbWVudHNfbmF2X25leHQ6YmVmb3JlLCBcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvdyBzcGFuOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViMWUnOyB9XHJcbi5wb3N0LmNtc21hc3RlcnNfZGVmYXVsdF90eXBlLmZvcm1hdC1nYWxsZXJ5IC5jbXNtYXN0ZXJzX3ByZXZfYXJyb3cgc3BhbjpiZWZvcmUsXHJcbi5wb3N0LmNtc21hc3RlcnNfbWFzb25yeV90eXBlLmZvcm1hdC1nYWxsZXJ5IC5jbXNtYXN0ZXJzX3ByZXZfYXJyb3cgc3BhbjpiZWZvcmUsXHJcbi5wb3N0LmNtc21hc3RlcnNfdGltZWxpbmVfdHlwZS5mb3JtYXQtZ2FsbGVyeSAuY21zbWFzdGVyc19wcmV2X2Fycm93IHNwYW46YmVmb3JlLFxyXG4uY21zbWFzdGVyc19jb250ZW50X3NsaWRlciAuY21zbWFzdGVyc19wcmV2X2Fycm93IHNwYW46YmVmb3JlIHsgY29udGVudDogJ1xcZTk0ZSc7IH1cclxuLnBvc3QuY21zbWFzdGVyc19kZWZhdWx0X3R5cGUuZm9ybWF0LWdhbGxlcnkgLmNtc21hc3RlcnNfbmV4dF9hcnJvdyBzcGFuOmJlZm9yZSxcclxuLnBvc3QuY21zbWFzdGVyc19tYXNvbnJ5X3R5cGUuZm9ybWF0LWdhbGxlcnkgLmNtc21hc3RlcnNfbmV4dF9hcnJvdyBzcGFuOmJlZm9yZSxcclxuLnBvc3QuY21zbWFzdGVyc190aW1lbGluZV90eXBlLmZvcm1hdC1nYWxsZXJ5IC5jbXNtYXN0ZXJzX25leHRfYXJyb3cgc3BhbjpiZWZvcmUsXHJcbi5jbXNtYXN0ZXJzX2NvbnRlbnRfc2xpZGVyIC5jbXNtYXN0ZXJzX25leHRfYXJyb3cgc3BhbjpiZWZvcmUgeyBjb250ZW50OiAnXFxlOTRmJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3NsaWRlX3RvcDpiZWZvcmUsXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fcmVzcF9uYXZfc2xpZGVfdXA6YmVmb3JlIHsgY29udGVudDogJ1xcZWIyMyc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zbGlkZV9ib3R0b206YmVmb3JlLFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3Jlc3BfbmF2X3NsaWRlX2Rvd246YmVmb3JlIHsgY29udGVudDogJ1xcZTk1MSc7IH1cclxuXHJcbi8qIFdpZGdldCBBZGQgSW5mbyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfbWFpbDpiZWZvcmUgeyBjb250ZW50OiAnXFxlYWFlJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfdXNlcjpiZWZvcmUgeyBjb250ZW50OiAnXFxlOGFlJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfd2Vic2l0ZTpiZWZvcmUgeyBjb250ZW50OiAnXFxlOThiJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3VzZXJfcGhvbmU6YmVmb3JlIHsgY29udGVudDogJ1xcZWI1NSc7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl91c2VyX2FkZHJlc3M6YmVmb3JlIHsgY29udGVudDogJ1xcZWFlYic7IH1cclxuXHJcbi8qIFR3aXR0ZXIgc3RyaXBlICovXHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fdXNlcl90d2l0dGVyOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGViOWEnOyB9XHJcblxyXG4vKiBwb3N0IHBsYWNlaG9sZGVycyAqL1xyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3N0ZDpiZWZvcmUgeyBjb250ZW50OiAnXFxlODVmJzsgfVxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX3ZpZGVvOmJlZm9yZSB7IGNvbnRlbnQ6ICdcXGU4N2QnOyB9XHJcbi5jbXNtYXN0ZXJzX3RoZW1lX2ljb25faW1hZ2U6YmVmb3JlLFxyXG4uY21zbWFzdGVyc190aGVtZV9pY29uX2dhbGxlcnk6YmVmb3JlIHsgY29udGVudDogJ1xcZTkxNic7IH1cclxuLmNtc21hc3RlcnNfdGhlbWVfaWNvbl9hdWRpbzpiZWZvcmUgeyBjb250ZW50OiAnXFxlODYwJzsgfVxyXG5cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRWxlbWVudHMgKioqKioqKioqKioqKioqKioqL1xyXG4vKiBJY29uIEFycm93IEdsb2JhbCBTdHlsZXMgKi9cclxuLmNtc21hc3RlcnNfcHJldl9hcnJvdywgXHJcbi5jbXNtYXN0ZXJzX25leHRfYXJyb3cge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHdpZHRoOjMwcHg7XHJcblx0aGVpZ2h0OjMwcHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHQuYmQ7XHJcblx0LmJkcnMoNTAlKTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR3aWR0aDo2cHg7XHJcblx0XHRoZWlnaHQ6MTBweDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTBweDtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0c3BlYWs6bm9uZTtcclxuXHRcdFx0LXdlYmtpdC1mb250LXNtb290aGluZzphbnRpYWxpYXNlZDtcclxuXHRcdFx0LW1vei1vc3gtZm9udC1zbW9vdGhpbmc6Z3JheXNjYWxlO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBpeGVsIEFycm93IEdsb2JhbCBTdHlsZXMgKi9cclxuLmNtc21hc3RlcnNfcHJldl9hcnJvd19waXhlbCxcclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvd19waXhlbCB7XHJcblx0YmFja2dyb3VuZDojMDAwMDAwO1xyXG5cdC5wb3NfYWJzKDFweCwgMXB4LCAwLCBhdXRvKTtcclxuXHJcblx0JjpiZWZvcmUsIFxyXG5cdCY6YWZ0ZXIsIFxyXG5cdHNwYW46YmVmb3JlLCBcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR3aWR0aDoxcHg7XHJcblx0XHQuYmR0O1xyXG5cdFx0LmJkYjtcclxuXHR9XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0aGVpZ2h0OjNweDtcclxuXHRcdGxlZnQ6MXB4O1xyXG5cdFx0dG9wOi0xcHg7XHJcblx0fVxyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0aGVpZ2h0OjVweDtcclxuXHRcdGxlZnQ6MnB4O1xyXG5cdFx0dG9wOi0ycHg7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW46YmVmb3JlIHtcclxuXHRcdGhlaWdodDo3cHg7XHJcblx0XHRsZWZ0OjNweDtcclxuXHRcdHRvcDotM3B4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGhlaWdodDo5cHg7XHJcblx0XHRsZWZ0OjRweDtcclxuXHRcdHRvcDotNHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfbmV4dF9hcnJvd19waXhlbCB7XHJcblx0cmlnaHQ6MDtcclxuXHRsZWZ0OmF1dG87XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6MXB4O1xyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjJweDtcclxuXHR9XHJcblx0XHJcblx0c3BhbjpiZWZvcmUge1xyXG5cdFx0bGVmdDphdXRvO1xyXG5cdFx0cmlnaHQ6M3B4O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGxlZnQ6YXV0bztcclxuXHRcdHJpZ2h0OjRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3RvcF9hcnJvd19waXhlbCwgXHJcbi5jbXNtYXN0ZXJzX2JvdF9hcnJvd19waXhlbCB7XHJcblx0YmFja2dyb3VuZDojMDAwMDAwO1xyXG5cdC5wb3NfYWJzKDFweCwgMXB4LCAwLCAwLCAtNHB4KTtcclxuXHJcblx0JjpiZWZvcmUsIFxyXG5cdCY6YWZ0ZXIsIFxyXG5cdHNwYW46YmVmb3JlLCBcclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRiYWNrZ3JvdW5kOnRyYW5zcGFyZW50O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0LmJkbDtcclxuXHRcdC5iZHI7XHJcblx0fVxyXG5cclxuXHQmOmJlZm9yZSB7XHJcblx0XHR3aWR0aDozcHg7XHJcblx0XHR0b3A6MXB4O1xyXG5cdFx0bGVmdDotMXB4O1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHR3aWR0aDo1cHg7XHJcblx0XHR0b3A6MnB4O1xyXG5cdFx0bGVmdDotMnB4O1xyXG5cdH1cclxuXHJcblx0c3BhbjpiZWZvcmUge1xyXG5cdFx0d2lkdGg6N3B4O1xyXG5cdFx0dG9wOjNweDtcclxuXHRcdGxlZnQ6LTNweDtcclxuXHR9XHJcblxyXG5cdHNwYW46YWZ0ZXIge1xyXG5cdFx0d2lkdGg6OXB4O1xyXG5cdFx0dG9wOjRweDtcclxuXHRcdGxlZnQ6LTRweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2JvdF9hcnJvd19waXhlbCB7XHJcblx0dG9wOjRweDtcclxuXHJcblx0JjpiZWZvcmUge1xyXG5cdFx0dG9wOmF1dG87XHJcblx0XHRib3R0b206MXB4O1xyXG5cdH1cclxuXHJcblx0JjphZnRlciB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbToycHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmJlZm9yZSB7XHJcblx0XHR0b3A6YXV0bztcclxuXHRcdGJvdHRvbTozcHg7XHJcblx0fVxyXG5cclxuXHRzcGFuOmFmdGVyIHtcclxuXHRcdHRvcDphdXRvO1xyXG5cdFx0Ym90dG9tOjRweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQb3N0IFBhc3N3b3JkIEZvcm0gKi9cclxuLnBvc3QtcGFzc3dvcmQtZm9ybSB7XHJcblx0cGFkZGluZy10b3A6NDBweDtcclxuXHRcclxuXHRwOmZpcnN0LWNoaWxkIHtcclxuXHRcdGZvbnQtd2VpZ2h0OmJvbGQ7XHJcblx0fVxyXG5cdFxyXG5cdGxhYmVsIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246Ym90dG9tO1xyXG5cdH1cclxuXHRcclxuXHRpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0ge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcblx0XHJcblx0aW5wdXRbdHlwZT1zdWJtaXRdIHtcclxuXHRcdGxpbmUtaGVpZ2h0OkBpbnB1dF9oZWlnaHQ7XHJcbiBcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcbiBcdFx0bWFyZ2luOjAgMCAwIDVweDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOmJvdHRvbTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQcmVsb2RhZXIgKi9cclxuLnByZWxvYWRlciB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHR3aWR0aDoxMDAlO1xyXG5cdGhlaWdodDowO1xyXG5cdHBhZGRpbmctYm90dG9tOkByZXNwX2Jsb2Nrc19wYWQ7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQuZnVsbC13aWR0aCB7XHJcblx0XHQuZnVsbHdpZHRoX2luX2Jsb2NrO1xyXG5cdH1cclxuXHRcclxuXHQmLmhpZ2hJbWcge1xyXG5cdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdC5mdWxsLXdpZHRoIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR0b3A6YXV0bztcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFJlc2l6YWJsZSBCbG9jayAqL1xyXG4ucmVzaXphYmxlX2Jsb2NrIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjA7XHJcblx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5mdWxsLXdpZHRoIHtcclxuXHRcdC5mdWxsd2lkdGhfaW5fYmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogSW1nIFdyYXBwZXIgKi9cclxuLmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHQudGFjO1xyXG5cclxuXHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1zaXplOjQwcHg7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGlnaEltZyB7XHJcblx0XHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogSW1nIFJvbGxvdmVyICovXHJcbi5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6NDBweDtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuaGlnaEltZyB7XHJcblx0XHQuaW1nX3BsYWNlaG9sZGVyIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHJlc3BfYmxvY2tzX3BhZDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdGxlZnQ6MDtcclxuXHRcdHRvcDowO1xyXG5cdFx0LnRhYztcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdC5wb3NfYWJzKDM2cHgsIDM2cHgsIDAsIDAsIC0yNXB4KTtcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICdcXGU4MTAnO1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTo0MHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQ0cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaW1hZ2VfbGluayB7XHJcblx0XHRcdC5wb3NfYWJzKDMwcHgsIDMwcHgsIDAsIDAsIC0yNXB4KTtcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGhlbWVfaWNvbl9zZWFyY2gge1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmOmhvdmVyIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pbWFnZV9saW5rIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBQbGFjZWhvbGRlciBTbWFsbCAqL1xyXG4uaW1nX3BsYWNlaG9sZGVyX3NtYWxsIHtcclxuXHRoZWlnaHQ6NjBweDtcclxuXHR3aWR0aDo2MHB4O1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmJkcnMoNTAlKTtcclxuXHQuYmQ7XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Zm9udC1zaXplOjE4cHg7XHJcblx0XHQucG9zX2FicztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBWaWRlbyBXcmFwcGVyICovXHJcbi53cC12aWRlby1zaG9ydGNvZGUsIFxyXG4ubWVqcy1sYXllciB7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcbn1cclxuXHJcbi5tZWpzLWNvbnRhaW5lciB7XHJcblx0Ji53cC12aWRlby1zaG9ydGNvZGUsIFxyXG5cdCYud3AtYXVkaW8tc2hvcnRjb2RlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfdmlkZW9fd3JhcCB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtYXgtd2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MDtcclxuXHRwYWRkaW5nLWJvdHRvbTpAcmVzcF9ibG9ja3NfcGFkO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdD4gZGl2IHtcclxuXHRcdHdpZHRoOjEwMCUgIWltcG9ydGFudDtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0aWZyYW1lIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRtYXgtd2lkdGg6YXV0bztcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LndwLXZpZGVvLXNob3J0Y29kZSwgXHJcblx0Lm1lanMtbGF5ZXIge1xyXG5cdFx0d2lkdGg6MTAwJSAhaW1wb3J0YW50O1xyXG5cdFx0aGVpZ2h0OjEwMCUgIWltcG9ydGFudDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjA7XHJcblx0XHRcclxuXHRcdC5tZWpzLW92ZXJsYXktYnV0dG9uIHtcclxuXHRcdFx0bWFyZ2luLXRvcDotNTBweCAhaW1wb3J0YW50O1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNlYXJjaCBCYXIgKi9cclxuLnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQuc2VhcmNoX2ZpZWxkIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0aW5wdXQge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0I21pZGRsZSAmLCBcclxuXHRcdFx0I2JvdHRvbSAmIHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjM2cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQucG9zX2FicygzNnB4LCAxMDAlLCBhdXRvLCAwKTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGJ1dHRvbiB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNXB4O1xyXG5cdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5iZCgwKTtcclxuXHRcdFx0LmJ4c2hfbm9uZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQucG9zX2FicygxZW0sIDFlbSwgNXB4LCBhdXRvKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNvY2lhbCBJY29ucyAqL1xyXG4uc29jaWFsX3dyYXAge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0aGVpZ2h0OjEwMCU7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuc29jaWFsX3dyYXBfaW5uZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR1bCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxuXHRcclxuXHRsaSB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdG1hcmdpbjowIDVweCAwIDA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFxyXG5cdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRhIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR3aWR0aDozMHB4O1xyXG5cdFx0aGVpZ2h0OjMwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnM7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogQ29yZSBPd2wgQ2Fyb3VzZWwgQ1NTIHYxLjMuMiAqL1xyXG4uY21zbWFzdGVyc19vd2xfc2xpZGVyOm5vdCgub3dsLWNhcm91c2VsKSB7XHJcblx0PiBkaXYge1xyXG5cdFx0d2lkdGg6MDtcclxuXHRcdGhlaWdodDowO1xyXG5cdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0fVxyXG59XHJcblxyXG4ub3dsLWNhcm91c2VsIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC1tcy10b3VjaC1hY3Rpb246cGFuLXk7XHJcblx0LmRuO1xyXG5cdFxyXG5cdC5vd2wtd3JhcHBlci1vdXRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFxyXG5cdFx0Ji5hdXRvSGVpZ2h0IHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdC1tb3otdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtbXMtdHJhbnNpdGlvbjpoZWlnaHQgLjVzIGVhc2UtaW4tb3V0O1xyXG5cdFx0XHQtby10cmFuc2l0aW9uOmhlaWdodCAuNXMgZWFzZS1pbi1vdXQ7XHJcblx0XHRcdHRyYW5zaXRpb246aGVpZ2h0IC41cyBlYXNlLWluLW91dDtcclxuXHRcdH1cclxuXHRcclxuXHRcdC5vd2wtd3JhcHBlciB7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuZG47XHJcblx0XHRcdFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OicuJztcclxuXHRcdFx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0dmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdFx0LmNsO1xyXG5cdFx0XHR9XHJcblx0XHRcclxuXHRcdFx0Lm93bC1pdGVtIHtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lm93bC13cmFwcGVyLCBcclxuXHRcdC5vd2wtaXRlbSB7XHJcblx0XHRcdC13ZWJraXQtYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tb3otYmFja2ZhY2UtdmlzaWJpbGl0eTpoaWRkZW47XHJcblx0XHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGUzZCgwLDAsMCk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlM2QoMCwwLDApO1xyXG5cdFx0fVxyXG5cclxuXHRcdC5pZV9vbmx5ICYge1xyXG5cdFx0XHQub3dsLXdyYXBwZXIsIFxyXG5cdFx0XHQub3dsLWl0ZW0ge1xyXG5cdFx0XHRcdC1tcy1iYWNrZmFjZS12aXNpYmlsaXR5OnZpc2libGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm93bC1jb250cm9scyB7XHJcblx0XHQtd2Via2l0LXVzZXItc2VsZWN0Om5vbmU7XHJcblx0XHQta2h0bWwtdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC1tb3otdXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC1tcy11c2VyLXNlbGVjdDpub25lO1xyXG5cdFx0dXNlci1zZWxlY3Q6bm9uZTtcclxuXHRcdC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjpyZ2JhKDAsIDAsIDAsIDApO1xyXG5cdH1cclxufVxyXG5cclxuLm93bC1wYWdpbmF0aW9uIHtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDowO1xyXG5cdGJvdHRvbToxNXB4O1xyXG5cdC50YWM7XHJcblx0XHJcblx0Lm93bC1wYWdlIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MTBweDtcclxuXHRcdGhlaWdodDoxMHB4O1xyXG5cdFx0bWFyZ2luOjAgNHB4IDFweDtcclxuXHRcdHRleHQtaW5kZW50Oi05OTk5cHg7XHJcblx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciwgXHJcblx0XHQmLmFjdGl2ZSB7XHJcblx0XHRcdC5ieHNoX25vbmU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWN0aXZlIHtcclxuXHRcdFx0Y3Vyc29yOmRlZmF1bHQ7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4ub3dsLWJ1dHRvbnMge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0LnRhYztcclxuXHRcclxuXHQ+IGRpdiB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogU2xpZGUgVG9wIEJ1dHRvbiAqL1xyXG4jc2xpZGVfdG9wIHtcclxuXHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHR3aWR0aDo1MHB4O1xyXG5cdGhlaWdodDo1MHB4O1xyXG5cdHBvc2l0aW9uOmZpeGVkO1xyXG5cdGJvdHRvbToyMHB4O1xyXG5cdHJpZ2h0OjIwcHg7XHJcblx0ei1pbmRleDo5OTk5OTtcclxuXHQuZG47XHJcblx0XHJcblx0JjpiZWZvcmUge1xyXG5cdFx0Zm9udC1zaXplOjIwcHg7XHJcblx0XHRsaW5lLWhlaWdodDo1MHB4O1xyXG5cdH1cclxuXHRcclxuXHQ+IHNwYW4ge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR0ZXh0LWluZGVudDotOTk5OXB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEJ1dHRvbiAqL1xyXG4ubWlkZGxlX2lubmVyICNmYnVpbGRlciAucGJyZWFrIC5wYlByZXZpb3VzLFxyXG4ubWlkZGxlX2lubmVyICNmYnVpbGRlciAucGJyZWFrIC5wYk5leHQsXHJcbi5idXR0b24sIFxyXG5pbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5pbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5idXR0b24ge1xyXG5cdC5kZWZhdWx0X2J1dHRvbigpO1xyXG59XHJcblxyXG5cclxuLyogSXRlbXMgRmlsdGVyICovXHJcbi5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl93cmFwIHtcclxuXHRwYWRkaW5nOjAgMCA1MHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkYjtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaXRlbXNfc29ydF9ibG9jayB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX3NvcnRfYnV0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRtYXJnaW46N3B4IDAgMCAyMHB4O1xyXG5cdFx0cGFkZGluZzowIDI4cHggMCAwO1xyXG5cdFx0LmZsO1xyXG5cdFx0LmJkKDApO1xyXG5cdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6NXB4O1xyXG5cdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRyaWdodDo2cHg7XHJcblx0XHRcdHRvcDotMnB4O1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoNDVkZWcpO1xyXG5cdFx0XHR0cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjVweDtcclxuXHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0cmlnaHQ6NnB4O1xyXG5cdFx0XHR0b3A6MnB4O1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSgxMzVkZWcpO1xyXG5cdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYucmV2ZXJzZWQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTpyb3RhdGUoMTM1ZGVnKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06cm90YXRlKDEzNWRlZyk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0d2lkdGg6MThweDtcclxuXHRcdFx0XHRoZWlnaHQ6MThweDtcclxuXHRcdFx0XHRtYXJnaW46YXV0bztcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfYmxvY2sge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZmw7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2ZpbHRlcl9idXQge1xyXG5cdFx0ZGlzcGxheTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pdGVtc19maWx0ZXJfbGlzdCB7XHJcblx0XHRtYXJnaW46MCAwIC0xcHg7XHJcblx0XHRwYWRkaW5nOjAgMjBweCAwIDA7XHJcblx0XHRvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdG1hcmdpbjowIDAgLTVweDtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzo3cHggMjBweDtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0LmJkdCgzcHgpO1xyXG5cdFx0XHRcdC5iZHJzKDApO1xyXG5cdFx0XHRcdC5ieHNoX25vbmU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBNb3JlIEl0ZW1zIExvYWRlciBhbmQgUGFnaW5hdGlvbiAqL1xyXG4uY21zbWFzdGVyc193cmFwX21vcmVfaXRlbXMge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzo0MHB4IDAgMDtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc193cmFwX2l0ZW1zX2xvYWRlciB7XHJcblx0LnRhYztcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2l0ZW1zX2xvYWRlciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbmRpdi5zdWJwYWdlX25hdiB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0PiBzdHJvbmcge1xyXG5cdFx0Zm9udC13ZWlnaHQ6Ym9sZDtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDVweCAwIDA7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdD4gc3BhbixcclxuXHQ+IGEge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uIHtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdCY6ZW1wdHkge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxuXHRcclxuXHR1bCB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5wYWdlLW51bWJlcnMge1xyXG5cdFx0XHRcdFx0LmJkbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wYWdlLW51bWJlcnMge1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQwcHg7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRtaW4td2lkdGg6NDBweDtcclxuXHRcdFx0XHRoZWlnaHQ6NDBweDtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0LmJkbCgwKTtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHRsZWZ0Oi0xcHg7XHJcblx0XHRcdFx0XHRyaWdodDotMXB4O1xyXG5cdFx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmhvdmVyLFxyXG5cdFx0XHRcdCYuY3VycmVudCB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdCY6ZW1wdHkge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFBvc3QgTmF2aWdhdGlvbiAqL1xyXG4ucG9zdF9uYXYge1xyXG5cdG1hcmdpbi10b3A6MzBweDtcclxuXHRwYWRkaW5nOjI1cHggMjBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuYmQ7XHJcblx0Lm92aDtcclxuXHRcclxuXHQ+IHNwYW4ge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6NHB4IDA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR6LWluZGV4OjI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gc3BhbiB7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdHdpZHRoOjI2cHg7XHJcblx0XHRcdGhlaWdodDoyNnB4O1xyXG5cdFx0XHRcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRoZWlnaHQ6MTJweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MTNweDtcclxuXHRcdFx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdFx0XHRcdHdpZHRoOjFlbTtcclxuXHRcdFx0XHRcdGhlaWdodDoxZW07XHJcblx0XHRcdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX3ByZXZfcG9zdCB7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjQwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX25leHRfcG9zdCB7XHJcblx0XHRcdHBhZGRpbmctbGVmdDoyMHB4O1xyXG5cdFx0XHQuZnI7XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRwYWRkaW5nLXJpZ2h0OjQwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKiBTaGFyZSBQb3N0cyAqL1xyXG4uc2hhcmVfcG9zdHMge1xyXG5cdHBhZGRpbmc6MTVweCAwIDA7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuc2hhcmVfcG9zdHNfdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRtYXJnaW4tYm90dG9tOjEycHg7XHJcblx0fVxyXG5cdFxyXG5cdC5zaGFyZV9wb3N0c19pbm5lciB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdGEge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbi1yaWdodDoycHg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvJztcclxuXHRcdFx0Zm9udC1zaXplOjI2cHg7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIEFib3V0IEF1dGhvciAqL1xyXG4uYWJvdXRfYXV0aG9yIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfaW5uZXIge1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmFib3V0X2F1dGhvcl9hdmF0YXIge1xyXG5cdFx0bWFyZ2luOjAgMjVweCAwIDA7XHJcblx0XHQuYmQoNXB4KTtcclxuXHRcdC5mbDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5hYm91dF9hdXRob3JfY29udCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjAgMCAxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuYWJvdXRfYXV0aG9yX2NvbnRfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qIFNpbmdsZSBQb3N0IFNsaWRlciAqL1xyXG4uY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3Bvc3RzX3NsaWRlcl9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl9pdGVtX2RhdGUge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MTJweCAyMHB4O1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkYigwKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2luZ2xlX3NsaWRlcl90aXRsZSB7XHJcblx0XHRtYXJnaW46MCAwIDIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaW5uZXIge1xyXG5cdFx0bWFyZ2luOjAgLTIwcHg7XHJcblx0XHRwYWRkaW5nLXRvcDo1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MjAwcHg7XHJcblx0XHRwYWRkaW5nOjAgMjBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fb3V0ZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1faW5uZXIge1xyXG5cdFx0cGFkZGluZzoxNXB4IDIwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZDtcclxuXHRcdC5iZHQoMCk7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaW5nbGVfc2xpZGVyX2l0ZW1fdGl0bGUge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NpbmdsZV9zbGlkZXJfaXRlbV9tZXRhIHtcclxuXHRcdHBhZGRpbmctdG9wOjE1cHg7XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0cmlnaHQ6MjBweDtcclxuXHRcdHRvcDotNTJweDtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDozcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogUG9zdCBDb21tZW50cyAqL1xyXG4ucG9zdF9jb21tZW50cyB7XHJcblx0cGFkZGluZzo0NXB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0LnBvc3RfY29tbWVudHNfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCA1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50bGlzdCB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNoaWxkcmVuIHtcclxuXHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0cGFkZGluZzowIDAgMCAzMHB4O1xyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudCB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MjVweCAwIDA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW0ge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LXJlcGx5LWxpbmsge1xyXG5cdFx0LmZyO1xyXG5cdFx0bWFyZ2luLWxlZnQ6MTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2RhdGUge1xyXG5cdFx0LmZyO1xyXG5cdFx0bWFyZ2luLWxlZnQ6MTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2F2YXRhcl93cmFwIHtcclxuXHRcdG1hcmdpbjowIDI1cHggMCAwO1xyXG5cdFx0LmZsO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2F2YXRhciB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTo0cHg7XHJcblx0XHQuYmQoM3B4KTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2NvbW1lbnRfaXRlbV9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0bWFyZ2luLXRvcDotM3B4O1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRfaW5mbyB7XHJcblx0XHRwYWRkaW5nOjAgMCAxMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jb21tZW50X2l0ZW1fdGl0bGUge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY29tbWVudF9pdGVtX2NvbnRlbnQge1xyXG5cdFx0PiAqOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyogTGlrZSwgQ29tbWVudCBidXR0b24gKi9cclxuLmNtc21hc3RlcnNMaWtlIHtcclxuXHRmb250LXNpemU6MTNweDtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHRvcDoxcHg7XHJcblx0fVxyXG5cdFxyXG5cdCYuYWN0aXZlIHtcclxuXHRcdGN1cnNvcjpkZWZhdWx0O1xyXG5cdH1cclxuXHRcclxuXHRzcGFuIHtcclxuXHRcdHBhZGRpbmctbGVmdDo1cHg7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19wb3N0X2NvbW1lbnRzIHtcclxuXHRmb250LXNpemU6MTNweDtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHRvcDoxcHg7XHJcblx0fVxyXG5cdFxyXG5cdHNwYW4ge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjVweDtcclxuXHR9XHJcbn1cclxuXHJcbi8qIENvbW1lbnQgUmVzcG9uZCAqL1xyXG4uY29tbWVudC1yZXNwb25kIHtcclxuXHRwYWRkaW5nOjUwcHggMCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHR0ZXh0YXJlYSB7XHJcblx0XHRtaW4taGVpZ2h0OjE3MHB4O1xyXG5cdH1cclxuXHRcclxuXHRsYWJlbCB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToxMHB4O1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0fVxyXG5cdFxyXG5cdHAge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtcmVwbHktdGl0bGUge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdHNtYWxsIHtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1mb3JtIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0LmNsX2FmdGVyO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1ub3RlcywgXHJcblx0LmxvZ2dlZC1pbi1hcyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0LmNsO1xyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1mb3JtLWF1dGhvciwgXHJcblx0LmNvbW1lbnQtZm9ybS1lbWFpbCB7XHJcblx0XHQuZmw7XHJcblx0XHR3aWR0aDo1MCU7XHJcblx0XHRcclxuXHRcdGlucHV0IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNvbW1lbnQtZm9ybS1jb29raWVzLWNvbnNlbnQge1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdHBhZGRpbmc6MTVweCAwO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuY2w7XHJcblx0XHRcclxuXHRcdGlucHV0IHtcclxuXHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8pO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsYWJlbCB7XHJcblx0XHRcdHBhZGRpbmc6MnB4IDAgMCAyMnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY29tbWVudC1mb3JtLWF1dGhvciB7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWZvcm0tZW1haWwge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jb21tZW50LWZvcm0tY29tbWVudCB7XHJcblx0XHR0ZXh0YXJlYSB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb3JtLXN1Ym1pdCB7XHJcblx0XHRwYWRkaW5nLXRvcDoxMHB4O1xyXG5cdFx0LmNsO1xyXG5cdH1cclxufVxyXG5cclxuLm5vY29tbWVudHMge1xyXG5cdG1hcmdpbjo1MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRIZWFkZXIgKyBDZW50ZXJlZCArIFJpZ2h0ICsgRml4ZWQgVmVyc2lvbnMgKi9cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgKioqKioqKioqKioqKioqKioqL1xyXG4jaGVhZGVyIHtcclxuXHR3aWR0aDoxMDAlO1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHotaW5kZXg6OTk5O1xyXG5cdFxyXG5cdC5maXhlZF9oZWFkZXIgJiB7XHJcblx0XHRwb3NpdGlvbjpmaXhlZDtcclxuXHR9XHJcbn1cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgVG9wICoqKioqKioqKioqKioqKioqKi9cclxuLmhlYWRlcl90b3Age1xyXG5cdC5oZWFkZXJfdG9wX2J1dCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjMycHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0LmJkYjtcclxuXHRcdC5kbjtcclxuXHRcdFxyXG5cdFx0PiBzcGFuIHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdC5wb3NfYWJzO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcF9vdXRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0Ym90dG9tOi0xcHg7XHJcblx0XHRcdGxlZnQ6QGJsb2Nrc19ob3JfcGFkO1xyXG5cdFx0XHRyaWdodDpAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRcdC5iZGI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wX3JpZ2h0IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX3RvcF9sZWZ0IHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cGFkZGluZzowIDIwcHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC50b3BfbmF2X3dyYXAge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LnJlc3BvbnNpdmVfdG9wX25hdiB7XHJcblx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdHdpZHRoOjEycHg7XHJcblx0XHRoZWlnaHQ6MTBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkdCgycHgpO1xyXG5cdFx0LmJkYigycHgpO1xyXG5cdFx0LmRuO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MnB4O1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHdpZHRoOjEycHg7XHJcblx0XHRcdGhlaWdodDoycHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5zb2NpYWxfd3JhcCB7XHJcblx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjJweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xyXG5cdFx0XHR3aWR0aDoyMHB4O1xyXG5cdFx0XHRoZWlnaHQ6MjBweDtcclxuXHRcdFx0Lm9wKC4zKTtcclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWV0YV93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcclxuXHRcdD4gKiB7XHJcblx0XHRcdG1hcmdpbjo0cHggMTZweCAwIDA7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdOmJlZm9yZSwgXHJcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdOmJlZm9yZSwgXHJcblx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowLjVlbTtcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuYWRyIHtcclxuXHRcdFx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBIZWFkZXIgVG9wIE5hdmlnYXRpb24gKioqKioqKioqKioqKioqKioqL1xyXG4udG9wX2xpbmVfbmF2IHtcclxuXHR6LWluZGV4OjIwNTtcclxuXHRcclxuXHQ+IGxpIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzo0cHggMTBweCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Lm5hdl9pdGVtX3dyYXAge1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR1bCB7XHJcblx0XHRsZWZ0Oi01cHg7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0cGFkZGluZzoxcHggMTVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR1bCB7XHJcblx0XHRcdGxlZnQ6MTAwJTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIE1pZCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfbWlkIHtcclxuXHQuY2w7XHJcblx0XHJcblx0Ji5oZWFkZXJfbWlkX3Njcm9sbCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl9taWRfb3V0ZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl9taWRfaW5uZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQuY2xfYWZ0ZXI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5sb2dvX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHRcdC5tMGE7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHQudmFsaWduX2FmdGVyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubG9nb190ZXh0X3dyYXAge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQudGl0bGUge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC50aXRsZV90ZXh0IHtcclxuXHRcdFx0cGFkZGluZzowIDAgMCAycHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5sb2dvIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdC5wb3NfYWJzKGF1dG8sIGF1dG8sIDAsIGF1dG8pO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQubG9nb19yZXRpbmEge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX21pZF9idXRfd3JhcCB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdG1hcmdpbi1sZWZ0OjMwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdFxyXG5cdFx0LmhlYWRlcl9taWRfYnV0X3dyYXBfaW5uZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmhlYWRlcl9taWRfYnV0IHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjMycHg7XHJcblx0XHRcdC5iZCgycHgpO1xyXG5cdFx0XHQuYmRycygxOHB4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KyAucmVzcF9taWRfbmF2X3dyYXAgKyAubWlkX25hdl93cmFwIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MzBweDtcclxuXHRcdFx0XHJcblx0XHRcdCsgLnNlYXJjaF93cmFwIHtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNlYXJjaF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luLWxlZnQ6MzBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHQuc2VhcmNoX3dyYXBfaW5uZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnNlYXJjaF93cmFwX2luX2lubmVyIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0aGVpZ2h0OjM2cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2VhcmNoX2Jhcl93cmFwIHtcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHJpZ2h0OjMwcHg7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHR6LWluZGV4OjIwMjtcclxuXHRcdFx0XHJcblx0XHRcdC5zZWFyY2hfZmllbGQge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGlucHV0IHtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjNweDtcclxuXHRcdFx0XHRcdHBhZGRpbmctYm90dG9tOjNweDtcclxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MzZweDtcclxuXHRcdFx0XHRcdGhlaWdodDozNnB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGJ1dHRvbiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zZWFyY2hfdG9nZ2xlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6MjBweDtcclxuXHRcdFx0aGVpZ2h0OjM2cHg7XHJcblx0XHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRcdC5wb3NfYWJzKDFlbSwgMWVtLCBhdXRvLCAwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RoZW1lX2ljb25fY2FuY2VsIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MTVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zZWFyY2hfb3BlbmVkIHtcclxuXHRcdFx0LnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0XHRcdFx0LnNlYXJjaF9maWVsZCB7XHJcblx0XHRcdFx0XHR3aWR0aDoyMzBweDtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0XHRcdFx0d2lkdGg6MzZweDtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNvY2lhbF93cmFwIHtcclxuXHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdC5mcjtcclxuXHRcdG92ZXJmbG93OnZpc2libGU7XHJcblx0XHRtYXJnaW4tbGVmdDo3cHg7XHJcblx0XHRcclxuXHRcdC5zb2NpYWxfd3JhcF9pbm5lciB7XHJcblx0XHRcdC50YXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjJweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRhIHtcclxuXHRcdFx0Zm9udC1zaXplOjE0cHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdHdpZHRoOjIwcHg7XHJcblx0XHRcdGhlaWdodDoyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc2xvZ2FuX3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0bWFyZ2luLWxlZnQ6MTBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHQuc2xvZ2FuX3dyYXBfaW5uZXIge1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0LnRhcjtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC52YWxpZ25fYWZ0ZXI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnNsb2dhbl93cmFwX3RleHQge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOi0zMHB4IC0yMHB4IDA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdD4gKiB7XHJcblx0XHRcdFx0bWFyZ2luOjMwcHggMjBweCAwO1xyXG5cdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXHJcblx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRcdFx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRcdFx0XHRcdGRpc3BhbHk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdFx0XHRcdGhlaWdodDoxZW07XHJcblx0XHRcdFx0XHRcdG1hcmdpbjphdXRvO1xyXG5cdFx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdHJpZ2h0OmF1dG87XHJcblx0XHRcdFx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRcdFx0XHRib3R0b206YXV0bztcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCoge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gcCB7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuYWRyIHtcclxuXHRcdFx0XHR3aGl0ZS1zcGFjZTpub3dyYXA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zbG9nYW5fY2xvc2VkIHtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDtcclxuXHRcdFx0Lm9wKDApICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwX21pZF9uYXZfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdG1hcmdpbjowIC0yMHB4O1xyXG5cdFx0LmRuO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5jbDtcclxuXHRcdC5iZHQ7XHJcblx0XHQuYmRiO1xyXG5cdFx0XHJcblx0XHQucmVzcF9taWRfbmF2X291dGVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0cGFkZGluZzoxOHB4IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5yZXNwX21pZF9uYXYge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0d2lkdGg6MTZweDtcclxuXHRcdFx0aGVpZ2h0OjEwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuYmR0KDJweCk7XHJcblx0XHRcdC5iZGIoMnB4KTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDoycHg7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTZweDtcclxuXHRcdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmhvdmVyLCBcclxuXHRcdFx0Ji5hY3RpdmUge1xyXG5cdFx0XHRcdG91dGxpbmU6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWlkX25hdl93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHRcclxuXHRcdCYubmF2X2Nsb3NlZCB7XHJcblx0XHRcdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdFx0XHRvcGFjaXR5OjA7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBNaWQgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5taWRfbmF2X3dyYXAge1xyXG5cdCNuYXZpZ2F0aW9uIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0LmJkcigwKTtcclxuXHRcdFx0XHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRwYWRkaW5nOjRweCAxMHB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Lm5hdl9pdGVtX3dyYXAge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5uYXZfdGFnIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRcdFx0cGFkZGluZzowIDEwcHg7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDo1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHVsIHtcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0cGFkZGluZzo2cHggMDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5uYXZfdGFnIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW46MCA1cHg7XHJcblx0XHRcdFx0cGFkZGluZzowIDNweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubmF2X3N1YnRpdGxlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSGVhZGVyIEJvdCAqKioqKioqKioqKioqKioqKiovXHJcbi5oZWFkZXJfYm90IHtcclxuXHQuY2w7XHJcblx0XHJcblx0LmhlYWRlcl9ib3Rfb3V0ZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0LmJkdDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX2JvdF9pbm5lciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfY2VudGVyZWQgJiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5yZXNwX2JvdF9uYXZfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5kbjtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5yZXNwX2JvdF9uYXZfb3V0ZXIge1xyXG5cdFx0XHRvdXRsaW5lOm5vbmU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5ib3RfbmF2X3dyYXAge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0Ji5uYXZfY2xvc2VkIHtcclxuXHRcdFx0dmlzaWJpbGl0eTpoaWRkZW4gIWltcG9ydGFudDtcclxuXHRcdFx0Lm9wKDApICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbmFibGVfaGVhZGVyX3JpZ2h0ICYge1xyXG5cdFx0XHQuZnI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbmFibGVfaGVhZGVyX2NlbnRlcmVkICYge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnNlYXJjaF93cmFwIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luOjAgMCAwIDE1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5mcjtcclxuXHRcdFxyXG5cdFx0LmVuYWJsZV9oZWFkZXJfcmlnaHQgJiB7XHJcblx0XHRcdG1hcmdpbjowIDE1cHggMCAwO1xyXG5cdFx0XHQuZmw7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5zZWFyY2hfd3JhcF9pbm5lciB7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0LnZhbGlnbl9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2VhcmNoX3dyYXBfaW5faW5uZXIge1xyXG5cdFx0XHRib3JkZXItY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmJkbDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0XHRcdHdpZHRoOmF1dG87XHJcblx0XHRcdGhlaWdodDozNnB4O1xyXG5cdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdG92ZXJmbG93OnZpc2libGU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRyaWdodDozMHB4O1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdFx0ei1pbmRleDoyMDI7XHJcblx0XHRcdFxyXG5cdFx0XHQuc2VhcmNoX2ZpZWxkIHtcclxuXHRcdFx0XHR3aWR0aDowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpbnB1dFt0eXBlPXNlYXJjaF0ge1xyXG5cdFx0XHRcdFx0cGFkZGluZzozcHggMCAzcHggMzBweDtcclxuXHRcdFx0XHRcdGhlaWdodDozNnB4O1xyXG5cdFx0XHRcdFx0LmJkKDApO1xyXG5cdFx0XHRcdFx0LmJ4c2hfbm9uZSAhaW1wb3J0YW50O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRidXR0b24ge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuc2VhcmNoX3RvZ2dsZSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjY2cHg7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRjdXJzb3I6cG9pbnRlcjtcclxuXHRcdFx0LmJkbDtcclxuXHRcdFx0LmJkcjtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRmb250LXNpemU6MjJweDtcclxuXHRcdFx0XHQucG9zX2FicygxZW0sIDFlbSwgMCwgMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190aGVtZV9pY29uX2NhbmNlbCB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOjE1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2VhcmNoX29wZW5lZCB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQuc2VhcmNoX3dyYXBfaW5uZXIge1xyXG5cdFx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuc2VhcmNoX3dyYXBfaW5faW5uZXIge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5zZWFyY2hfYmFyX3dyYXAge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0cGFkZGluZzowIDgwcHggMCAwO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGZvcm0ge1xyXG5cdFx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5zZWFyY2hfZmllbGQge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LnNlYXJjaF9idXR0b24ge1xyXG5cdFx0XHRcdFx0d2lkdGg6MzZweDtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5zZWFyY2hfdG9nZ2xlIHtcclxuXHRcdFx0XHRib3JkZXItbGVmdC1jb2xvcjp0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRyaWdodDowO1xyXG5cdFx0XHRcdHotaW5kZXg6MjAzO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEhlYWRlciBCb3QgTmF2aWdhdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5ib3RfbmF2IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQ+IGxpIHtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHR3b3JkLXNwYWNpbmc6LTJweDtcclxuXHRcdC5iZHI7XHJcblx0XHRcclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHQuYmRsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHQuYmRyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyLFxyXG5cdFx0Ji5jdXJyZW50LW1lbnUtYW5jZXN0b3IsXHJcblx0XHQmLmN1cnJlbnQtbWVudS1pdGVtIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdHdpZHRoOjgwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjIwcHg7XHJcblx0XHRcdGhlaWdodDoycHg7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0Oi0xcHg7XHJcblx0XHRcdHRvcDotMnB4ICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCoge1xyXG5cdFx0XHR3b3JkLXNwYWNpbmc6bm9ybWFsO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGEge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cGFkZGluZzoxM3B4IDQwcHggMTNweCAyMHB4O1xyXG5cdFx0XHQuYmRycyg0cHgpO1xyXG5cdFx0XHRcclxuXHRcdFx0Lm5hdl9pdGVtX3dyYXAge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5uYXZfdGFnIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjAgMTBweDtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDo1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dWwge1xyXG5cdFx0YSB7XHJcblx0XHRcdHBhZGRpbmc6N3B4IDAgNHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQubmF2X3RhZyB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW46MCA1cHg7XHJcblx0XHRcdHBhZGRpbmc6MCAzcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5uYXZfc3VidGl0bGUge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcbn1cclxuXHJcbi5uYXZpZ2F0aW9uX3dyYXAgPiAubmF2aWdhdGlvbiB7XHJcblx0d2lkdGg6YXV0bztcclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0SGVhZGxpbmUgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG5ib2R5IC5oZWFkbGluZSB7XHJcblx0YmFja2dyb3VuZC1jb2xvcjp0cmFuc3BhcmVudDtcclxufVxyXG5cclxuLmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfaW5uZXIge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRwYWRkaW5nLXRvcDoxMHB4O1xyXG5cdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG4uaGVhZGxpbmVfb3V0ZXIge1xyXG5cdGJhY2tncm91bmQtcG9zaXRpb246dG9wIGNlbnRlcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR6LWluZGV4OjE7XHJcblx0XHJcblx0Jjpub3QoLmhlYWRsaW5lX2Rpc2FibGVkKSB7XHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGxpbmVfY29sb3Ige1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjA7XHJcblx0XHR0b3A6MDtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRsaW5lX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6MCBAYmxvY2tzX2hvcl9wYWQ7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5oZWFkbGluZV9hbGlnbmVyIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0cGFkZGluZzoxNXB4IDA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIDAsIDAsIGF1dG8pO1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmVudHJ5LXRpdGxlIHtcclxuXHRcdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmVudHJ5LXN1YnRpdGxlIHtcclxuXHRcdFx0XHRtYXJnaW46NXB4IDAgMDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmFsaWduX2xlZnQge1xyXG5cdFx0XHQudGFsO1xyXG5cdFx0XHRcclxuXHRcdFx0LmhlYWRsaW5lX3RleHQge1xyXG5cdFx0XHRcdC50YWw7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzIHtcclxuXHRcdFx0XHQuZnI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5hbGlnbl9yaWdodCB7XHJcblx0XHRcdC50YXI7XHJcblx0XHRcdFxyXG5cdFx0XHQuaGVhZGxpbmVfdGV4dCB7XHJcblx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19icmVhZGNydW1icyB7XHJcblx0XHRcdFx0LmZsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYWxpZ25fY2VudGVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdC5oZWFkbGluZV90ZXh0IHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGJvdHRvbTphdXRvO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnMge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfYnJlYWRjcnVtYnNfYWxpZ25lciB7XHJcblx0XHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2JyZWFkY3J1bWJzX2lubmVyIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MjBweCAwO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLmNvbnRlbnRfd3JhcCB7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRtaW4td2lkdGg6aW5oZXJpdDtcclxufVxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRCb3R0b20gKyBGb290ZXIgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQm90dG9tICoqKioqKioqKioqKioqKioqKi9cclxuLmJvdHRvbV9pbm5lciB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgKioqKioqKioqKioqKioqKioqL1xyXG4jZm9vdGVyIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uZm9vdGVyX2JvcmRlciB7XHJcblx0LmJkdDtcclxufVxyXG5cclxuLmZvb3Rlcl9pbm5lciB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0dWwge1xyXG5cdFx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGb290ZXIgRGVmYXVsdCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9kZWZhdWx0IHtcclxuXHQuZm9vdGVyX2lubmVyIHtcclxuXHRcdHBhZGRpbmc6NTBweCAwIDEwcHg7XHJcblx0XHRcclxuXHRcdD4gZGl2OmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9sb2dvX3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQudGFjO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0LmZvb3Rlcl9sb2dvIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IC5mb290ZXJfbG9nb19yZXRpbmEge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX2N1c3RvbV9odG1sX3dyYXAge1xyXG5cdFx0cGFkZGluZzoyMHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY3VzdG9tX2h0bWwge1xyXG5cdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdl93cmFwIHtcclxuXHRcdHBhZGRpbmc6MzVweCAwIDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdGRpdiB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfbmF2IHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6YXV0bztcclxuXHRcdG1hcmdpbjotNXB4IC0xNXB4IDA7XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHRmbG9hdDpub25lO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0bWFyZ2luOjVweCAxNXB4IDA7XHJcblx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHJcblx0XHRcdHVsIHtcclxuXHRcdFx0XHRkaXNwbGF5Om5vbmUgIWltcG9ydGFudDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0cGFkZGluZzo0MHB4IDAgMDtcclxuXHRcdFxyXG5cdFx0LnNvY2lhbF93cmFwX2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGkge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6NXB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDowO1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MTRweDtcclxuXHRcdFx0d2lkdGg6MzBweDtcclxuXHRcdFx0aGVpZ2h0OjMwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfY29weXJpZ2h0IHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwYWRkaW5nOjU1cHggMCAwO1xyXG5cdFx0LnRhYztcclxuXHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEZvb3RlciBTbWFsbCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2Zvb3Rlcl9zbWFsbCB7XHJcblx0LmZvb3Rlcl9ib3JkZXIge1xyXG5cdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0fVxyXG5cdFxyXG5cdC5mb290ZXJfbmF2X3dyYXAge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQuZnI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuZm9vdGVyX25hdiB7XHJcblx0XHR3aWR0aDphdXRvO1xyXG5cdFx0bWFyZ2luOi01cHggLTEycHggMDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdGZsb2F0Om5vbmU7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW46NXB4IDEycHggMDtcclxuXHRcdFx0LmJkKDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuc29jaWFsX3dyYXAge1xyXG5cdFx0LmZyO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdG1hcmdpbi1yaWdodDo1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0YSB7XHJcblx0XHRcdGZvbnQtc2l6ZToxMnB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDoxMnB4O1xyXG5cdFx0XHR3aWR0aDoxNnB4O1xyXG5cdFx0XHRoZWlnaHQ6MTZweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jdXN0b21faHRtbF93cmFwIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZyO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcblx0XHJcblx0LmZvb3Rlcl9jb3B5cmlnaHQge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0Lm92aDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdEJsb2cgKERlZmF1bHQsIE1hc29ucnksIFRpbWVsaW5lKSArIFBvc3QgU3R5bGVzICovXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyAqKioqKioqKioqKioqKioqKiovXHJcbi5ibG9nIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0Ji5jb2x1bW5zIHtcclxuXHRcdG1hcmdpbjowIC0yMHB4O1xyXG5cdH1cclxuXHRcclxuXHQmLnRpbWVsaW5lIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0LnBvc19hYnMoMXB4LCAxMDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uIHtcclxuXHRcdG1hcmdpbi10b3A6NTBweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBEZWZhdWx0ICoqKioqKioqKioqKioqKioqKi9cclxuLnBvc3QuY21zbWFzdGVyc19kZWZhdWx0X3R5cGUge1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzo2MHB4IDAgMDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9ibG9nX3N0YW5kYXJkX3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdHdpZHRoOjYwcHg7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MzBweDtcclxuXHRcdFxyXG5cdFx0LnB1Ymxpc2hlZCB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2RheSB7XHJcblx0XHRcdGZvbnQtc2l6ZTozMHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDozNHB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjEwcHggNXB4IDZweDtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfbW9uIHtcclxuXHRcdFx0Zm9udC1zaXplOjEzcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6NXB4IDVweCA0cHg7XHJcblx0XHRcdC5iZDtcclxuXHRcdFx0LmJkdCgwKTtcclxuXHRcdFx0LnRhYztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIsXHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X3RpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToxNnB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2Zvb3RlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbToyNXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHQuYmR0O1xyXG5cdFx0cGFkZGluZzoxM3B4IDA7XHJcblx0XHRcclxuXHRcdD4gKiB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDoxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X21ldGFfaW5mbyB7XHJcblx0XHQuZnI7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdFxyXG5cdFx0PiBhIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5mb3JtYXQtZ2FsbGVyeSB7XHJcblx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDo0MHB4O1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kOm5vbmU7XHJcblx0XHRcdFx0XHQuYmQoMCk7XHJcblx0XHRcdFx0XHQucG9zX2FicygzMHB4LCAzMHB4KTtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjEwcHg7XHJcblx0XHRcdFx0XHRcdGhlaWdodDoxNHB4O1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZToyNnB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdFx0bGVmdDotNDBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5vd2wtbmV4dCB7XHJcblx0XHRcdFx0XHRyaWdodDotNDBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfb3dsX3NsaWRlciB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdFx0XHQmLm93bC1wcmV2IHtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCYub3dsLW5leHQge1xyXG5cdFx0XHRcdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQmxvZyBNYXNvbnJ5ICoqKioqKioqKioqKioqKioqKi9cclxuLnBvc3QuY21zbWFzdGVyc19tYXNvbnJ5X3R5cGUge1xyXG5cdG1pbi13aWR0aDoyODBweDtcclxuXHRwYWRkaW5nOjAgMjBweCA0MHB4O1xyXG5cdC5mbDtcclxuXHQub3AoMCk7XHJcblx0XHJcblx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0Lm9wKDEpO1xyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ19tYXNvbnJ5X3BhZDtcclxuXHRcdFxyXG5cdFx0Ji5oaWdoSW1nIHtcclxuXHRcdFx0aGVpZ2h0OmF1dG87XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXHJcblx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkYigwKTtcclxuXHRcdHBhZGRpbmc6MTJweCAyMHB4O1xyXG5cdFx0XHJcblx0XHQrIC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbm5lciB7XHJcblx0XHRcdC5iZHQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29udF9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjE3cHggMjBweCAxNXB4O1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkdCgwKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxMnB4O1xyXG5cdFx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjE1cHg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdGEge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQmLmZvcm1hdC1nYWxsZXJ5IHtcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdD4gZGl2IHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjQwcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHRcdFx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDMwcHgsIDMwcHgpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTBweDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjE0cHg7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjI2cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0XHRsZWZ0Oi00MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdHJpZ2h0Oi00MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19vd2xfc2xpZGVyIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0Ji5vd2wtbmV4dCB7XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmZvcm1hdC1hdWRpbyB7XHJcblx0XHQuY21zbWFzdGVyc19hdWRpbyArIC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRcdC5iZHQoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5tZWpzLWNvbnRhaW5lci53cC12aWRlby1zaG9ydGNvZGUsIFxyXG5cdFx0Lm1lanMtY29udGFpbmVyLndwLWF1ZGlvLXNob3J0Y29kZSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEJsb2cgVGltZWxpbmUgKioqKioqKioqKioqKioqKioqL1xyXG4ucG9zdC5jbXNtYXN0ZXJzX3RpbWVsaW5lX3R5cGUge1xyXG5cdHdpZHRoOjUwJTtcclxuXHQuZmw7XHJcblx0Lm9wKDApO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHQucG9zX2FicygxMDAlLCAxcHgsIDAsIDAsIDI2cHgsIGF1dG8pO1xyXG5cdH1cclxuXHRcclxuXHQucHJlbG9hZGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfdGltZWxpbmVfbGVmdCB7XHJcblx0XHRtYXJnaW4tbGVmdDotQGxpbmVfaGVpZ2h0X3BhZCAqIDI7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRcdG1hcmdpbi1yaWdodDoyMiU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfaW5mbyB7XHJcblx0XHRcdHJpZ2h0Oi0zMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfdGltZWxpbmVfcmlnaHQge1xyXG5cdFx0bWFyZ2luLWxlZnQ6QGxpbmVfaGVpZ2h0X3BhZCAqIDI7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OjIyJTtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjFweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9pbmZvIHtcclxuXHRcdFx0bGVmdDotMzBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdC5vcCgxKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2luZm8ge1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR0b3A6MDtcclxuXHRcdHdpZHRoOjYwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfZGF0ZSB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0d2lkdGg6NjBweDtcclxuXHRcdG1hcmdpbi1yaWdodDozMHB4O1xyXG5cdFx0XHJcblx0XHQucHVibGlzaGVkIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfZGF5IHtcclxuXHRcdFx0Zm9udC1zaXplOjMwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjM0cHg7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6MTBweCA1cHggNnB4O1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19tb24ge1xyXG5cdFx0XHRmb250LXNpemU6MTNweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MjBweDtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZzo1cHggNXB4IDRweDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHQuYmR0KDApO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdWRpbyxcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIsXHJcblx0LmNtc21hc3RlcnNfaW1nX3dyYXAge1xyXG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5uZXIge1xyXG5cdFx0XHQuYmR0KDApO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5uZXIge1xyXG5cdFx0LmJkO1xyXG5cdFx0cGFkZGluZzoxN3B4IDIwcHggMTVweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF90aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250X2luZm8ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxMnB4O1xyXG5cdFx0XHJcblx0XHQ+ICoge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjE1cHg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdGEge1xyXG5cdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc192aWRlb193cmFwLFxyXG5cdC5tZWpzLWNvbnRhaW5lci53cC12aWRlby1zaG9ydGNvZGUsIFxyXG5cdC5tZWpzLWNvbnRhaW5lci53cC1hdWRpby1zaG9ydGNvZGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdH1cclxuXHRcclxuXHQmLmZvcm1hdC1nYWxsZXJ5IHtcclxuXHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdD4gZGl2IHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjQwcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHRcdFx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHRcdC5wb3NfYWJzKDMwcHgsIDMwcHgpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTBweDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjE0cHg7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdFx0Zm9udC1zaXplOjI2cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0XHRsZWZ0Oi00MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdHJpZ2h0Oi00MHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19vd2xfc2xpZGVyIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRcdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0Ji5vd2wtbmV4dCB7XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIFB1enpsZSAqKioqKioqKioqKioqKioqKiovXHJcbi5ibG9nLmNvbHVtbnMucHV6emxlIHtcclxuXHRtYXJnaW46MDtcclxuXHRvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzXzQge1xyXG5cdFx0LnBvc3QuY21zbWFzdGVyc19wdXp6bGVfdHlwZSB7XHJcblx0XHRcdG1pbi13aWR0aDoyMzBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5wb3N0LmNtc21hc3RlcnNfcHV6emxlX3R5cGUge1xyXG5cdG1pbi13aWR0aDoyODBweDtcclxuXHRwYWRkaW5nOjA7XHJcblx0LmZsO1xyXG5cdC5vcCgwKTtcclxuXHRcclxuXHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHQub3AoMSk7XHJcblx0fVxyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ7XHJcblx0XHRcclxuXHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXHJcblx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0LmJkYjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdFx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdFx0XHRtYXJnaW46LTE1cHggMCAwIC0xNXB4O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0dG9wOjUwJTtcclxuXHRcdFx0bGVmdDo1MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCwgXHJcblx0LnJlc2l6YWJsZV9ibG9jayB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3BvcnRmb2xpb19ncmlkX3BhZDtcclxuXHR9XHJcblx0XHJcblx0JjpudGgtY2hpbGQob2RkKSB7XHJcblx0XHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcclxuXHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dG9wOi0xMHB4O1xyXG5cdFx0XHRcdC5hcnJvd190b3AoMTBweCwgOXB4KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0LmJkYjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmOm50aC1jaGlsZChldmVuKSB7XHJcblx0XHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Ym90dG9tOi0xMHB4O1xyXG5cdFx0XHRcdC5hcnJvd19ib3R0b20oMTBweCwgOXB4KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pbWdfd3JhcCB7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdLCBcclxuXHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0LmJkdDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wb3N0X2NvbnQge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MjAwJTtcclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdC5wcmVsb2FkZXI6YWZ0ZXIge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRmaWd1cmUsIFxyXG5cdC5wdXp6bGVfcG9zdF9jb250ZW50X3dyYXBwZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdH1cclxuXHRcclxuXHQucHV6emxlX3Bvc3RfY29udGVudF93cmFwcGVyIHtcclxuXHRcdHBhZGRpbmctYm90dG9tOjEwMCU7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MjVweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnB1enpsZV9wb3N0X2NvbnRlbnRfd3JhcCB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0cGFkZGluZzoyMHB4IDI1cHggMTVweDtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9oZWFkZXIge1xyXG5cdFx0XHRwYWRkaW5nOjNweCAwIDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb250ZW50IHtcclxuXHRcdFx0cGFkZGluZzoxOHB4IDAgMDtcclxuXHRcdFx0XHJcblx0XHRcdHAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X3JlYWRfbW9yZSB7XHJcblx0XHRcdG1hcmdpbi10b3A6MTBweDtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfZm9vdGVyIHtcclxuXHRcdFx0cGFkZGluZzoxMHB4IDI1cHggMTVweCAyNXB4O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdGxlZnQ6MXB4O1xyXG5cdFx0XHRyaWdodDoxcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206NXB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19wb3N0X2Zvb3Rlcl9pbmZvIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMCAwIDEwcHg7XHJcblx0XHRcdFx0ZmxvYXQ6cmlnaHQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0YSB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAwIDNweDtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMsIFxyXG5cdFx0LmNtc21hc3RlcnNMaWtlIHtcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0cGFkZGluZzowIDZweCAwIDA7XHJcblx0XHRcdFx0LmZsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHMge1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNMaWtlIHtcclxuXHRcdFx0Zm9udC1zaXplOjEzcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F1ZGlvIHtcclxuXHRcdG1hcmdpbi10b3A6MTBweDtcclxuXHRcdFxyXG5cdFx0KyAuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDoyNXB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQubWVqcy1jb250YWluZXIud3AtdmlkZW8tc2hvcnRjb2RlLCBcclxuXHQubWVqcy1jb250YWluZXIud3AtYXVkaW8tc2hvcnRjb2RlIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBCbG9nIFBvc3QgKioqKioqKioqKioqKioqKioqL1xyXG4uYmxvZy5vcGVuZWQtYXJ0aWNsZSB7XHJcblx0LnBvc3Qge1xyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9kYXRlIHtcclxuXHRcdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdFx0d2lkdGg6NjBweDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjMwcHg7XHJcblx0XHRcclxuXHRcdFx0LnB1Ymxpc2hlZCB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfZGF5IHtcclxuXHRcdFx0XHRmb250LXNpemU6MzBweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDozNHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzoxMHB4IDVweCA2cHg7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfbW9uIHtcclxuXHRcdFx0XHRmb250LXNpemU6MTNweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDoyMHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzo1cHggNXB4IDRweDtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0LmJkdCgwKTtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udGVudCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjMwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Bvc3RfY29udCB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRlbnQge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCxcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3dyYXAsXHJcblx0XHRcdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MzNweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHRcdC5iZHQ7XHJcblx0XHRcdHBhZGRpbmc6MTNweCAwO1xyXG5cdFx0XHRcclxuXHRcdFx0PiAqIHtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X21ldGFfaW5mbyB7XHJcblx0XHRcdC5mcjtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdG1hcmdpbi1sZWZ0OjEwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdFBvcnRmb2xpbyAoR3JpZCwgUHV6emxlKSArIFByb2plY3QgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9ydGZvbGlvICoqKioqKioqKioqKioqKioqKi9cclxuLnBvcnRmb2xpbyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5wcm9qZWN0IHtcclxuXHRcdG1pbi13aWR0aDoyMDBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQucHJlbG9hZGVyIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ7XHJcblx0XHRcdFxyXG5cdFx0XHQmLmhpZ2hJbWcge1xyXG5cdFx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5sYXJnZV9nYXAge1xyXG5cdFx0bWFyZ2luOjAgLTIwcHg7XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0IHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206NDBweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5zbWFsbF9nYXAge1xyXG5cdFx0cGFkZGluZzoxcHg7XHJcblx0XHQuY3RieDtcclxuXHRcdFxyXG5cdFx0LnByb2plY3Qge1xyXG5cdFx0XHRvdmVyZmxvdzp2aXNpYmxlO1xyXG5cdFx0XHRcclxuXHRcdFx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxcHg7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbToxcHg7XHJcblx0XHRcdFx0LmJkKDApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ3JpZC5wZXJmZWN0IC5wcm9qZWN0IHtcclxuXHRcdGZpZ3VyZSB7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnNtYWxsX2dhcCxcclxuXHQmLnplcm9fZ2FwIHtcclxuXHRcdC5wcm9qZWN0IHtcclxuXHRcdFx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHRcdFx0LmJkKDApO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuZ3JpZC5tYXNvbnJ5IC5wcm9qZWN0LCBcclxuXHQmLnB1enpsZSAucHJvamVjdCB7XHJcblx0XHQub3AoMCk7XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0Lm9wKDEpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfNSAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6MjAlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfNCAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6MjUlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfMyAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6MzMlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfMiAucHJvamVjdCB7XHJcblx0XHRtYXgtd2lkdGg6NTAlO1xyXG5cdH1cclxuXHRcclxuXHQmLmlzb3RvcGUuY21zbWFzdGVyc181IC5wcm9qZWN0LCBcclxuXHQmLmlzb3RvcGUuY21zbWFzdGVyc180IC5wcm9qZWN0LCBcclxuXHQmLmlzb3RvcGUuY21zbWFzdGVyc18zIC5wcm9qZWN0LCBcclxuXHQmLmlzb3RvcGUuY21zbWFzdGVyc18yIC5wcm9qZWN0IHtcclxuXHRcdG1heC13aWR0aDpub25lO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gR3JpZCAqKioqKioqKioqKioqKioqKiovXHJcbi5wb3J0Zm9saW8uZ3JpZCB7XHJcblx0LnByb2plY3Qge1xyXG5cdFx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0cGFkZGluZzoxNHB4IDE1cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG1hcmdpbi10b3A6LTFweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF9jb250ZW50IHtcclxuXHRcdFx0cGFkZGluZy10b3A6MTJweDtcclxuXHRcdFx0XHJcblx0XHRcdHAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjE1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYubGFyZ2VfZ2FwIHtcclxuXHRcdC5wcm9qZWN0X291dGVyIHtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAge1xyXG5cdFx0XHRcdG1hcmdpbjotMXB4IC0xcHggMDtcclxuXHRcdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvcnRmb2xpbyBQdXp6bGUgKioqKioqKioqKioqKioqKioqL1xyXG4ucG9ydGZvbGlvLnB1enpsZSB7XHJcblx0LnByb2plY3Qge1xyXG5cdFx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6NTAlO1xyXG5cdFx0XHRwYWRkaW5nOjAgNDBweCAyMHB4O1xyXG5cdFx0XHRtYXJnaW4tdG9wOjI1cHg7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6ICdcXGU4MTAnO1xyXG5cdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsby1jdXN0b20nO1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTo0MHB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjQ0cHg7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0LnBvc19hYnMoNDBweCwgNDRweCwgMCwgMCwgLTEwMHB4KTtcclxuXHRcdFx0XHQub3AoMCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2plY3Rfb3V0ZXIge1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIHtcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0dG9wOi03NXB4O1xyXG5cdFx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcclxuXHRcdFx0XHRcdFx0LW1vei10cmFuc2Zvcm06cm90YXRlWSgxODBkZWcpO1xyXG5cdFx0XHRcdFx0XHQtbXMtdHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcclxuXHRcdFx0XHRcdFx0dHJhbnNmb3JtOnJvdGF0ZVkoMTgwZGVnKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LnByb2plY3RfaW5uZXIge1xyXG5cdFx0XHRcdFx0bWFyZ2luLXRvcDowO1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2hlYWRlciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHJcblx0XHRcdGE6aG92ZXIge1xyXG5cdFx0XHRcdC5vcCguNik7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF9jYXRlZ29yeSB7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdG1hcmdpbi10b3A6NXB4O1xyXG5cdFx0XHRcclxuXHRcdFx0YTpob3ZlciB7XHJcblx0XHRcdFx0Lm9wKC42KTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdG1hcmdpbi10b3A6MTVweDtcclxuXHRcdFx0XHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luOjAgNXB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYuYWN0aXZlOmJlZm9yZSxcclxuXHRcdFx0XHQmOmhvdmVyOmJlZm9yZSB7XHJcblx0XHRcdFx0XHQub3AoLjYpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQb3J0Zm9saW8gT3BlbiBQcm9qZWN0ICoqKioqKioqKioqKioqKioqKi9cclxuLnBvcnRmb2xpby5vcGVuZWQtYXJ0aWNsZSB7XHJcblx0cGFkZGluZy10b3A6NDBweDtcclxuXHRwYWRkaW5nLWJvdHRvbTo0MHB4O1xyXG5cdFxyXG5cdC5wcm9qZWN0IHtcclxuXHRcdG1pbi13aWR0aDoxcHg7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdFx0b3ZlcmZsb3c6dmlzaWJsZTtcclxuXHRcdC5jbDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvamVjdF90aXRsZSB7XHJcblx0XHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHRcdC5iZGIoMnB4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdmlkZW9fd3JhcCxcclxuXHRcdC5jbXNtYXN0ZXJzX2ltZ193cmFwIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvamVjdF9jb250ZW50IHtcclxuXHRcdFx0Ji53aXRoX3NpZGViYXIge1xyXG5cdFx0XHRcdHdpZHRoOjY5JTtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDo0MHB4O1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19vd2xfc2xpZGVyIHtcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2plY3Rfc2lkZWJhciB7XHJcblx0XHRcdHdpZHRoOjMxJTtcclxuXHRcdFx0LmZyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvamVjdF9mZWF0dXJlcyxcclxuXHRcdC5wcm9qZWN0X2RldGFpbHMge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0X2RldGFpbHNfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW0sXHJcblx0XHQucHJvamVjdF9kZXRhaWxzX2l0ZW0ge1xyXG5cdFx0XHRwYWRkaW5nOjlweCAwO1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHRkaXNwbGF5OnRhYmxlO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRcdC5iZGIoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gZGl2IHtcclxuXHRcdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0X2ZlYXR1cmVzX2l0ZW1fdGl0bGUsXHJcblx0XHQucHJvamVjdF9kZXRhaWxzX2l0ZW1fdGl0bGUge1xyXG5cdFx0XHRmb250LXdlaWdodDo2MDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9qZWN0X2RldGFpbHNfaXRlbV9kZXNjLFxyXG5cdFx0LnByb2plY3RfZmVhdHVyZXNfaXRlbV9kZXNjIHtcclxuXHRcdFx0LnRhcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2plY3RfZ2FsbGVyeV9yb3cge1xyXG5cdFx0XHRtYXJnaW46MCAtQGNvbF9tYXIgKEBjb2xfbWFyICogMik7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRQb3N0cyBTbGlkZXIgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9zdHMgU2xpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcG9zdHNfc2xpZGVyIHtcclxuXHRwYWRkaW5nLXRvcDoxMDVweDtcclxuXHRtYXJnaW46MCAtMjBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX293bF9zbGlkZXIge1xyXG5cdFx0Lm9wKDApO1xyXG5cdH1cclxuXHRcclxuXHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHR0b3A6LTEwNHB4O1xyXG5cdFx0LnRhcjtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRtYXJnaW46MCAxcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdC5iZHJzKDApO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTFweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUG9zdHMgU2xpZGVyIEJsb2cgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0c19zbGlkZXIgLnBvc3Qge1xyXG5cdHBhZGRpbmc6MCAyMHB4IDQwcHg7XHJcblx0bWluLXdpZHRoOjI4MHB4O1xyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9wb3N0c19zbGlkZXJfcGFkO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF9jb250IHtcclxuXHRcdG1hcmdpbjoyMHB4IDAgMDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2RhdGUge1xyXG5cdFx0XHR3aWR0aDo1MHB4O1xyXG5cdFx0XHRoZWlnaHQ6NjBweDtcclxuXHRcdFx0ei1pbmRleDoxO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDoyMHB4O1xyXG5cdFx0XHR0b3A6LTIwcHg7XHJcblx0XHRcclxuXHRcdFx0LnB1Ymxpc2hlZCB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfZGF5IHtcclxuXHRcdFx0XHRmb250LXNpemU6MjRweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDozMnB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzo2cHggNXB4IDJweDtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19tb24ge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZToxMXB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjIwcHg7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjAgNXB4O1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHRcdC5iZDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udF93cmFwIHtcclxuXHRcdFx0cGFkZGluZzoxNXB4IDIwcHggMTVweDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHQuYmR0KDApO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19zbGlkZXJfcG9zdF90aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowIDAgMnB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wb3N0X2NvbnRfaW5mbyB7XHJcblx0XHRcdG1hcmdpbjowIDAgMTVweDtcclxuXHRcdFxyXG5cdFx0XHQ+ICoge1xyXG5cdFx0XHRcdG1hcmdpbjowIDEwcHggMCAwO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfY29udGVudCB7XHJcblx0XHRcdHBhZGRpbmctYm90dG9tOjE1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHRwIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfc2xpZGVyX3Bvc3RfbWV0YV9pbmZvIHtcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0bWFyZ2luLXJpZ2h0OjEwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9yZWFkX21vcmUge1xyXG5cdFx0XHQuZnI7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFBvc3RzIFNsaWRlciBQb3J0Zm9saW8gKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wb3N0c19zbGlkZXIgLnByb2plY3Qge1xyXG5cdG1pbi13aWR0aDoyODBweDtcclxuXHRwYWRkaW5nOjAgMjBweCA0MHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnByZWxvYWRlciB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX3BvcnRmb2xpb19ncmlkX3BhZDtcclxuXHR9XHJcblx0XHJcblx0LmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHQuYmQ7XHJcblx0fVxyXG5cdFxyXG5cdC5zbGlkZXJfcHJvamVjdF9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjE1cHggMjBweCAxNXB4O1xyXG5cdFx0LmJkO1xyXG5cdFx0LmJkdCgwKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2xpZGVyX3Byb2plY3RfdGl0bGUge1xyXG5cdFx0bWFyZ2luOjAgMCAxcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRfaW5mbyB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjE1cHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3NsaWRlcl9wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxNXB4O1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zbGlkZXJfcHJvamVjdF9mb290ZXIge1xyXG5cdFx0PiBhIHtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRQcm9maWxlcyArIFByb2ZpbGUgU3R5bGVzXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJvZmlsZXMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcm9maWxlIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFByb2ZpbGVzIFZlcnRpY2FsICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvZmlsZS52ZXJ0aWNhbCB7XHJcblx0LnByb2ZpbGUge1xyXG5cdFx0ZGlzcGxheTp0YWJsZTtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0XHRwYWRkaW5nOjQ1cHggNTBweDtcclxuXHRcdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjJweDtcclxuXHRcdFx0aGVpZ2h0OjUwcHg7XHJcblx0XHRcdG1hcmdpbjphdXRvICFpbXBvcnRhbnQ7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjFweDtcclxuXHRcdFx0cmlnaHQ6YXV0bztcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdGJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucGxfaW1nIHtcclxuXHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHR3aWR0aDoyMSU7XHJcblx0XHRcdHBhZGRpbmc6MCA1MHB4IDAgMDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0XHRcclxuXHRcdFx0aW1nLFxyXG5cdFx0XHQucGxfbm9pbWcge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKC4zKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguMyk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKC4zKTtcclxuXHRcdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdHotaW5kZXg6MztcclxuXHRcdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRjb250ZW50OidcXGVhYmYnO1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOjI0cHg7XHRcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdFx0XHQucG9zX2FicygxNnB4LCAxNnB4LCAwLCAwLCAtMjVweCk7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDoxNHB4O1xyXG5cdFx0XHRcdFx0ei1pbmRleDo0O1xyXG5cdFx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdFx0Jjpob3ZlciB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQucGxfbm9pbWcge1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MTAwJTtcclxuXHRcdFx0XHRtaW4td2lkdGg6MTAwJTtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0LnBvc19hYnM7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MzZweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnBsX2NvbnRlbnQge1xyXG5cdFx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XHJcblx0XHRcdHdpZHRoOjI3JTtcclxuXHRcdFx0cGFkZGluZzowIDMwcHggMCAwO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbnRyeS10aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowIDAgMTVweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnBsX3N1YnRpdGxlIHtcclxuXHRcdFx0bWFyZ2luOjAgMCAxcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wbF9zb2NpYWwge1xyXG5cdFx0XHRtYXJnaW46MzVweCAwIDA7XHJcblx0XHRcdFxyXG5cdFx0XHQucGxfc29jaWFsX2xpc3Qge1xyXG5cdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRtYXJnaW46MCAtNHB4O1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0Lm9wKC4xKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDRweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5Om5vbmU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdFx0XHRcdGhlaWdodDoxZW07XHJcblx0XHRcdFx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVudHJ5LWNvbnRlbnQge1xyXG5cdFx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XHJcblx0XHRcdHdpZHRoOjUyJTtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246bWlkZGxlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdC5wbF9pbWcge1xyXG5cdFx0XHRcdGltZyxcclxuXHRcdFx0XHQucGxfbm9pbWcge1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5wbF9zb2NpYWwge1xyXG5cdFx0XHRcdC5wbF9zb2NpYWxfbGlzdCB7XHJcblx0XHRcdFx0XHRtYXJnaW46MCAtNHB4O1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQcm9maWxlcyBIb3Jpem9udGFsICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcHJvZmlsZS5ob3Jpem9udGFsIHtcclxuXHRtYXJnaW46MCAtQGNvbF9tYXI7XHJcblx0XHJcblx0LnByb2ZpbGUge1xyXG5cdFx0cGFkZGluZzozNXB4IDMwcHggMjVweDtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0Ji5vbmVfaGFsZjpudGgtY2hpbGQoMm4rMSksXHJcblx0XHQmLm9uZV90aGlyZDpudGgtY2hpbGQoM24rMSksXHJcblx0XHQmLm9uZV9mb3VydGg6bnRoLWNoaWxkKDRuKzEpIHtcclxuXHRcdFx0Y2xlYXI6bGVmdDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRoZWlnaHQ6MnB4O1xyXG5cdFx0XHR3aWR0aDo2MHB4O1xyXG5cdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0Ym90dG9tOmF1dG87XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5lbnRyeS1jb250ZW50IHtcclxuXHRcdFx0bWFyZ2luOjE1cHggMCAxMHB4O1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucGxfY29udGVudCB7XHJcblx0XHQudGFjO1xyXG5cdH1cclxuXHRcclxuXHQuZW50cnktdGl0bGUge1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdH1cclxuXHRcclxuXHQucGxfc3VidGl0bGUge1xyXG5cdFx0bWFyZ2luOjdweCAwIDA7XHJcblx0fVxyXG5cdFxyXG5cdC5wbF9zb2NpYWxfbGlzdCB7XHJcblx0XHRwYWRkaW5nOjE1cHggMCAwO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdG1hcmdpbjowIC00cHg7XHJcblx0XHRcclxuXHRcdGxpIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0bWFyZ2luOjAgNHB4O1xyXG5cdFx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjFlbTtcclxuXHRcdFx0XHRoZWlnaHQ6MWVtO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0ZmlndXJlIHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LnRhYztcclxuXHR9XHJcblx0XHJcblx0LnBsX2ltZyB7XHJcblx0XHRwYWRkaW5nOjAgMTVweDtcclxuXHRcdG1hcmdpbi1ib3R0b206MjdweDtcclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0ei1pbmRleDozO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0Y29udGVudDonXFxlYWJmJztcclxuXHRcdFx0XHRmb250LXNpemU6MjRweDtcdFxyXG5cdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdFx0LnBvc19hYnMoMTZweCwgMTZweCwgMCwgMCwgLTI1cHgpO1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjE0cHg7XHJcblx0XHRcdFx0ei1pbmRleDo0O1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHJcblx0XHRcdCY6aG92ZXIge1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnBsX3NvY2lhbF9saXN0IHtcclxuXHRcdC50YWM7XHJcblx0fVxyXG5cdFxyXG5cdC5vbmVfZm91cnRoOm50aC1jaGlsZCg0bisxKSxcclxuXHQub25lX3RoaXJkOm50aC1jaGlsZCgzbisxKSxcclxuXHQub25lX2hhbGY6bnRoLWNoaWxkKDJuKzEpIHtcclxuXHRcdGNsZWFyOmJvdGg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFByb2ZpbGVzIE9wZW4gUHJvZmlsZSAqKioqKioqKioqKioqKioqKiovXHJcbi5wcm9maWxlcy5vcGVuZWQtYXJ0aWNsZSB7XHJcblx0cGFkZGluZy10b3A6NDBweDtcclxuXHRwYWRkaW5nLWJvdHRvbTo0MHB4O1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQucHJvZmlsZSB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5jbDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9oZWFkZXIge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3Byb2ZpbGVfdGl0bGUge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0LmJkYigycHgpO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfcHJvZmlsZV9zdWJ0aXRsZSB7XHJcblx0XHRcdG1hcmdpbjoxMHB4IDAgMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LndpdGhfc2lkZWJhciB7XHJcblx0XHRcdHdpZHRoOjY5JTtcclxuXHRcdFx0LmZsO1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjQwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcm9maWxlX3NpZGViYXIge1xyXG5cdFx0XHR3aWR0aDozMSU7XHJcblx0XHRcdHBhZGRpbmc6MjVweDtcclxuXHRcdFx0LmZyO1xyXG5cdFx0XHQuYmQoM3B4KTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2ZpbGVfZmVhdHVyZXMsXHJcblx0XHQucHJvZmlsZV9kZXRhaWxzIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTozNXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvZmlsZV9mZWF0dXJlc19pdGVtLFxyXG5cdFx0LnByb2ZpbGVfZGV0YWlsc19pdGVtIHtcclxuXHRcdFx0ZGlzcGxheTp0YWJsZTtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0cGFkZGluZzo5cHggMDtcclxuXHRcdFx0LmJkYjtcclxuXHRcdFx0XHJcblx0XHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0XHQuYmRiKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLnByb2ZpbGVfZGV0YWlsc19pdGVtX2Rlc2MsXHJcblx0XHRcdFx0Ji5wcm9maWxlX2ZlYXR1cmVzX2l0ZW1fZGVzYyB7XHJcblx0XHRcdFx0XHQudGFyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucHJvZmlsZV9mZWF0dXJlc190aXRsZSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MjVweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2ZpbGVfZmVhdHVyZXNfaXRlbV90aXRsZSxcclxuXHRcdC5wcm9maWxlX2RldGFpbHNfaXRlbV90aXRsZSB7XHJcblx0XHRcdGZvbnQtd2VpZ2h0OjYwMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnByb2ZpbGVfc29jaWFsX2ljb25zX2xpc3Qge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdGxpc3Qtc3R5bGU6bm9uZTtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdFx0bWFyZ2luOjAgMTBweCAwIDA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHRhIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHR3aWR0aDoxZW07XHJcblx0XHRcdFx0XHRoZWlnaHQ6MWVtO1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOjE2cHg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRTaG9ydGNvZGVzIFN0eWxlcyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIERpdmlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG5ociB7XHJcblx0Ym9yZGVyOjA7XHJcblx0Ym9yZGVyLXRvcC1zdHlsZTpzb2xpZDtcclxuXHRtYXJnaW46KEBsaW5lX2hlaWdodF9wYWQgKiAyKSAwO1xyXG59XHJcblxyXG5ociwgXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyLFxyXG4uY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdGJvcmRlci1ib3R0b20td2lkdGg6MXB4O1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0aGVpZ2h0OjFweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuY2w7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyIHtcclxuXHRtYXJnaW46MCBAY29sX21hciBAbGluZV9oZWlnaHRfcGFkO1xyXG5cdHdpZHRoOnJvdW5kKDEwMCUgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyIHtcclxuXHQmLnNvbGlkIHtcclxuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcblx0fVxyXG5cdFxyXG5cdCYuZGFzaGVkIHtcclxuXHRcdGJvcmRlci1ib3R0b20tc3R5bGU6ZGFzaGVkO1xyXG5cdH1cclxuXHRcclxuXHQmLmRvdHRlZCB7XHJcblx0XHRib3JkZXItYm90dG9tLXN0eWxlOmRvdHRlZDtcclxuXHR9XHJcblx0XHJcblx0Ji50cmFuc3BhcmVudCB7XHJcblx0XHRib3JkZXItYm90dG9tLXdpZHRoOjA7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9zaG9ydCB7XHJcblx0XHR3aWR0aDogMjAlO1xyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfZGl2aWRlcl9wb3NfY2VudGVyIHtcclxuXHRcdFx0bGVmdDo0MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6ODAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9tZWRpdW0ge1xyXG5cdFx0d2lkdGg6NDAlO1xyXG5cdFx0XHJcblx0XHQmLmNtc21hc3RlcnNfZGl2aWRlcl9wb3NfY2VudGVyIHtcclxuXHRcdFx0bGVmdDozMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19kaXZpZGVyX3Bvc19yaWdodCB7XHJcblx0XHRcdGxlZnQ6NjAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfZGl2aWRlcl93aWR0aF9sb25nIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFNwZWNpYWwgSGVhZGluZyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2hlYWRpbmdfd3JhcCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlciB7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdGhlaWdodDoycHg7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHRvcDo1MCU7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0X3dyYXAsIFxyXG5cdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9yaWdodF93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0d2lkdGg6MDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9zaG9ydCB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0XHR3aWR0aDoxMCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sZWZ0IHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6LTEwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9tZWRpdW0ge1xyXG5cdFx0LmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyIHtcclxuXHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0Oi0yMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbG9uZyB7XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19oZWFkaW5nX2RpdmlkZXJfbGVmdCB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0Oi0xMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX3Nob3J0LCBcclxuXHQmLmNtc21hc3RlcnNfaGVhZGluZ19kaXZpZGVyX21lZGl1bSwgXHJcblx0Ji5jbXNtYXN0ZXJzX2hlYWRpbmdfZGl2aWRlcl9sb25nIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2hlYWRpbmcge1xyXG5cdFx0XHRtYXgtd2lkdGg6ODAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19oZWFkaW5nIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlLCBcclxuXHRcdGE6YmVmb3JlIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0bWFyZ2luLXJpZ2h0OjAuNWVtO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBGZWF0dXJlZCBCbG9jayAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2ZlYXR1cmVkX2Jsb2NrIHtcclxuXHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuZmVhdHVyZWRfYmxvY2tfaW5uZXIge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdHBhZGRpbmc6MjBweCAyMHB4IDA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFRhYmxlICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfdGFibGUge1xyXG5cdHdpZHRoOjEwMCU7XHJcblx0XHJcblx0dHIge1xyXG5cdFx0dGQsIFxyXG5cdFx0dGgge1xyXG5cdFx0XHRwYWRkaW5nOjE1cHggMjBweDtcclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWduY2VudGVyIHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jbXNtYXN0ZXJzX3RhYmxlX2NlbGxfYWxpZ25sZWZ0IHtcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY21zbWFzdGVyc190YWJsZV9jZWxsX2FsaWducmlnaHQge1xyXG5cdFx0XHRcdHRleHQtYWxpZ246cmlnaHQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dGZvb3QsXHJcblx0dGJvZHkge1xyXG5cdFx0dHIge1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHQuYmRsO1xyXG5cdFx0XHQuYmRyO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBOb3RpY2UgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19ub3RpY2Uge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRwYWRkaW5nOjAgMzBweDtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LmJkO1xyXG5cdFxyXG5cdCZbY2xhc3MqPVwiIGNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdCZbY2xhc3MqPVwiIGNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl0ge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjgwcHg7XHJcblx0fVxyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGZvbnQtc2l6ZTozMnB4O1xyXG5cdFx0LnBvc19hYnMoMWVtLCAxZW0sIDI1cHgsIGF1dG8pO1xyXG5cdH1cclxuXHRcclxuXHQubm90aWNlX2NvbnRlbnQge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOkBsaW5lX2hlaWdodF9wYWQgMCAwO1xyXG5cdH1cclxuXHRcclxuXHQubm90aWNlX2Nsb3NlIHtcclxuXHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0bGluZS1oZWlnaHQ6MzFweDtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0LnBvc19hYnMoMzBweCwgMzBweCwgYXV0bywgLTE1cHgsIC0xNXB4LCBhdXRvKTtcclxuXHRcdC5iZDtcclxuXHRcdC5iZHJzKDUwJSk7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2Vfc3VjY2VzcyB7XHJcblx0XHRib3JkZXItY29sb3I6I2QwZTRhODtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZkZmZmOTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojOGJjMzRhO1xyXG5cdFx0XHRjb250ZW50OidcXGU4YmUnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX2Vycm9yIHtcclxuXHRcdGJvcmRlci1jb2xvcjojZjdkMWQxO1xyXG5cdFx0YmFja2dyb3VuZC1jb2xvcjojZmZmZGZkO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbG9yOiNlYTUxNTE7XHJcblx0XHRcdGNvbnRlbnQ6J1xcZThjMic7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19ub3RpY2VfaW5mbyB7XHJcblx0XHRib3JkZXItY29sb3I6I2Q1ZGRlOTtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2ZhZmNmZjtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojNmU5NWQxO1xyXG5cdFx0XHRjb250ZW50OidcXGU4Y2YnO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfbm90aWNlX3dhcm5pbmcge1xyXG5cdFx0Ym9yZGVyLWNvbG9yOiNmMWNlYjc7XHJcblx0XHRiYWNrZ3JvdW5kLWNvbG9yOiNmZmZkZjk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29sb3I6I2ZkYjU0MztcclxuXHRcdFx0Y29udGVudDonXFxlYWU3JztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX25vdGljZV9kb3dubG9hZCB7XHJcblx0XHRib3JkZXItY29sb3I6I2M5ZTBjZDtcclxuXHRcdGJhY2tncm91bmQtY29sb3I6I2Y5ZmZmYTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb2xvcjojNjNiNjk4O1xyXG5cdFx0XHRjb250ZW50OidcXGU4ZWEnO1xyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaWNvbl93cmFwIHtcclxuXHQuY21zbWFzdGVyc19zaW1wbGVfaWNvbiB7XHJcblx0XHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSWNvbiBMaXN0ICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zIHtcclxuXHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0cGFkZGluZzowO1xyXG5cdG1hcmdpbjowO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0bGVmdDo1MHB4O1xyXG5cdFx0XHRyaWdodDphdXRvO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdHdpZHRoOjEwMHB4O1xyXG5cdFx0XHRoZWlnaHQ6MTAwcHg7XHJcblx0XHRcdG1hcmdpbjoxcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGZvbnQtc2l6ZTozMnB4O1xyXG5cdFx0XHRcdGxpbmUtaGVpZ2h0OjgwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0Ym9yZGVyLXdpZHRoOjEwcHg7XHJcblx0XHRcdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0XHRcdHdpZHRoOjEwMnB4O1xyXG5cdFx0XHRcdGhlaWdodDoxMDJweDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHR0b3A6LTFweDtcclxuXHRcdFx0XHRsZWZ0Oi0xcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fdGl0bGUge1xyXG5cdFx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfY29sb3JfdHlwZV9pY29uIHtcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdFx0Lm92aDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF9wb3NfcmlnaHQge1xyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0ge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdHJpZ2h0OjUwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2xpc3Qge1xyXG5cdFx0cGFkZGluZy1sZWZ0OjMwcHg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGxlZnQ6LTMycHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIHtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbSB7XHJcblx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDUwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdHRvcDo0MHB4O1xyXG5cdFx0XHRcdHotaW5kZXg6MTtcclxuXHRcdFx0XHQub3AoMCk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHRcdG1hcmdpbi1ib3R0b206MDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHQuZG47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLmNtc21hc3RlcnNfaWNvbl90eXBlX2ltYWdlIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOmNlbnRlciBjZW50ZXI7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDpuby1yZXBlYXQ7XHJcblx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaWNvbiB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdFx0XHR6LWluZGV4OjI7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKC41KTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdC5vcCguMyk7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24ge1xyXG5cdFx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1fY29udGVudCB7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2xpc3RfcG9zX2xlZnQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFsO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhbDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctcmlnaHQ6MzBweDtcclxuXHRcdFx0XHQuZmw7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2ljb25fbGlzdF9wb3NfcmlnaHQge1xyXG5cdFx0XHQuY21zbWFzdGVyc19pY29uX2xpc3RfaXRlbV9jb250ZW50IHtcclxuXHRcdFx0XHQudGFyO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtX3RleHQge1xyXG5cdFx0XHRcdFx0LnRhcjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctbGVmdDozMHB4O1xyXG5cdFx0XHRcdC5mcjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBJY29uIEJveCAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2ljb25fYm94IHtcclxuXHRib3JkZXItc3R5bGU6c29saWQ7XHJcblx0Ym9yZGVyLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YmVmb3JlLCBcclxuXHQuaWNvbl9ib3hfaGVhZGluZzpiZWZvcmUge1xyXG5cdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0fVxyXG5cdFxyXG5cdCYuYm94X2ljb25fdHlwZV9pbWFnZSwgXHJcblx0Ji5ib3hfaWNvbl90eXBlX251bWJlciB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF9oZWFkaW5nIHtcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1wb3NpdGlvbjpjZW50ZXIgY2VudGVyO1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZC1zaXplOmNvdmVyO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdFx0XHQudGFjO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfaWNvbl90b3Age1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6MzBweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuaWNvbl9ib3hfaW5uZXIge1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHRcclxuXHRcdFx0Lmljb25fYm94X3RleHQge1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fYm94X3RvcCB7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0cGFkZGluZzoyMHB4IDIwcHggMzBweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRmb250LXNpemU6MDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6MzVweDtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JltjbGFzcyo9XCIgY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0cGFkZGluZy10b3A6MTIwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Lmljb25fYm94X2lubmVyIHtcclxuXHRcdFx0LnRhYztcclxuXHRcdFx0XHJcblx0XHRcdC5pY29uX2JveF90ZXh0IHtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19pY29uX2JveF9sZWZ0IHtcclxuXHRcdGJvcmRlci13aWR0aDoxcHg7XHJcblx0XHRwYWRkaW5nOjIwcHggMjBweCAzMHB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDo0NXB4O1xyXG5cdFx0XHR3aWR0aDo0NXB4O1xyXG5cdFx0XHRoZWlnaHQ6NDVweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnRfdG9wIHtcclxuXHRcdHBhZGRpbmctbGVmdDo2MHB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZToyNHB4O1xyXG5cdFx0XHRsaW5lLWhlaWdodDo0NXB4O1xyXG5cdFx0XHR3aWR0aDo0NXB4O1xyXG5cdFx0XHRoZWlnaHQ6NDVweDtcclxuXHRcdFx0bWFyZ2luOjA7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IHtcclxuXHRcdGgxLCBcclxuXHRcdGgyLCBcclxuXHRcdGgzLCBcclxuXHRcdGg0LCBcclxuXHRcdGg1LCBcclxuXHRcdGg2IHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDoxNXB4O1xyXG5cdFx0XHRcdHZlcnRpY2FsLWFsaWduOmluaGVyaXQ7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnNjYWxlKDApO1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdGgxLCBcclxuXHRcdFx0aDIsIFxyXG5cdFx0XHRoMywgXHJcblx0XHRcdGg0LCBcclxuXHRcdFx0aDUsIFxyXG5cdFx0XHRoNiB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lmljb25fYm94X3RleHQge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToxMHB4O1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUb2dnbGVzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfdG9nZ2xlcyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlc19maWx0ZXIge1xyXG5cdFx0cGFkZGluZzowIDAgMTVweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190b2dnbGVfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDotMXB4O1xyXG5cdFx0XHRyaWdodDotMXB4O1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdD4gLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXMge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0ei1pbmRleDoxO1xyXG5cdFx0XHRcdC5wb3NfYWJzKDI2cHgsIDI2cHgsIGF1dG8sIDE1cHgpO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0LnBvc19hYnMoOHB4LCAycHgpO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmLmNtc21hc3RlcnNfdG9nZ2xlX3BsdXNfdmVydCB7XHJcblx0XHRcdFx0XHRcdHdpZHRoOjJweDtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjhweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gYSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwYWRkaW5nOjE4cHggNTVweCAxOHB4IDI1cHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZSB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdG9nZ2xlX2lubmVyIHtcclxuXHRcdFx0XHRwYWRkaW5nOjAgMjVweCAyMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuY3VycmVudF90b2dnbGUge1xyXG5cdFx0XHQuY21zbWFzdGVyc190b2dnbGVfdGl0bGUge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV9wbHVzX3ZlcnQge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdG9nZ2xlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudG9nZ2xlc19tb2RlX2FjY29yZGlvbiB7XHJcblx0XHQuY21zbWFzdGVyc190b2dnbGVfd3JhcCB7XHJcblx0XHRcdC5iZGw7XHJcblx0XHRcdC5iZHI7XHJcblx0XHRcdC5iZHQ7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRcdC5iZGI7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji50b2dnbGVzX21vZGVfdG9nZ2xlIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3RvZ2dsZV93cmFwIHtcclxuXHRcdFx0Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogVGFicyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3RhYnMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0LmNsX2FmdGVyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MTVweCAzMHB4IDE1cHggNjBweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Zm9udC1zaXplOjIwcHg7XHJcblx0XHRcdFx0XHRsaW5lLWhlaWdodDo0NnB4O1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdHdpZHRoOjI0cHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6NDhweDtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdFx0XHRcdG1hcmdpbjowIDAgMCAtLjFlbTtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0bGVmdDoyNXB4O1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYiB7XHJcblx0XHRcdGRpc3BsYXk6bm9uZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdC5jbF9hZnRlcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5hY3RpdmVfdGFiIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYudGFic19tb2RlX3RhYiB7XHJcblx0XHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0XHRvdmVyZmxvdzp2aXNpYmxlICFpbXBvcnRhbnQ7XHJcblx0XHRcdC5iZGI7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSB7XHJcblx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTotMXB4O1xyXG5cdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRoZWlnaHQ6M3B4O1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdHotaW5kZXg6MjtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdHBhZGRpbmc6MTZweCAyNXB4O1xyXG5cdFx0XHRcdFx0Ym9yZGVyOjFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo1NXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHQuY21zbWFzdGVyc190YWIge1xyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3RhYl9pbm5lciB7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjQ1cHggMCAyMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnRhYnNfbW9kZV90b3VyIHtcclxuXHRcdGRpc3BsYXk6dGFibGU7XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0d2lkdGg6MjMlO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdFx0b3ZlcmZsb3c6dmlzaWJsZSAhaW1wb3J0YW50O1xyXG5cdFx0XHQuYmRyO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDotMXB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFx0d2lkdGg6M3B4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdHRvcDowO1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0cGFkZGluZzoxNHB4IDIwcHg7XHJcblx0XHRcdFx0XHRib3JkZXI6MXB4IHNvbGlkIHRyYW5zcGFyZW50O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZzoxNHB4IDIwcHggMTRweCA1MHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MjBweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic193cmFwIHtcclxuXHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHR3aWR0aDo3NyU7XHJcblx0XHRcdHBhZGRpbmc6MCAwIDAgNDJweDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfdGFiIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc190YWJfaW5uZXIge1xyXG5cdFx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnRhYnNfcG9zX3JpZ2h0IHtcclxuXHRcdFx0ZGlyZWN0aW9uOnJ0bDtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCB7XHJcblx0XHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRcdGRpcmVjdGlvbjpsdHI7XHJcblx0XHRcdFx0LmJkbDtcclxuXHRcdFx0XHQuYmRyKDApO1xyXG5cdFx0XHRcdC50YXI7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6LTFweDtcclxuXHRcdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nOjE0cHggNTBweCAxNHB4IDIwcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW46MCAtMC4xZW0gMCAwO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0XHRyaWdodDoyMHB4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc190YWJzX3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmc6MCA0MnB4IDAgMDtcclxuXHRcdFx0XHRkaXJlY3Rpb246bHRyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFN0YXRzICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc3RhdHMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC50YWM7XHJcblx0XHJcblx0JjphZnRlciB7XHJcblx0XHQuY2xfYWZ0ZXI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHQuY21zbWFzdGVyc19zdGF0IHtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuc3RhdHNfbW9kZV9iYXJzIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY29udGFpbmVyIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoyMjBweDtcclxuXHRcdFx0XHRtYXJnaW46MCAwIDE1cHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdFx0Lm92aDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVycy1pY29uLVwiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdCZbY2xhc3NePVwiY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSwgXHJcblx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdIHtcclxuXHRcdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRcdGZvbnQtc2l6ZToxNnB4O1xyXG5cdFx0XHRcdFx0XHRcdG1hcmdpbjowO1xyXG5cdFx0XHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0XHRcdGxlZnQ6MTVweDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6MTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGxlZnQ6YXV0bztcclxuXHRcdFx0XHRcdFx0cmlnaHQ6MTVweDtcclxuXHRcdFx0XHRcdFx0dG9wOjEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNhbnZhcyB7XHJcblx0XHRcdFx0XHQuZG47XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc3RhdHNfdHlwZV92ZXJ0aWNhbCB7XHJcblx0XHRcdG1hcmdpbjowIC0yJTtcclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfd3JhcCB7XHJcblx0XHRcdFx0cGFkZGluZy1ib3R0b206MjBweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdGxlZnQ6MTBweDtcclxuXHRcdFx0XHRcdHRvcDotM3B4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvbnRhaW5lcl93cmFwIHtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MzBweDtcclxuXHRcdFx0XHRcdC5iZGw7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY29udGFpbmVyIHtcclxuXHRcdFx0XHRcdHdpZHRoOjYwJTtcclxuXHRcdFx0XHRcdG1hcmdpbi1sZWZ0Oi0xcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRib3R0b206MDtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdC5vdmg7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdFx0XHRcdFx0cmlnaHQ6MTVweDtcclxuXHRcdFx0XHRcdFx0XHR0b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlIHtcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTo1cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5zdGF0c190eXBlX2hvcml6b250YWwge1xyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0XHRcdHBhZGRpbmctYm90dG9tOjEwcHg7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjZweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOjM0cHg7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXQge1xyXG5cdFx0XHRcdFx0bWluLWhlaWdodDo0MHB4O1xyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdFx0aGVpZ2h0OjZweDtcclxuXHRcdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRcdGJvdHRvbTowO1xyXG5cdFx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2NvdW50ZXJfd3JhcCB7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDphdXRvO1xyXG5cdFx0XHRcdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0XHRcdFx0dG9wOmF1dG87XHJcblx0XHRcdFx0XHRcdFx0Ym90dG9tOjEzcHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdCY6YmVmb3JlLCBcclxuXHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdFx0XHRcdHRvcDphdXRvO1xyXG5cdFx0XHRcdFx0XHRcdGJvdHRvbToxM3B4O1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHQmW2NsYXNzXj1cImNtc21hc3RlcnMtaWNvbi1cIl0sIFxyXG5cdFx0XHRcdFx0XHQmW2NsYXNzKj1cIiBjbXNtYXN0ZXJzLWljb24tXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzc149XCJjbXNtYXN0ZXJzX3RoZW1lX2ljb25fXCJdLCBcclxuXHRcdFx0XHRcdFx0JltjbGFzcyo9XCIgY21zbWFzdGVyc190aGVtZV9pY29uX1wiXSB7XHJcblx0XHRcdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF90aXRsZSB7XHJcblx0XHRcdFx0XHRcdFx0XHRsZWZ0OjI2cHg7XHJcblx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRwYWRkaW5nLXRvcDoxMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLnN0YXRzX21vZGVfY2lyY2xlcyB7XHJcblx0XHQuY21zbWFzdGVyc19zdGF0X3dyYXAge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdFx0bWFyZ2luOjAgMCAyMHB4O1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHRcdC50YWM7XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9maWZ0aCB7XHJcblx0XHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9mb3VydGgge1xyXG5cdFx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5vbmVfdGhpcmQge1xyXG5cdFx0XHRcdHdpZHRoOjMzLjMlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmLm9uZV9oYWxmIHtcclxuXHRcdFx0XHR3aWR0aDo1MCU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub25lX2ZpcnN0IHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0IHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxODBweDtcclxuXHRcdFx0XHRoZWlnaHQ6OTBweDtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdG1hcmdpbjowIDAgQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19zdGF0X2lubmVyIHtcclxuXHRcdFx0XHRcdHdpZHRoOjE3MHB4O1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjE3MHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6NDdweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0bGVmdDo1cHg7XHJcblx0XHRcdFx0XHR0b3A6NXB4O1xyXG5cdFx0XHRcdFx0LmJkO1xyXG5cdFx0XHRcdFx0ei1pbmRleDoyO1xyXG5cdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0Zm9udC1zaXplOjI2cHg7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6LTEwcHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0XHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdGNhbnZhcyB7XHJcblx0XHRcdFx0XHR3aWR0aDoxODBweDtcclxuXHRcdFx0XHRcdGhlaWdodDoxODBweDtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcdFx0ei1pbmRleDoxO1xyXG5cdFx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5zdGF0X2hhc190aXRsZWljb24ge1xyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjI3cHg7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3RpdGxlLFxyXG5cdFx0XHQuY21zbWFzdGVyc19zdGF0X3N1YnRpdGxlIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdC50YWM7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTBweCAyMHB4IDA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3N0YXRfc3VidGl0bGUge1xyXG5cdFx0XHRcdHBhZGRpbmc6MjBweCAyMHB4IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ291bnRlcnMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19jb3VudGVycyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0LnRhYztcclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdC5jbF9hZnRlcjtcclxuXHR9XHJcblx0XHJcblx0Y2FudmFzIHtcclxuXHRcdC5kbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY291bnRlcl93cmFwIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDJweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0ZmxvYXQ6bm9uZTtcclxuXHRcdHZlcnRpY2FsLWFsaWduOnRvcDtcclxuXHRcdC50YWM7XHJcblx0XHRcclxuXHRcdCYub25lX2ZpZnRoIHtcclxuXHRcdFx0d2lkdGg6MjAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLm9uZV9mb3VydGgge1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX3RoaXJkIHtcclxuXHRcdFx0d2lkdGg6MzMuMyU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2hhbGYge1xyXG5cdFx0XHR3aWR0aDo1MCU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYub25lX2ZpcnN0IHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlciB7XHJcblx0XHRcdG1pbi1oZWlnaHQ6MTAwcHg7XHJcblx0XHRcdHBhZGRpbmc6MCAyMHB4O1xyXG5cdFx0XHRtYXJnaW46MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdFxyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdG1hcmdpbjozMHB4IDA7XHJcblx0XHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9jb3VudGVyX3dyYXAge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfdGl0bGUge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYuY291bnRlcl9oYXNfaWNvbiB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1sZWZ0OjA7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi1yaWdodDowO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5jb3VudGVyX2hhc19pbWFnZSB7XHJcblx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9pbm5lciB7XHJcblx0XHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRcdGJhY2tncm91bmQtcG9zaXRpb246Y2VudGVyIGNlbnRlcjtcclxuXHRcdFx0XHRcdFx0YmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0O1xyXG5cdFx0XHRcdFx0XHRiYWNrZ3JvdW5kLXNpemU6Y292ZXI7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfc3VidGl0bGUge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwYWRkaW5nLWJvdHRvbToyMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNvdW50ZXJzX3R5cGVfaG9yaXpvbnRhbCB7XHJcblx0XHQuY21zbWFzdGVyc19jb3VudGVyX3dyYXAge1xyXG5cdFx0XHQuY21zbWFzdGVyc19jb3VudGVyIHtcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwLFxyXG5cdFx0XHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl90aXRsZSB7XHJcblx0XHRcdFx0XHRcdG1hcmdpbi10b3A6M3B4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNvdW50ZXJzX3R5cGVfdmVydGljYWwge1xyXG5cdFx0LmNtc21hc3RlcnNfY291bnRlcl93cmFwIHtcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlciB7XHJcblx0XHRcdFx0LnRhYztcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX2lubmVyIHtcclxuXHRcdFx0XHRcdC50YWM7XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdC5jbXNtYXN0ZXJzX2NvdW50ZXJfY291bnRlcl93cmFwIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDoxMHB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQuY21zbWFzdGVyc19jb3VudGVyX3RpdGxlIHtcclxuXHRcdFx0XHRcdFx0bWFyZ2luLXRvcDotMXB4O1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY291bnRlcl9zdWJ0aXRsZSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENNU01BU1RFUlMgQnV0dG9uICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfYnV0dG9uIHtcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRwYWRkaW5nOjAgMjVweDtcclxuXHRjdXJzb3I6cG9pbnRlcjtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQuYmRycygycHgpO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGxpbmUtaGVpZ2h0OmluaGVyaXQgIWltcG9ydGFudDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoxMDtcclxuXHR9XHJcblx0XHJcblx0c3BhbiB7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdHotaW5kZXg6MTA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzIHtcclxuXHRcdGJhY2tncm91bmQ6bm9uZTtcclxuXHRcdGJvcmRlcjowO1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjAgQGxpbmVfaGVpZ2h0X3BhZDtcclxuXHRcdC5vdmg7XHJcblx0XHQuYmRycygwKTtcclxuXHRcdC5ieHNoX25vbmU7XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0LmJ4c2hfbm9uZTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2hvdmVyIHtcclxuXHRcdC5iZDtcclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV9sZWZ0IHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRsZWZ0OjA7XHJcblx0XHRcdHRvcDowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX3JpZ2h0IHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjA7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV90b3Age1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0aGVpZ2h0OjA7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2JvdHRvbSB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRoZWlnaHQ6MDtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHRib3R0b206MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX3ZlcnQge1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0d2lkdGg6MDtcclxuXHRcdFx0aGVpZ2h0OjEwNSU7XHJcblx0XHRcdGxlZnQ6NTAlO1xyXG5cdFx0XHR0b3A6NTAlO1xyXG5cdFx0XHQub3AoMCk7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpO1xyXG5cdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdHdpZHRoOjkwJTtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfaG9yIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjEwNSU7XHJcblx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjUwJTtcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTUwJSkgdHJhbnNsYXRlWSgtNTAlKTtcclxuXHRcdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6aG92ZXIge1xyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRoZWlnaHQ6NzUlO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9kaWFnIHtcclxuXHRcdC5iZDtcclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdHdpZHRoOjUwMCU7XHJcblx0XHRcdGhlaWdodDowO1xyXG5cdFx0XHRsZWZ0OjUwJTtcclxuXHRcdFx0dG9wOjUwJTtcclxuXHRcdFx0Lm9wKDApO1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtNTAlKSB0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZyk7XHJcblx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKC01MCUpIHRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRcdGhlaWdodDoxNzAlO1xyXG5cdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X3NoYWRvdyB7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTozcHg7XHJcblx0XHQuYnhzaGkoMCwgLTNweCwgMCwgMCwgLjIpO1xyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdFx0bWFyZ2luLXRvcDozcHg7XHJcblx0XHRcdC5ieHNoaSgwLCAwLCAwLCAwLCAuMDIpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZywgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnLCBcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlciwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2ludmVyc2Uge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRtYXJnaW46YXV0byAhaW1wb3J0YW50O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6cmdiYSgwLCAwLCAwLCAuMik7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0bGVmdDowO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2RhcmtfYmcsIFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9saWdodF9iZywgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2RpdmlkZXIge1xyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHRcdFx0LW1zLXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9saWdodF9iZyB7XHJcblx0XHQmOmFmdGVyIHtcclxuXHRcdFx0YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIC4yKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2RpdmlkZXIge1xyXG5cdFx0JjphZnRlciB7XHJcblx0XHRcdGJhY2tncm91bmQtY29sb3I6dHJhbnNwYXJlbnQ7XHJcblx0XHRcdC5iZHI7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9pbnZlcnNlIHtcclxuXHRcdC5iZDtcclxuXHRcclxuXHRcdCY6YWZ0ZXIge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfbGVmdCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX3JpZ2h0IHtcclxuXHRcdHBhZGRpbmctbGVmdDooQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xyXG5cdFx0cGFkZGluZy1yaWdodDooQGxpbmVfaGVpZ2h0X3BhZCAqIDIpO1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fc2xpZGVfbGVmdCB7XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdC5wb3NfYWJzKChAbGluZV9oZWlnaHRfcGFkICogMiksIGF1dG8sIC0oQGxpbmVfaGVpZ2h0X3BhZCAqIDIpLCBhdXRvKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX3JpZ2h0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnMoKEBsaW5lX2hlaWdodF9wYWQgKiAyKSwgYXV0bywgYXV0bywgLShAbGluZV9oZWlnaHRfcGFkICogMikpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2xlZnQsIFxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcCwgXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2JvdHRvbSB7XHJcblx0XHQuYmQ7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0LnBvc19hYnMoMTAwJSwgYXV0byk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHNwYW4ge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2xlZnQge1xyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRsZWZ0Oi0yMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3JpZ2h0IHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0cmlnaHQ6LTIwMCU7XHJcblx0XHR9XHJcblx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHNwYW4ge1xyXG5cdFx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XHJcblx0XHRcdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVYKC0yMDAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dG9wOi0yMDAlO1xyXG5cdFx0fVxyXG5cdFxyXG5cdFx0Jjpob3ZlciB7XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0c3BhbiB7XHJcblx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMCUpO1xyXG5cdFx0XHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHtcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0dG9wOjIwMCU7XHJcblx0XHR9XHJcblx0XHJcblx0XHQmOmhvdmVyIHtcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdHRvcDowO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRzcGFuIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoLTIwMCUpO1xyXG5cdFx0XHRcdC1vLXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3BheXBhbF9kb25hdGlvbnMgPiBmb3JtOmhvdmVyICsgLmNtc21hc3RlcnNfYnV0dG9uIHtcclxuXHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdG1hcmdpbi10b3A6M3B4O1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzppbnNldCAwIDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4wMik7XHJcblx0Ym94LXNoYWRvdzppbnNldCAwIDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4wMik7XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9jbGVhcl9zdHlsZXMge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6bm9uZTtcclxuXHRcdGJveC1zaGFkb3c6bm9uZTtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfc2xpZGVfbGVmdDphZnRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV9yaWdodDphZnRlciB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19zbGlkZV90b3A6YWZ0ZXIge1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX3NsaWRlX2JvdHRvbTphZnRlciB7XHJcblx0XHRoZWlnaHQ6MTAwJTtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfYmdfZXhwYW5kX3ZlcnQ6YWZ0ZXIge1xyXG5cdFx0d2lkdGg6OTAlO1xyXG5cdFx0b3BhY2l0eToxO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9iZ19leHBhbmRfaG9yOmFmdGVyIHtcclxuXHRcdGhlaWdodDo3NSU7XHJcblx0XHRvcGFjaXR5OjE7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2JnX2V4cGFuZF9kaWFnOmFmdGVyIHtcclxuXHRcdGhlaWdodDoxNzAlO1xyXG5cdFx0b3BhY2l0eToxO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9zaGFkb3cge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MDtcclxuXHRcdHRvcDozcHg7XHJcblx0XHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgMCAwIDAgMCByZ2JhKDAsIDAsIDAsIDAuMDIpO1xyXG5cdFx0Ym94LXNoYWRvdzppbnNldCAwIDAgMCAwIHJnYmEoMCwgMCwgMCwgMC4wMik7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGFya19iZzpiZWZvcmUsXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2xpZ2h0X2JnOmJlZm9yZSxcclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25fZGl2aWRlcjpiZWZvcmUge1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMS4zKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnNjYWxlKDEuMyk7XHJcblx0XHQtby10cmFuc2Zvcm06c2NhbGUoMS4zKTtcclxuXHRcdHRyYW5zZm9ybTpzY2FsZSgxLjMpO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX3NsaWRlX2xlZnQ6YmVmb3JlIHtcclxuXHRcdGxlZnQ6MDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9zbGlkZV9yaWdodDpiZWZvcmUge1xyXG5cdFx0cmlnaHQ6MDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9sZWZ0OmJlZm9yZSB7XHJcblx0XHRsZWZ0OjA7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfbGVmdCBzcGFuIHtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0LW1zLXRyYW5zZm9ybTp0cmFuc2xhdGVYKDIwMCUpO1xyXG5cdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVgoMjAwJSk7XHJcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWCgyMDAlKTtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodDpiZWZvcmUge1xyXG5cdFx0cmlnaHQ6MDtcclxuXHR9XHJcblxyXG5cdCYuY21zbWFzdGVyc19idXRfaWNvbl9ob3Zlcl9zbGlkZV9yaWdodCBzcGFuIHtcclxuXHRcdC13ZWJraXQtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0LW1vei10cmFuc2Zvcm06dHJhbnNsYXRlWCgtMjAwJSk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0LW8tdHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdFx0dHJhbnNmb3JtOnRyYW5zbGF0ZVgoLTIwMCUpO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX3RvcDpiZWZvcmUge1xyXG5cdFx0dG9wOjA7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfdG9wIHNwYW4ge1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdC1tb3otdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHQtbXMtdHJhbnNmb3JtOnRyYW5zbGF0ZVkoMjAwJSk7XHJcblx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgyMDAlKTtcclxuXHRcdHRyYW5zZm9ybTp0cmFuc2xhdGVZKDIwMCUpO1xyXG5cdH1cclxuXHJcblx0Ji5jbXNtYXN0ZXJzX2J1dF9pY29uX2hvdmVyX3NsaWRlX2JvdHRvbTpiZWZvcmUge1xyXG5cdFx0dG9wOjA7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfYnV0X2ljb25faG92ZXJfc2xpZGVfYm90dG9tIHNwYW4ge1xyXG5cdFx0LXdlYmtpdC10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHQtbW96LXRyYW5zZm9ybTp0cmFuc2xhdGVZKC0yMDAlKTtcclxuXHRcdC1tcy10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHQtby10cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0XHR0cmFuc2Zvcm06dHJhbnNsYXRlWSgtMjAwJSk7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIENvbnRhY3QgRm9ybSA3ICoqKioqKioqKioqKioqKioqKi9cclxuLndwY2Y3LWZvcm0ge1xyXG5cdEB7aW5wdXRfdGV4dH0sXHJcblx0c2VsZWN0LCBcclxuXHR0ZXh0YXJlYSxcclxuXHRvcHRpb24ge1xyXG5cdFx0bWluLXdpZHRoOjEwMHB4O1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogSG92ZXIgc2xpZGVyICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdGxpOmJlZm9yZSB7XHJcblx0XHQuZG47XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyB7XHJcblx0XHRsaXN0LXN0eWxlOm5vbmU7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0aGVpZ2h0OjFweDtcclxuXHRcdHBhZGRpbmc6MCAwIEBwcmVsb2FkZXJfYmxvZ19zdGFuZGFyZF9wYWQ7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0bGlzdC1zdHlsZTpub25lO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHR2aXNpYmlsaXR5OmhpZGRlbjtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0dG9wOjA7XHJcblx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHJcblx0XHRcdD4gZmlndXJlLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2Z1bGxfaW1nIHtcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdG1heC1oZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRpbWcge1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRtYXgtd2lkdGg6MTAwJTtcclxuXHRcdFx0XHRcdGhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0bWF4LWhlaWdodDoxMDAlO1xyXG5cdFx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMge1xyXG5cdFx0Zm9udC1zaXplOjA7XHJcblx0XHRsaW5lLWhlaWdodDowO1xyXG5cdFx0bWFyZ2luOjAgLTRweDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdHdvcmQtc3BhY2luZzotMXB4O1xyXG5cdFx0XHJcblx0XHQ+IGxpIHtcclxuXHRcdFx0d29yZC1zcGFjaW5nOm5vcm1hbDtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdGRpc3BsYXk6LW1vei1pbmxpbmUtc3RhY2s7XHJcblx0XHRcdHBhZGRpbmc6MTFweCA0cHggMDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0XHRcclxuXHRcdFx0YSB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdFx0LW1vei10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdFx0Lm9wKC4zKTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTAwJTtcclxuXHRcdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6aG92ZXI6YmVmb3JlIHtcclxuXHRcdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGltZyB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRpbWFnZS1yZW5kZXJpbmc6YXV0bztcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5ob3ZlcmVkX2l0ZW0gYTpiZWZvcmUge1xyXG5cdFx0XHRcdC5vcCgwKTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0Ji5zaG9ydGNvZGVfYW5pbWF0ZWQge1xyXG5cdFx0XHRcdGEge1xyXG5cdFx0XHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdHRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHRcdC5vcCgxKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5qc19ib2R5IC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyA+IGxpID4gZmlndXJlLmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX2Z1bGxfaW1nIGltZyB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ29udGVudCBzbGlkZXIgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19jb250ZW50X3NsaWRlciB7XHJcblx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdC5vdmg7XHJcblx0XHJcblx0Lml0ZW0gPiBpbWcge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0d2lkdGg6NDBweDtcclxuXHRcdFx0aGVpZ2h0OjEwMCU7XHJcblx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHR0b3A6MDtcclxuXHRcdFx0XHJcblx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0YmFja2dyb3VuZDpub25lO1xyXG5cdFx0XHRcdC5iZCgwKTtcclxuXHRcdFx0XHQucG9zX2FicygzMHB4LCAzMHB4KTtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHRzcGFuIHtcclxuXHRcdFx0XHRcdHdpZHRoOjEwcHg7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTRweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0XHRmb250LXNpemU6MjZweDtcclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdGxlZnQ6LTQwcHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLW5leHQge1xyXG5cdFx0XHRcdHJpZ2h0Oi00MHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCY6aG92ZXIge1xyXG5cdFx0Lm93bC1idXR0b25zIHtcclxuXHRcdFx0PiBkaXYge1xyXG5cdFx0XHRcdCYub3dsLXByZXYge1xyXG5cdFx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmLm93bC1uZXh0IHtcclxuXHRcdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEdhbGxlcnkgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19nYWxsZXJ5IHtcclxuXHRtYXJnaW46MCAwIDAgLTEwcHg7XHJcblx0cGFkZGluZzowO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2dhbGxlcnlfaXRlbSB7XHJcblx0XHRtaW4td2lkdGg6MTgwcHg7XHJcblx0XHRwYWRkaW5nOjAgMCAxMHB4IDEwcHg7XHJcblx0XHQuZmw7XHJcblx0XHQub3AoMCk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLnNob3J0Y29kZV9hbmltYXRlZCB7XHJcblx0XHRcdC5vcCgxKTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5jbXNtYXN0ZXJzX2NhcHRpb24ge1xyXG5cdFx0XHRmaWd1cmUge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZzoyMHB4IDIwcHggMTVweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0ZmlnY2FwdGlvbiB7XHJcblx0XHRcdFx0cGFkZGluZzoxNXB4IDAgMDtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uaWxpZ2h0Ym94LXRodW1ibmFpbHMuZGFyayAuaWxpZ2h0Ym94LXRodW1ibmFpbHMtZ3JpZCAuaWxpZ2h0Ym94LXRodW1ibmFpbCBpbWcge1xyXG5cdGltYWdlLXJlbmRlcmluZzphdXRvO1xyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFF1b3RlcyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXIge1xyXG5cdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRcclxuXHQuY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XHJcblx0XHRwYWRkaW5nOjAgMXB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC5xdW90ZV9jb250ZW50IHtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmLmNtc21hc3RlcnNfcXVvdGVzX3NsaWRlcl90eXBlX2JveCB7XHJcblx0XHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjI1cHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQub3ZoO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQucXVvdGVfY29udGVudCB7XHJcblx0XHRcdHBhZGRpbmc6MjVweCAzMHB4IDQwcHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUsIFxyXG5cdFx0XHQmOmFmdGVyIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRsZWZ0OjI1cHg7XHJcblx0XHRcdFx0Ym90dG9tOi0xMnB4O1xyXG5cdFx0XHRcdC5hcnJvd190b3BfbGVmdCgxMnB4LCAxMnB4KTtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjphZnRlciB7XHJcblx0XHRcdFx0bGVmdDoyNnB4O1xyXG5cdFx0XHRcdGJvdHRvbTotMTBweDtcclxuXHRcdFx0XHQuYXJyb3dfdG9wX2xlZnQoMTBweCwgMTBweCk7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX2luZm9fd3JhcCB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGU7XHJcblx0XHRcdC5vdmg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9pbWFnZSB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdFx0dmVydGljYWwtYWxpZ246dG9wO1xyXG5cdFx0XHRcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHR3aWR0aDo1MHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC53cmFwX3F1b3RlX3RpdGxlIHtcclxuXHRcdFx0ZGlzcGxheTp0YWJsZS1jZWxsO1xyXG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRcdHBhZGRpbmc6NXB4IDE1cHg7XHJcblx0XHRcdG1pbi13aWR0aDoxNTBweDtcclxuXHRcdFx0aGVpZ2h0OjUwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHQmOmhvdmVyIHtcclxuXHRcdFx0XHQub3AoLjYpO1xyXG5cdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX3N1YnRpdGxlIHtcclxuXHRcdFx0bWFyZ2luLXRvcDotMnB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0XHR3aWR0aDphdXRvO1xyXG5cdFx0XHRyaWdodDowO1xyXG5cdFx0XHRsZWZ0OmF1dG87XHJcblx0XHRcdGJvdHRvbTozMnB4O1xyXG5cdFx0XHRcclxuXHRcdFx0Lm93bC1wYWdlIHtcclxuXHRcdFx0XHQuYmQ7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXJfdHlwZV9jZW50ZXIge1xyXG5cdFx0LmNtc21hc3RlcnNfcXVvdGUge1xyXG5cdFx0XHRwYWRkaW5nLXRvcDo3NXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9jb250ZW50IHtcclxuXHRcdFx0cGFkZGluZzo3NXB4IDE0JSA1MHB4O1xyXG5cdFx0XHQudGFjO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6J1xcMjAxZCc7XHJcblx0XHRcdFx0Zm9udC1mYW1pbHk6J1JvYm90byBDb25kZW5zZWQnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MzBweDtcclxuXHRcdFx0XHRoZWlnaHQ6MzBweDtcclxuXHRcdFx0XHRsaW5lLWhlaWdodDoxMDBweDtcclxuXHRcdFx0XHRmb250LXNpemU6MTAwcHg7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0bGVmdDo1MCU7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6LTE1cHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LndyYXBfcXVvdGVfdGl0bGUge1xyXG5cdFx0XHRtYXJnaW4tdG9wOjE1cHg7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5xdW90ZV9zdWJ0aXRsZSB7XHJcblx0XHRcdG1hcmdpbi10b3A6LTFweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LnF1b3RlX2ltYWdlIHtcclxuXHRcdFx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0XHRcdFxyXG5cdFx0XHRpbWcge1xyXG5cdFx0XHRcdHdpZHRoOjYwcHg7XHJcblx0XHRcdFx0LmJkcnMoNTAlKTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQub3dsLWJ1dHRvbnMge1xyXG5cdFx0XHQ+IGRpdiB7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjUwJTtcclxuXHRcdFx0XHRtYXJnaW4tdG9wOi0xNXB4O1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHQuYmRycygwKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0Ji5vd2wtcHJldiB7XHJcblx0XHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCYub3dsLW5leHQge1xyXG5cdFx0XHRcdFx0cmlnaHQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi5xdW90ZV90aXRsZSB7XHJcblx0bWFyZ2luLWJvdHRvbTowO1xyXG59XHJcblxyXG4ucXVvdGVfY29udGVudF93cmFwIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG4uY21zbWFzdGVyc19xdW90ZV9pbm5lciB7XHJcblx0YmxvY2txdW90ZSB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0fVxyXG59XHJcblxyXG4ucXVvdGVfZ3JpZCB7XHJcblx0ZGlzcGxheTp0YWJsZTtcclxuXHRib3JkZXItc3BhY2luZzo0cHg7XHJcblx0Ym9yZGVyLWNvbGxhcHNlOnNlcGFyYXRlO1xyXG5cdG1hcmdpbjowIC00cHggMjBweCAtNHB4O1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcclxuXHQmLnF1b3RlX3R3byB7XHJcblx0XHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5xdW90ZV90aHJlZSB7XHJcblx0XHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHRcdHdpZHRoOjMzLjMzJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Ji5xdW90ZV9mb3VyIHtcclxuXHRcdC5jbXNtYXN0ZXJzX3F1b3RlIHtcclxuXHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQucXVvdGVfY29udGVudCB7XHJcblx0XHRtYXJnaW46MTJweCAwIDIxcHg7XHJcblx0XHRcclxuXHRcdHAge1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5xdW90ZV9pbmZvX3dyYXAge1xyXG5cdFx0ZGlzcGxheTp0YWJsZTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGVfaW5uZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nOjYwcHggNDBweCAyNXB4O1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGNvbnRlbnQ6J1xcMjAxZCc7XHJcblx0XHRcdGZvbnQtZmFtaWx5OidSb2JvdG8gQ29uZGVuc2VkJztcclxuXHRcdFx0Zm9udC1zaXplOjYwcHg7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjEwOHB4O1xyXG5cdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR3aWR0aDozN3B4O1xyXG5cdFx0XHRoZWlnaHQ6NThweDtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDotMXB4O1xyXG5cdFx0XHRsZWZ0OjQwcHg7XHJcblx0XHRcdC50YWM7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5xdW90ZV9pbWFnZSB7XHJcblx0XHRkaXNwbGF5OnRhYmxlLWNlbGw7XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcclxuXHRcdGltZyB7XHJcblx0XHRcdHdpZHRoOjUwcHg7XHJcblx0XHRcdC5iZHJzKDUwJSk7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC53cmFwX3F1b3RlX3RpdGxlIHtcclxuXHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdHZlcnRpY2FsLWFsaWduOm1pZGRsZTtcclxuXHR9XHJcblx0XHJcblx0LnF1b3RlX3N1YnRpdGxlIHtcclxuXHRcdG1hcmdpbi10b3A6LTNweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfcXVvdGUge1xyXG5cdFx0LmJkO1xyXG5cdH1cclxuXHRcclxuXHQucXVvdGVzX2xpc3Qge1xyXG5cdFx0ZGlzcGxheTp0YWJsZS1yb3c7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19xdW90ZSB7XHJcblx0XHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogUHJpY2luZyB0YWJsZXMgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19wcmljaW5nX3RhYmxlIHtcclxuXHRtYXJnaW46MCAtMjBweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHQub3ZoO1xyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3ByaWNpbmdfaXRlbSB7XHJcblx0XHR3aWR0aDoyNSU7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cGFkZGluZzowIDIwcHggNDBweDtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0LmZsO1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcmljaW5nX2l0ZW1faW5uZXIge1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggMCAzMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0LmJkO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDo2MHB4O1xyXG5cdFx0XHRcdGhlaWdodDoycHg7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0dG9wOjA7XHJcblx0XHRcdFx0bGVmdDozMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5wcmljaW5nX3RpdGxlIHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwYWRkaW5nOjAgMzBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmZlYXR1cmVfbGlzdCB7XHJcblx0XHRcdHBhZGRpbmctbGVmdDowO1xyXG5cdFx0XHRtYXJnaW46MCAzMHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0W2NsYXNzKj1cImNtc21hc3RlcnMtaWNvbi1cIl06YmVmb3JlLCBcclxuXHRcdFx0W2NsYXNzKj1cImNtc21hc3RlcnNfdGhlbWVfaWNvbl9cIl06YmVmb3JlIHtcclxuXHRcdFx0XHRtYXJnaW4tcmlnaHQ6MTBweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0bGkge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjhweDtcclxuXHRcdFx0XHRcclxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRhIHtcclxuXHRcdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19idXR0b24ge1xyXG5cdFx0XHRtYXJnaW46MjRweCAzMHB4IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC5jbXNtYXN0ZXJzX3ByaWNlX3dyYXAge1xyXG5cdFx0XHRwYWRkaW5nOjIwcHggMzBweCAzNXB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHQuYmR0O1xyXG5cdFx0XHQuYmRiO1xyXG5cdFx0XHRcclxuXHRcdFx0LmNtc21hc3RlcnNfY3VycmVuY3ksIFxyXG5cdFx0XHQuY21zbWFzdGVyc19wcmljZSwgXHJcblx0XHRcdC5jbXNtYXN0ZXJzX2NvaW5zIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHR2ZXJ0aWNhbC1hbGlnbjp0b3A7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC5jbXNtYXN0ZXJzX3BlcmlvZCB7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tdG9wOi03cHg7XHJcblx0XHRcdFx0XHRwYWRkaW5nOjAgMCAwIDIxcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0Ji5wcmljaW5nX2Jlc3Qge1xyXG5cdFx0XHQuY21zbWFzdGVyc19wcmljZV93cmFwIHtcclxuXHRcdFx0XHRtYXJnaW4tbGVmdDotMXB4O1xyXG5cdFx0XHRcdG1hcmdpbi1yaWdodDotMXB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYucHJpY2luZ19vbmUgLmNtc21hc3RlcnNfcHJpY2luZ19pdGVtIHtcclxuXHRcdHdpZHRoOjEwMCU7XHJcblx0fVxyXG5cdFxyXG5cdCYucHJpY2luZ190d28gLmNtc21hc3RlcnNfcHJpY2luZ19pdGVtIHtcclxuXHRcdHdpZHRoOjUwJTtcclxuXHR9XHJcblx0XHJcblx0Ji5wcmljaW5nX3RocmVlIC5jbXNtYXN0ZXJzX3ByaWNpbmdfaXRlbSB7XHJcblx0XHR3aWR0aDozMy4zMyU7XHJcblx0fVxyXG5cdFxyXG5cdCYucHJpY2luZ19mb3VyIC5jbXNtYXN0ZXJzX3ByaWNpbmdfaXRlbSB7XHJcblx0XHR3aWR0aDoyNSU7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEdvb2dsZSBNYXBzICoqKioqKioqKioqKioqKioqKi9cclxuLnJlc2l6YWJsZV9ibG9jayAuZ29vZ2xlX21hcCB7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRsZWZ0OjA7XHJcblx0dG9wOjA7XHJcblx0aGVpZ2h0OjEwMCU7XHJcbn1cclxuXHJcbi5nb29nbGVfbWFwIGltZyB7XHJcblx0bWF4LXdpZHRoOm5vbmU7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ2FwdGlvbiAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2ltZyB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHJcblx0Ji5jbXNtYXN0ZXJzX2ltYWdlX2wge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OkBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHQuZmw7XHJcblx0fVxyXG5cclxuXHQmLmNtc21hc3RlcnNfaW1hZ2VfciB7XHJcblx0XHRtYXJnaW4tbGVmdDpAbGluZV9oZWlnaHRfcGFkO1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQmLndpdGhfY2FwdGlvbiB7XHJcblx0XHRwYWRkaW5nOjIwcHggMjBweCAwIDIwcHg7XHJcblx0XHRib3JkZXItd2lkdGg6MXB4O1xyXG5cdFx0Ym9yZGVyLXN0eWxlOnNvbGlkO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19pbWdfY2FwdGlvbiB7XHJcblx0XHRwYWRkaW5nOjE1cHggMDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG59XHJcblxyXG4ud3AtY2FwdGlvbiB7XHJcblx0bWF4LXdpZHRoOjEwMCU7XHJcblx0cGFkZGluZzowO1xyXG5cdG1hcmdpbi1ib3R0b206QGxpbmVfaGVpZ2h0X3BhZDtcclxuXHQuYmQ7XHJcblx0XHJcblx0Ji5hbGlnbmNlbnRlciB7XHJcblx0XHRtYXJnaW4tbGVmdDphdXRvO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OmF1dG87XHJcblx0fVxyXG5cdFxyXG5cdCYuYWxpZ25sZWZ0IHtcclxuXHRcdG1hcmdpbi1yaWdodDoyNXB4O1xyXG5cdH1cclxuXHRcclxuXHQmLmFsaWducmlnaHQge1xyXG5cdFx0bWFyZ2luLWxlZnQ6MjVweDtcclxuXHR9XHJcblx0XHJcblx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHRwYWRkaW5nOjE1cHggMDtcclxuXHRcdC50YWM7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdQIEdhbGxlcnkgKioqKioqKioqKioqKioqKioqL1xyXG4uZ2FsbGVyeSB7XHJcblx0bWFyZ2luOjAgLTIwcHg7XHJcbn1cclxuXHJcbi5nYWxsZXJ5LWl0ZW0ge1xyXG5cdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdHBhZGRpbmc6MCAyMHB4O1xyXG5cdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHJcblx0LndwLWNhcHRpb24tdGV4dCB7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHR9XHJcblx0XHJcblx0LmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTIgJiB7XHJcblx0XHR3aWR0aDo1MCU7XHJcblx0fVxyXG5cdFxyXG5cdC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy0zICYge1xyXG5cdFx0d2lkdGg6MzMuMzMlO1xyXG5cdH1cclxuXHRcclxuXHQuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNCAmIHtcclxuXHRcdHdpZHRoOjI1JTtcclxuXHR9XHJcblx0XHJcblx0LmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTUgJiB7XHJcblx0XHR3aWR0aDoyMCU7XHJcblx0fVxyXG5cdFxyXG5cdC5nYWxsZXJ5LmdhbGxlcnktY29sdW1ucy02ICYge1xyXG5cdFx0d2lkdGg6MTYuNjYlO1xyXG5cdH1cclxuXHRcclxuXHQuZ2FsbGVyeS5nYWxsZXJ5LWNvbHVtbnMtNyAmIHtcclxuXHRcdHdpZHRoOjE0LjI4JTtcclxuXHR9XHJcblx0XHJcblx0LmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTggJiB7XHJcblx0XHR3aWR0aDoxMi41JTtcclxuXHR9XHJcblx0XHJcblx0LmdhbGxlcnkuZ2FsbGVyeS1jb2x1bW5zLTkgJiB7XHJcblx0XHR3aWR0aDoxMS4xMSU7XHJcblx0fVxyXG5cdFxyXG5cdC5nYWxsZXJ5LWljb24ge1xyXG5cdFx0cGFkZGluZzoyMHB4O1xyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZ2FsbGVyeS1jYXB0aW9uIHtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0cGFkZGluZzowIDIwcHggMTVweDtcclxuXHRcdG1hcmdpbi10b3A6LTVweDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogU2lkZWJhciAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3NpZGViYXIge1xyXG5cdG1hcmdpbjowIC1AY29sX21hcjtcclxuXHRcclxuXHRhc2lkZSB7XHJcblx0XHRtYXJnaW46MCBAY29sX21hcjtcclxuXHRcdGZsb2F0OmxlZnQ7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTQxNDE0MTQge1xyXG5cdGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTQxNDEyIHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyAyKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDEyMTQge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzEyMTQxNCB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gMikgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgxMDAlIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMTMxMzEzIHtcclxuXHRhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzM0MTQge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoKDEwMCUgKiAzKSAvIDQpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xNDM0IHtcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKDEwMCUgLyA0KSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbCArIGFzaWRlICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDMpIC8gNCkgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG59XHJcblxyXG4uc2lkZWJhcl9sYXlvdXRfMjMxMyB7XHJcblx0PiBhc2lkZTpmaXJzdC1jaGlsZCwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlIHtcclxuXHRcdHdpZHRoOnJvdW5kKCgoMTAwJSAqIDIpIC8gMykgLSAoQGNvbF9tYXIgKiAyKSwgMik7XHJcblx0fVxyXG5cdFxyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQgKyBhc2lkZSwgXHJcblx0PiBkaXYuY2wgKyBhc2lkZSArIGFzaWRlLCBcclxuXHQ+IGRpdi5jbXNtYXN0ZXJzX3dpZGdldF9kaXZpZGVyICsgYXNpZGUgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzEzMjMge1xyXG5cdD4gYXNpZGU6Zmlyc3QtY2hpbGQsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNtc21hc3RlcnNfd2lkZ2V0X2RpdmlkZXIgKyBhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDMpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxuXHRcclxuXHQ+IGFzaWRlOmZpcnN0LWNoaWxkICsgYXNpZGUsIFxyXG5cdD4gZGl2LmNsICsgYXNpZGUgKyBhc2lkZSwgXHJcblx0PiBkaXYuY21zbWFzdGVyc193aWRnZXRfZGl2aWRlciArIGFzaWRlICsgYXNpZGUge1xyXG5cdFx0d2lkdGg6cm91bmQoKCgxMDAlICogMikgLyAzKSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcbn1cclxuXHJcbi5zaWRlYmFyX2xheW91dF8xMjEyIHtcclxuXHRhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgoMTAwJSAvIDIpIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuLnNpZGViYXJfbGF5b3V0XzExIHtcclxuXHRhc2lkZSB7XHJcblx0XHR3aWR0aDpyb3VuZCgxMDAlIC0gKEBjb2xfbWFyICogMiksIDIpO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBTaGFyZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3NoYXJpbmcge1xyXG5cdC5vdmg7XHJcbn1cclxuXHJcbi5zaGFyZV93cmFwIHtcclxuXHRmbG9hdDpsZWZ0O1xyXG5cdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRtYXJnaW4tcmlnaHQ6MjBweDtcclxuXHRcclxuXHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdC5zb2NpYWxfdmVydGljYWwgJiB7XHJcblx0XHRmbG9hdDpub25lO1xyXG5cdFx0bWFyZ2luLXJpZ2h0OjA7XHJcblx0fVxyXG5cclxuXHRhIHtcclxuXHRcdGN1cnNvcjpwb2ludGVyO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBUd2l0dGVyIFN0cmlwZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3R3aXR0ZXJfd3JhcCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX3R3aXR0ZXIge1xyXG5cdC5jbXNtYXN0ZXJzX3R3aXR0ZXJfaXRlbSB7XHJcblx0XHRwYWRkaW5nOjAgNTBweCAwIDQ1cHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHR9XHJcblx0XHJcblx0LnB1Ymxpc2hlZCB7XHJcblx0XHRwYWRkaW5nOjAgMTVweCAwIDA7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHRvcDo1MCU7XHJcblx0XHRsZWZ0OjQ1cHg7XHJcblx0XHR3aWR0aDoxMTBweDtcclxuXHRcdGhlaWdodDoyMHB4O1xyXG5cdFx0bWFyZ2luLXRvcDotMTBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtIHtcclxuXHRcdHBhZGRpbmctcmlnaHQ6ODBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfdHdpdHRlcl9pdGVtX2NvbnRlbnQge1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdHBhZGRpbmc6MCAwIDAgMTYwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5vd2wtYnV0dG9ucyB7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OjA7XHJcblx0XHR0b3A6NTAlO1xyXG5cdFx0bWFyZ2luLXRvcDotMTVweDtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDozcHg7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdC5iZHJzKDApO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gc3BhbiB7XHJcblx0XHRcdFx0XHRoZWlnaHQ6MTFweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi50d3JfaWNvbiB7XHJcblx0Zm9udC1zaXplOjI2cHg7XHJcblx0bGluZS1oZWlnaHQ6MjZ4O1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0LnBvc19hYnMoMWVtLCAxZW0sIDAsIGF1dG8sIC00cHgpO1xyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdG1hcmdpbjowICFpbXBvcnRhbnQ7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIERyb3BjYXAgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc19kcm9wY2FwIHtcclxuXHRtYXJnaW46NXB4IDMzcHggNXB4IDIzcHg7XHJcblx0bGluZS1oZWlnaHQ6NTBweDtcclxuXHQuZmw7XHJcblx0XHJcblx0Ji50eXBlMiB7XHJcblx0XHR3aWR0aDo0NnB4O1xyXG5cdFx0aGVpZ2h0OjQ2cHg7XHJcblx0XHQuYmRycyg1MCUpO1xyXG5cdFx0LnRhYztcclxuXHRcdG1hcmdpbjo1cHggMjVweCA1cHggMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogQ2xpZW50cyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyIHtcclxuXHRtYXJnaW46MCAwIDMwcHg7XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0PiBzcGFuIHtcclxuXHRcdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdFx0aGVpZ2h0OjExcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdGhlaWdodDoxODBweDtcclxuXHRsaW5lLWhlaWdodDoxODBweDtcclxuXHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0XHJcblx0aW1nIHtcclxuXHRcdGRpc3BsYXk6aW5saW5lLWJsb2NrO1xyXG5cdFx0cGFkZGluZzoyMHB4O1xyXG5cdFx0bWF4LXdpZHRoOjEwMCU7XHJcblx0XHRtYXgtaGVpZ2h0OjEwMCU7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdHdpZHRoOmF1dG87XHJcblx0XHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcblx0fVxyXG5cdFxyXG5cdGEge1xyXG5cdFx0bGluZS1oZWlnaHQ6MTgwcHg7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0aGVpZ2h0OjEwMCU7XHJcblx0fVxyXG59XHJcblxyXG4uY21zbWFzdGVyc19jbGllbnRzX2dyaWQge1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxuXHRcclxuXHQmLmNsaWVudHNfZml2ZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjAlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MjUlO1xyXG5cdH1cclxuXHRcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtIHtcclxuXHRcdHdpZHRoOjMzLjMzJTtcclxuXHR9XHJcblx0XHJcblx0Ji5jbGllbnRzX3R3byAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6NTAlO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW1zIHtcclxuXHRcdGhlaWdodDphdXRvO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0ZmxvYXQ6bGVmdDtcclxuXHRcdFxyXG5cdFx0aW1nIHtcclxuXHRcdFx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjUpO1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdHRyYW5zZm9ybTpzY2FsZSguNSk7XHJcblx0XHRcdC5vcCguMSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuc2hvcnRjb2RlX2FuaW1hdGVkIHtcclxuXHRcdFx0aW1nIHtcclxuXHRcdFx0XHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHQtbW96LXRyYW5zZm9ybTpzY2FsZSgxKTtcclxuXHRcdFx0XHR0cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c19vbmUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOmxhc3QtY2hpbGQsXHJcblx0Ji5jbGllbnRzX29uZSAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW0ge1xyXG5cdFx0d2lkdGg6MTAwJTtcclxuXHRcdGZsb2F0Om5vbmU7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHRcdGxpbmUtaGVpZ2h0OjA7XHJcblx0fVxyXG5cdFxyXG5cdCYuY2xpZW50c190d28gLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgybisxKSxcclxuXHQmLmNsaWVudHNfdGhyZWUgLmNtc21hc3RlcnNfY2xpZW50c19pdGVtOm50aC1jaGlsZCgzbisxKSxcclxuXHQmLmNsaWVudHNfZm91ciAuY21zbWFzdGVyc19jbGllbnRzX2l0ZW06bnRoLWNoaWxkKDRuKzEpLFxyXG5cdCYuY2xpZW50c19maXZlIC5jbXNtYXN0ZXJzX2NsaWVudHNfaXRlbTpudGgtY2hpbGQoNW4rMSkge1xyXG5cdFx0Y2xlYXI6Ym90aDtcclxuXHR9XHJcbn1cclxuXHJcbi5jbXNtYXN0ZXJzX2NsaWVudHNfc2xpZGVyIHtcclxuXHRwYWRkaW5nOjAgNTBweDtcclxuXHRcclxuXHQub3dsLXBhZ2luYXRpb24ge1xyXG5cdFx0Ym90dG9tOjA7XHJcblx0XHRcclxuXHRcdC5vd2wtcGFnZSB7XHJcblx0XHRcdC5iZDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDo1MCU7XHJcblx0XHRcdG1hcmdpbi10b3A6LTE1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmLm93bC1wcmV2IHtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCYub3dsLW5leHQge1xyXG5cdFx0XHRcdHJpZ2h0OjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0V2lkZ2V0cyBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi53aWRnZXQge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHBhZGRpbmc6MCAwIEBsaW5lX2hlaWdodF9wYWQ7XHJcblx0XHJcblx0LnNpZGViYXIgJiB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjUwcHg7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHJcblx0XHQmOmxhc3QtY2hpbGQge1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdC53aWRnZXR0aXRsZSB7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MjVweDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHR9XHJcblx0XHJcblx0dWwge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdHBhZGRpbmc6N3B4IDA7XHJcblx0XHRcdC5iZHQ7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmR0KDApO1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGxpOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmR0O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5ib3R0b21faW5uZXIgJiB7XHJcblx0XHQud2lkZ2V0dGl0bGUge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdHdpZHRoOjUwcHg7XHJcblx0XHRcdFx0aGVpZ2h0OjJweDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0OjA7XHJcblx0XHRcdFx0Ym90dG9tOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcbi53aWRnZXRfYXJjaGl2ZSxcclxuLndpZGdldF9jYXRlZ29yaWVzLFxyXG4ud2lkZ2V0X21ldGEsXHJcbi53aWRnZXRfcGFnZXMsXHJcbi53aWRnZXRfcmVjZW50X2NvbW1lbnRzLFxyXG4ud2lkZ2V0X3JlY2VudF9lbnRyaWVzIHtcclxuXHR1bCB7XHJcblx0XHRsaSB7XHJcblx0XHRcdHBhZGRpbmctbGVmdDoyNnB4O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6J1xcZTg4OCc7XHJcblx0XHRcdFx0Zm9udC1zaXplOjEycHg7XHJcblx0XHRcdFx0d2lkdGg6MTRweDtcclxuXHRcdFx0XHR0b3A6MTJweDtcclxuXHRcdFx0XHRsZWZ0OjFweDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0dG9wOjVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IEJvb2tpbmcgKioqKioqKioqKioqKioqKioqL1xyXG4uY21zbWFzdGVyc193cmFwX3RhYmxlIHtcclxuXHRvdmVyZmxvdzphdXRvO1xyXG59XHJcblxyXG4ud2lkZ2V0X2N1c3RvbV9ib29raW5nX2VudHJpZXMge1xyXG5cdGRpc3BsYXk6dGFibGU7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRcclxuXHQuYm9va2luZ190aXRsZSB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjMwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfY29udGVudCB7XHJcblx0XHRsaSB7XHJcblx0XHRcdHBhZGRpbmc6MTBweCAwO1xyXG5cdFx0XHQuYmR0O1xyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkdCgwKTtcclxuXHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXRfYm9va2luZ19jZWxsIHtcclxuXHRcdGRpc3BsYXk6dGFibGUtY2VsbDtcclxuXHRcdHBhZGRpbmc6MzBweDtcclxuXHRcdFxyXG5cdFx0Ji5ib29raW5nX29uZV9mb3VydGgge1xyXG5cdFx0XHR3aWR0aDoyNSU7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCYuYm9va2luZ19vbmVfaGFsZiB7XHJcblx0XHRcdHdpZHRoOjUwJTtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmJ1dHRvbiwgXHJcblx0XHRpbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5cdFx0aW5wdXRbdHlwZT1idXR0b25dLCBcclxuXHRcdGJ1dHRvbiB7XHJcblx0XHRcdHdpZHRoOjEwMCU7XHJcblx0XHRcdGhlaWdodDozOHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRAe2lucHV0X3RleHR9LFxyXG5cdHRleHRhcmVhLFxyXG5cdHNlbGVjdCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHR0ZXh0YXJlYSB7XHJcblx0XHRoZWlnaHQ6YXV0bztcclxuXHR9XHJcblx0XHJcblx0c3Bhbi53cGNmNy1ub3QtdmFsaWQtdGlwIHtcclxuXHRcdHBhZGRpbmc6NXB4IDE1cHg7XHJcblx0XHRtYXJnaW46NXB4IDA7XHJcblx0fVxyXG59XHJcblxyXG4uc2VsZWN0X2Fycm93IHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHRzZWxlY3Qge1xyXG5cdFx0LXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7XHJcblx0XHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcclxuXHRcdGFwcGVhcmFuY2U6bm9uZTtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6bm9uZTtcclxuXHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0ei1pbmRleDoyO1xyXG5cdFx0XHJcblx0XHQmOjotbXMtZXhwYW5kIHtcclxuXHRcdFx0ZGlzcGxheTpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQmOmFmdGVyIHtcclxuXHRcdGNvbnRlbnQ6J1xcZWIyMCc7XHJcblx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0bGluZS1oZWlnaHQ6MTBweDtcclxuXHRcdGZvbnQtc2l6ZToxNHB4O1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdGhlaWdodDoxMHB4O1xyXG5cdFx0d2lkdGg6MTBweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0cmlnaHQ6MTFweDtcclxuXHRcdHRvcDoxNXB4O1xyXG5cdFx0ei1pbmRleDoxO1xyXG5cdH1cclxufVxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBDdXN0b20gTWVudSAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfbmF2X21lbnUgPiBkaXYgPiB1bCB7XHJcblx0cGFkZGluZzowO1xyXG5cdFxyXG5cdHVsIHtcclxuXHRcdG1hcmdpbjowO1xyXG5cdH1cclxuXHRcclxuXHRsaSB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaTpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0PiBhIHtcclxuXHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0XHRcdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFx0XHRcclxuXHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6Jyc7XHJcblx0XHRcdFx0ZGlzcGxheTpibG9jaztcclxuXHRcdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRcdGhlaWdodDoycHg7XHJcblx0XHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdFx0Ym90dG9tOi0xcHg7XHJcblx0XHRcdFx0bGVmdDowO1xyXG5cdFx0XHRcdG9wYWNpdHk6MDtcclxuXHRcdFx0XHR6LWluZGV4OjI7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdCY6aG92ZXI6YmVmb3JlIHtcclxuXHRcdFx0XHQub3AoMSk7XHJcblx0XHRcdH1cclxuXHJcblx0XHRcdCY6ZW1wdHkge1xyXG5cdFx0XHRcdC5kbjtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQmLmN1cnJlbnRfcGFnZV9pdGVtIHtcclxuXHRcdFx0PiBhOmJlZm9yZSB7XHJcblx0XHRcdFx0Lm9wKDEpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdD4gbGkge1xyXG5cdFx0PiBhIHtcclxuXHRcdFx0cGFkZGluZy1sZWZ0OjA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdCY6bGFzdC1jaGlsZCB7XHJcblx0XHRcdD4gYTpiZWZvcmUge1xyXG5cdFx0XHRcdGNvbnRlbnQ6bm9uZTtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IHVsIHtcclxuXHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6OHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy1ib3R0b206OHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0XHRcclxuXHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo0MHB4O1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjZweDtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWJvdHRvbTo2cHg7XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1sZWZ0OjYwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjZweDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1ib3R0b206NnB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHBhZGRpbmctbGVmdDo4MHB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6NnB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0cGFkZGluZy1ib3R0b206NnB4O1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQWR2ZXJ0aXNlbWVudCAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2FkdmVydGlzZW1lbnRfZW50cmllcyB7XHJcblx0LndpZGdldHRpdGxlIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MjVweDtcclxuXHR9XHJcblx0XHJcblx0LmFkdl9pbWFnZV93cmFwIHtcclxuXHRcdG1hcmdpbjotNXB4O1xyXG5cdFx0b3ZlcmZsb3c6aGlkZGVuO1xyXG5cdFx0XHJcblx0XHQuYWR2X3dpZGdldF9pbWFnZSB7XHJcblx0XHRcdHdpZHRoOjEyNXB4O1xyXG5cdFx0XHRoZWlnaHQ6MTI1cHg7XHJcblx0XHRcdGZsb2F0OmxlZnQ7XHJcblx0XHRcdG1hcmdpbjo1cHg7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBGYWNlYm9vayAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2ZhY2Vib29rX2VudHJpZXMgaWZyYW1lIHtcclxuXHRtYXJnaW4tYm90dG9tOjA7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IFBhZ2VzIGFuZCBDYXRlZ29yaWVzICoqKioqKioqKioqKioqKioqKi9cclxuLndpZGdldF9wYWdlcyB1bCB1bCxcclxuLndpZGdldF9jYXRlZ29yaWVzIHVsIHVsIHtcclxuXHRtYXJnaW4tbGVmdDowO1xyXG5cdFxyXG5cdGxpOmZpcnN0LWNoaWxkIHtcclxuXHRcdHBhZGRpbmc6N3B4IDA7XHJcblx0fVxyXG59XHJcblxyXG4ud2lkZ2V0X3BhZ2VzIGxpID4gdWwsXHJcbi53aWRnZXRfY2F0ZWdvcmllcyBsaSA+IHVsIHtcclxuXHRwYWRkaW5nLXRvcDo3cHg7XHJcblx0bWFyZ2luLWJvdHRvbTotN3B4O1xyXG59XHJcblxyXG4ud2lkZ2V0X3BhZ2VzIHVsLFxyXG4ud2lkZ2V0X2NhdGVnb3JpZXMgdWwge1xyXG5cdD4gbGkge1xyXG5cdFx0PiB1bCB7XHJcblx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MTVweDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHQ+IGxpIHtcclxuXHRcdFx0XHRcdFx0PiBhIHtcclxuXHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6MzBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0XHQ+IGEge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6NDVweDtcclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0XHRcdFx0XHRcdD4gYSB7XHJcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLWxlZnQ6NjBweDtcclxuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0XHR9XHJcblx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdH1cclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IENvbnRhY3QgSW5mbyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfaW5mb19lbnRyaWVzIHNwYW4ge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcbn1cclxuXHJcbi5jb250YWN0X3dpZGdldF9uYW1lLFxyXG4uY29udGFjdF93aWRnZXRfZW1haWwsXHJcbi5jb250YWN0X3dpZGdldF91cmwsXHJcbi5jb250YWN0X3dpZGdldF9waG9uZSxcclxuLmFkcmVzc193cmFwIHtcclxuXHRwYWRkaW5nLWxlZnQ6MzNweDtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHQmOmJlZm9yZSB7XHJcblx0XHRmb250LXNpemU6MTZweDtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0bGVmdDowO1xyXG5cdFx0dG9wOjJweDtcclxuXHR9XHJcbn1cclxuXHJcbi5jb250YWN0X3dpZGdldF9uYW1lLFxyXG4uY29udGFjdF93aWRnZXRfZW1haWwsXHJcbi5jb250YWN0X3dpZGdldF91cmwsXHJcbi5jb250YWN0X3dpZGdldF9waG9uZSB7XHJcblx0cGFkZGluZy1ib3R0b206MjBweDtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgVHdpdHRlciAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX3R3aXR0ZXJfZW50cmllcyB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0LnR3ZWV0X2xpc3Qge1xyXG5cdFx0bGkge1xyXG5cdFx0XHQuYmQ7XHJcblx0XHRcdC5iZHQoMCk7XHJcblx0XHRcdHBhZGRpbmc6MTVweCAyMHB4IDI1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmR0O1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjE1cHg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdC50d2VldF90aW1lIHtcclxuXHRcdFx0XHRwYWRkaW5nLWxlZnQ6MjdweDtcclxuXHRcdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdGNvbnRlbnQ6J1xcZWI5YSc7XHJcblx0XHRcdFx0XHRmb250LXNpemU6MTVweDtcclxuXHRcdFx0XHRcdGZvbnQtZmFtaWx5Oidmb250ZWxsbyc7XHJcblx0XHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHRcdHRvcDotMXB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0LnR3ZWV0X3RleHQge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0cGFkZGluZy10b3A6MTVweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxufVxyXG5cclxuLndpZGdldF9jYXRlZ29yaWVzLCBcclxuLndpZGdldF9hcmNoaXZlIHtcclxuXHQ+IC5zY3JlZW4tcmVhZGVyLXRleHQge1xyXG5cdFx0LmRuO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgQ2FsZW5kYXIgKioqKioqKioqKioqKioqKioqL1xyXG4jd3AtY2FsZW5kYXIge1xyXG5cdGJvcmRlci1zcGFjaW5nOjA7XHJcblx0d2lkdGg6YXV0bztcclxuXHRtaW4td2lkdGg6MjAwcHg7XHJcblx0XHJcblx0Y2FwdGlvbiB7XHJcblx0XHR0ZXh0LWFsaWduOmxlZnQ7XHJcblx0XHRwYWRkaW5nOjEwcHggMTVweDtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OidcXGViMWUnO1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRmb250LXNpemU6MTRweDtcclxuXHRcdFx0bGVmdDoycHg7XHJcblx0XHRcdHRvcDoxMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0dGQsIFxyXG5cdHRoIHtcclxuXHRcdHBhZGRpbmc6NXB4IDA7XHJcblx0fVxyXG5cdFxyXG5cdHRmb290IHtcclxuXHRcdGEge1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IEZsaWNrciAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX2ZsaWNrcl9lbnRyaWVzIHtcclxuXHQud3JhcCB7XHJcblx0XHRtYXJnaW46MCAtN3B4O1xyXG5cdH1cclxuXHRcclxuXHQubW9yZV9idXR0b24ge1xyXG5cdFx0ZGlzcGxheTpub25lO1xyXG5cdH1cclxuXHRcclxuXHQuZmxpY2tyX2JhZGdlX2ltYWdlIHtcclxuXHRcdG1hcmdpbjowIDdweCAxNHB4O1xyXG5cdFx0LmZsO1xyXG5cdH1cclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBXaWRnZXQgUG9zdHMgVGFicyAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX3RhYnMubHByIHtcclxuXHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcclxuXHRsaSB7XHJcblx0XHQuYmQoMCk7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc190YWJzX2xpc3Qge1xyXG5cdFx0LnRhbDtcclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNfdGFic19saXN0X2l0ZW0ge1xyXG5cdFx0XHR3aWR0aDozMy4zMiU7XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGEge1xyXG5cdFx0XHRcdHBhZGRpbmc6MTJweCAxMHB4IDhweDtcclxuXHRcdFx0XHQudGFjO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnNfd3JhcCB7XHJcblx0XHRwYWRkaW5nLXRvcDoyMHB4O1xyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc190YWIge1xyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHRsaSB7XHJcblx0XHRcdFx0cGFkZGluZzoxMHB4IDA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0cCB7XHJcblx0XHRcdHBhZGRpbmc6MDtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfbHByX2ltZyB7XHJcblx0XHRtYXJnaW4tcmlnaHQ6MjBweDtcclxuXHRcdC5mbDtcclxuXHRcdFxyXG5cdFx0LmltZ19wbGFjZWhvbGRlcl9zbWFsbCB7XHJcblx0XHRcdHdpZHRoOjUwcHg7XHJcblx0XHRcdGhlaWdodDo1MHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRpbWcge1xyXG5cdFx0XHR3aWR0aDo1MHB4O1xyXG5cdFx0XHQuYmRycyg1MCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19scHJfY29udCB7XHJcblx0XHQub3ZoO1xyXG5cdFx0cGFkZGluZy10b3A6NXB4O1xyXG5cdH1cclxuXHRcclxuXHQucHVibGlzaGVkIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIFdpZGdldCBSU1MgKioqKioqKioqKioqKioqKioqL1xyXG4ud2lkZ2V0X3JzcyB7XHJcblx0dWwge1xyXG5cdFx0bGkge1xyXG5cdFx0XHRwYWRkaW5nOjE1cHggMDtcclxuXHRcdFx0Lm92aDtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50Om5vbmU7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdGNpdGUge1xyXG5cdFx0XHRcdC5mcjtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHRwYWRkaW5nLWJvdHRvbTowO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uaWNsZmxhZyB7XHJcblx0ZGlzcGxheTppbmxpbmU7XHJcbn1cclxuXHJcbi5yc3MtZGF0ZSB7XHJcblx0ZGlzcGxheTpibG9jaztcclxufVxyXG5cclxuLnJzc1N1bW1hcnkge1xyXG5cdHBhZGRpbmctdG9wOjEwcHg7XHJcbn1cclxuXHJcbi5yc3N3aWRnZXQgaW1nIHtcclxuXHRtYXJnaW46MCAzcHggMnB4IDA7XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogV2lkZ2V0IExhdGVzdCBhbmQgUG9wdWxhciBQcm9qZWN0cyAqKioqKioqKioqKioqKioqKiovXHJcbi53aWRnZXRfY3VzdG9tX3BvcHVsYXJfcHJvamVjdHNfZW50cmllcyxcclxuLndpZGdldF9jdXN0b21fbGF0ZXN0X3Byb2plY3RzX2VudHJpZXMge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSB7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjYwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5pbWdfcGxhY2Vob2xkZXIge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRwYWRkaW5nLWJvdHRvbTpAcHJlbG9hZGVyX2Jsb2dfbWFzb25yeV9wYWQ7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0LmJkO1xyXG5cdFx0XHJcblx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdGZvbnQtc2l6ZTo0MHB4O1xyXG5cdFx0XHQucG9zX2FicztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LnBqX2RkbiB7XHJcblx0XHQuYmQ7XHJcblx0XHQuYmR0KDApO1xyXG5cdFx0cGFkZGluZzoxNXB4IDIwcHg7XHJcblx0XHRcclxuXHRcdC5lbnRyeS10aXRsZSB7XHJcblx0XHRcdG1hcmdpbjowO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQuY21zbWFzdGVyc19wcm9qZWN0X2NvbnRlbnQge1xyXG5cdFx0XHRtYXJnaW4tdG9wOjE1cHg7XHJcblx0XHRcdFxyXG5cdFx0XHRwIHtcclxuXHRcdFx0XHRwYWRkaW5nOjA7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmNtc21hc3RlcnNMaWtlLFxyXG5cdFx0LmNtc21hc3RlcnNfcG9zdF9jb21tZW50cyB7XHJcblx0XHRcdG1hcmdpbjoxNXB4IDEwcHggMCAwO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Lm93bC1idXR0b25zIHtcclxuXHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0cmlnaHQ6MDtcclxuXHRcdHRvcDotNTBweDtcclxuXHRcdFxyXG5cdFx0PiBkaXYge1xyXG5cdFx0XHQ+IHNwYW4ge1xyXG5cdFx0XHRcdHdpZHRoOjI2cHg7XHJcblx0XHRcdFx0aGVpZ2h0OjI2cHg7XHJcblx0XHRcdFx0bWFyZ2luLWxlZnQ6M3B4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG5cclxuXHJcbi8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovXHJcbi8qXHRTZWFyY2ggKyBBcmNoaXZlcyArIFNpdGVtYXAgKyBFcnJvciArIE90aGVyIFN0eWxlc1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuLyoqKioqKioqKioqKioqKioqIEFyY2hpdmVzICsgU2VhcmNoICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfc2VhcmNoLCBcclxuLmNtc21hc3RlcnNfYXJjaGl2ZSB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0Lm92aDtcclxuXHRcclxuXHQuY21zbWFzdGVyc193cmFwX3BhZ2luYXRpb24ge1xyXG5cdFx0bWFyZ2luLXRvcDo1MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfYXJjaGl2ZSB7XHJcblx0LmFib3V0X2F1dGhvciB7XHJcblx0XHRwYWRkaW5nOjAgMCA1MHB4O1xyXG5cdH1cclxufVxyXG5cclxuLmNtc21hc3RlcnNfYXJjaGl2ZV90eXBlIHtcclxuXHRwYWRkaW5nOjYwcHggMCAwO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0JjpmaXJzdC1vZi10eXBlIHtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0fVxyXG5cdFxyXG5cdC5wcmVsb2FkZXIge1xyXG5cdFx0cGFkZGluZy1ib3R0b206QHByZWxvYWRlcl9hcmNoaXZlc19wYWQ7XHJcblx0XHRcclxuXHRcdCYuaGlnaEltZyB7XHJcblx0XHRcdGhlaWdodDphdXRvO1xyXG5cdFx0XHRwYWRkaW5nOjA7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9pbWdfd3JhcCB7XHJcblx0XHRtYXJnaW46MCAzMHB4IDAgMDtcclxuXHRcdHdpZHRoOjIzJTtcclxuXHRcdC5mbDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXJjaGl2ZV9pdGVtX2NvbnRfd3JhcCB7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdHlwZSB7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faGVhZGVyIHtcclxuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV90aXRsZSB7XHJcblx0XHR3b3JkLXdyYXA6YnJlYWstd29yZDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fY29udGVudCB7XHJcblx0XHRwYWRkaW5nOjAgMCAyMHB4O1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHQub3ZoO1xyXG5cdFx0XHJcblx0XHRwIHtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1faW5mbyB7XHJcblx0XHRwYWRkaW5nOjEwcHggMCAwO1xyXG5cdFx0Lm92aDtcclxuXHRcdC5iZHQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2FyY2hpdmVfaXRlbV9kYXRlX3dyYXAge1xyXG5cdFx0cGFkZGluZzowIDAgMCAxMHB4O1xyXG5cdFx0LmZyO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hcmNoaXZlX2l0ZW1fdXNlcl9uYW1lIHtcclxuXHRcdHBhZGRpbmc6MCAyMHB4IDAgMDtcclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogU2l0ZW1hcCAqKioqKioqKioqKioqKioqKiovXHJcblxyXG4uY21zbWFzdGVyc19zaXRlbWFwX3dyYXAge1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblxyXG5cdHVsLCBcclxuXHRvbCwgXHJcblx0bGkge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19kaXZpZGVyIHtcclxuXHRcdG1hcmdpbi1ib3R0b206MzBweDtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcCB7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdC5vdmg7XHJcblx0XHRcclxuXHRcdD4gbGkge1xyXG5cdFx0XHR3aWR0aDoxMDAlO1xyXG5cdFx0XHRwYWRkaW5nLXRvcDozMHB4O1xyXG5cdFx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFx0XHJcblx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRjb250ZW50OicnO1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHRoZWlnaHQ6MXB4O1xyXG5cdFx0XHRcdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdFx0XHRcdGxlZnQ6MDtcclxuXHRcdFx0XHR0b3A6MDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0bWFyZ2luLXRvcDowO1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRcdFx0Y29udGVudDpub25lO1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiBhIHtcclxuXHRcdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0XHRtYXJnaW4tYm90dG9tOjM1cHg7XHJcblx0XHRcdFx0XHJcblx0XHRcdFx0KyB1bCB7XHJcblx0XHRcdFx0XHRtYXJnaW4tdG9wOi0xMHB4O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0PiB1bCB7XHJcblx0XHRcdFx0d2lkdGg6MTAwJTtcclxuXHRcdFx0XHQub3ZoO1xyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0d2lkdGg6MjUlO1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MDtcclxuXHRcdFx0XHRcdHBhZGRpbmctcmlnaHQ6MjBweDtcclxuXHRcdFx0XHRcdG1hcmdpbi1ib3R0b206NDBweDtcclxuXHRcdFx0XHRcdC5mbDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoNSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMTMpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDE3KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMjUpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDI5KSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHRcdFx0JjpudGgtY2hpbGQoMzcpLCBcclxuXHRcdFx0XHRcdCY6bnRoLWNoaWxkKDQxKSwgXHJcblx0XHRcdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdFx0XHRjbGVhcjpib3RoO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHQ+IHVsIHtcclxuXHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MjBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0XHR1bCB7XHJcblx0XHRcdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdGxpIHtcclxuXHRcdFx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0XHRcdFx0XHJcblx0XHRcdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdFx0XHRwYWRkaW5nLXRvcDowO1xyXG5cdFx0XHRcdFx0XHRcdH1cclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0XHRcclxuXHRcdFx0XHRcdFx0PiBsaSB7XHJcblx0XHRcdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHRcdFx0fVxyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX2NhdGVnb3J5IHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoyMHB4O1xyXG5cdFx0XHRtYXJnaW4tYm90dG9tOjQwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdD4gdWwge1xyXG5cdFx0XHRcdHBhZGRpbmctdG9wOjIwcHg7XHJcblx0XHRcdFxyXG5cdFx0XHRcdHVsIHtcclxuXHRcdFx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0XHRsaSB7XHJcblx0XHRcdFx0XHRtYXJnaW4tbGVmdDoyMHB4O1xyXG5cdFx0XHRcdFx0cGFkZGluZy10b3A6MTBweDtcclxuXHRcdFx0XHRcdFxyXG5cdFx0XHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0XHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcdFx0XHR9XHJcblx0XHRcdFx0fVxyXG5cdFx0XHRcdFxyXG5cdFx0XHRcdD4gbGkge1xyXG5cdFx0XHRcdFx0bWFyZ2luLWxlZnQ6MDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc2l0ZW1hcF9hcmNoaXZlIHtcclxuXHRcdHBhZGRpbmc6NXB4IDAgMjBweDtcclxuXHRcdG1hcmdpbjowO1xyXG5cdFx0Lm92aDtcclxuXHRcdFxyXG5cdFx0PiBsaSB7XHJcblx0XHRcdHdpZHRoOjI1JTtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbToyMHB4O1xyXG5cdFx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHRcdC5mbDtcclxuXHRcdFx0XHJcblx0XHRcdCY6bnRoLWNoaWxkKDUpLCBcclxuXHRcdFx0JjpudGgtY2hpbGQoOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgxNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyMSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyNSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgyOSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzMyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCgzNyksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0MSksIFxyXG5cdFx0XHQmOm50aC1jaGlsZCg0NSkge1xyXG5cdFx0XHRcdGNsZWFyOmJvdGg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRXJyb3IgKioqKioqKioqKioqKioqKioqL1xyXG4uZXJyb3Ige1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LnNlYXJjaF9iYXJfd3JhcCB7XHJcblx0XHRtYXJnaW46MCBhdXRvIDQwcHg7XHJcblx0XHR3aWR0aDo0MDBweDtcclxuXHRcdG1heC13aWR0aDoxMDAlO1xyXG5cdFx0ZGlzcGxheTpibG9jaztcclxuXHR9XHJcblx0XHJcblx0LmVycm9yX3N1YnRpdGxlIHtcclxuXHRcdHRleHQtYWxpZ246Y2VudGVyO1xyXG5cdFx0bWFyZ2luLWJvdHRvbTo1MHB4O1xyXG5cdH1cclxuXHRcclxuXHQuZXJyb3JfdGl0bGUge1xyXG5cdFx0Zm9udC1zaXplOjIyMHB4O1xyXG5cdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRsaW5lLWhlaWdodDoxZW07XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MTAwcHggMDtcclxuXHR9XHJcblxyXG5cdC5lcnJvcl9pbm5lciB7XHJcblx0XHRtYXJnaW4tYm90dG9tOjYwcHg7XHJcblx0fVxyXG5cdFxyXG5cdC5lcnJvcl9idXR0b25fd3JhcCB7XHJcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdHBhZGRpbmctYm90dG9tOjUwcHg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIEF0dGFjaG1lbnQgUGFnZSAqKioqKioqKioqKioqKioqKiovXHJcbi5jbXNtYXN0ZXJzX2F0dGFjaF9pbWcge1xyXG5cdHBhZGRpbmc6NDBweCAwO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdC5vdmg7XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYXR0YWNoX2ltZ19pbmZvIHtcclxuXHRcdHBhZGRpbmc6MCAwIDIwcHg7XHJcblx0XHRtYXJnaW46MCAwIDMwcHg7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdC5iZGI7XHJcblx0XHQub3ZoO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19hdHRhY2hfaW1nX2VkaXQge1xyXG5cdFx0bWFyZ2luOjA7XHJcblx0XHRwYWRkaW5nOjA7XHJcblx0XHQuZnI7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2F0dGFjaF9pbWdfbWV0YSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHRcdC5vdmg7XHJcblx0fVxyXG59XHJcblxyXG5cclxuLyoqKioqKioqKioqKioqKioqIE90aGVyICoqKioqKioqKioqKioqKioqKi9cclxuI21haW4ge1xyXG5cdC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIGlucHV0LCBcclxuXHQjd3Bjb250ZW50IC53aXRoX2ZybV9zdHlsZSAuZnJtX2Zvcm1fZmllbGRzIHNlbGVjdCwgXHJcblx0LndpdGhfZnJtX3N0eWxlIC5mcm1fZm9ybV9maWVsZHMgc2VsZWN0LCBcclxuXHQud2l0aF9mcm1fc3R5bGUgLmZybV9mb3JtX2ZpZWxkcyB0ZXh0YXJlYSB7XHJcblx0XHRwYWRkaW5nOkBpbnB1dF9wYWQ7XHJcblx0fVxyXG59XHJcblxyXG4jbGFuZ19zZWwgdWwge1xyXG5cdG92ZXJmbG93OnZpc2libGU7XHJcbn1cclxuXHJcbiNsYW5nX3NlbF9mb290ZXIge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuXHJcbi8qKioqKioqKioqKioqKioqKiBQYXlQYWwgRG9uYXRpb25zICoqKioqKioqKioqKioqKioqKi9cclxuLmNtc21hc3RlcnNfcGF5cGFsX2RvbmF0aW9ucyB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHJcblx0PiBmb3JtIHtcclxuXHRcdD4gLnBheXBhbC1kb25hdGlvbnMge1xyXG5cdFx0XHRpbnB1dFt0eXBlPVwiaW1hZ2VcIl0ge1xyXG5cdFx0XHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRcdFx0ei1pbmRleDoxMDA7XHJcblx0XHRcdFx0LnBvc19hYnMoMTAwJSwgMTAwJSk7XHJcblx0XHRcdFx0Lm9wKDApO1xyXG5cdFx0XHR9XHJcblx0XHRcdFxyXG5cdFx0XHQ+IGltZyB7XHJcblx0XHRcdFx0LmRuO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2J1dHRvbiB7XHJcblx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHR6LWluZGV4OjEwO1xyXG5cdH1cclxufVxyXG5cclxuXHJcblxyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG4vKlx0Q29udGFjdCBGb3JtcyBTdHlsZXNcclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciB7XHJcblx0bWFyZ2luOjAgLUBjb2xfbWFyO1xyXG5cdFxyXG5cdC5zdWNjZXNzX2JveCB7XHJcblx0XHRtYXJnaW46MCBAY29sX21hciAxMHB4O1xyXG5cdFx0d2lkdGg6cm91bmQoMTAwJSAtIChAY29sX21hciAqIDIpLCAyKTtcclxuXHR9XHJcblx0XHJcblx0LmZvcm1faW5mbyB7XHJcblx0XHRtYXJnaW46MCBAY29sX21hcjtcclxuXHRcdHBhZGRpbmctYm90dG9tOjE1cHggIWltcG9ydGFudDtcclxuXHRcdFxyXG5cdFx0Ji5zdWJtaXRfd3JhcCB7XHJcblx0XHRcdHBhZGRpbmctdG9wOjEwcHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLFxyXG5cdFtjbGFzcyo9XCJvbmVfXCJdIHNlbGVjdCxcclxuXHRbY2xhc3MqPVwib25lX1wiXSB0ZXh0YXJlYSB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxufVxyXG5cclxuc3Bhbi53cGNmNy1saXN0LWl0ZW0ge1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcbn1cclxuXHJcbi5wYWdlICNmYnVpbGRlciB7XHJcblx0bGFiZWwge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC5maWVsZHMge1xyXG5cdFx0cGFkZGluZy1ib3R0b206MTBweDtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0XHRcclxuXHRcdD4gZGl2W2lkXj1cImZpZWxkbmFtZVwiXSB7XHJcblx0XHRcdG1hcmdpbjowIC0xMHB4O1xyXG5cdFx0XHRcclxuXHRcdFx0LmZpZWxkcyB7XHJcblx0XHRcdFx0cGFkZGluZy1sZWZ0OjEwcHg7XHJcblx0XHRcdFx0cGFkZGluZy1yaWdodDoxMHB4O1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdD4gbGFiZWwge1xyXG5cdFx0XHRkaXNwbGF5OiBibG9jaztcclxuXHRcdFx0cGFkZGluZy1ib3R0b206NXB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGZpZWxkc2V0IHtcclxuXHRcdFx0bWFyZ2luLWJvdHRvbTowO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRmaWVsZHNldCB7XHJcblx0XHQ+IC5maWVsZHMge1xyXG5cdFx0XHRwYWRkaW5nLWxlZnQ6MTBweDtcclxuXHRcdFx0cGFkZGluZy1yaWdodDoxMHB4O1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQuZGZpZWxkIHtcclxuXHRcdD4gZGl2IHtcclxuXHRcdFx0bWFyZ2luLXRvcDoxMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHQ+IGlucHV0IHtcclxuXHRcdFx0bWFyZ2luLXRvcDo1cHg7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdC5jb2RlcGVvcGxlY2FsY3VsYXRlZGZpZWxkIHtcclxuXHRcdGhlaWdodDo0MnB4O1xyXG5cdFx0cGFkZGluZy1sZWZ0OjIwcHg7XHJcblx0XHRwYWRkaW5nLXJpZ2h0OjIwcHg7XHJcblx0XHQuYmQoMCk7XHJcblx0fVxyXG59XHJcblxyXG4jZmJ1aWxkZXIgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgLmZpZWxkX2JlZm9yZSxcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIC5maWVsZF9iZWZvcmUge1xyXG5cdHdpZHRoOiAxN3B4O1xyXG5cdGhlaWdodDogMTlweDtcclxufVxyXG5cclxuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbCxcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIC5maWVsZF9iZWZvcmUsXHJcbiNmYnVpbGRlciBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyAuZmllbGRfYmVmb3JlLFxyXG5ib2R5IC5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIGxhYmVsLCBcclxuYm9keSAuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbCB7XHJcblx0cGFkZGluZy1sZWZ0OjI4cHg7XHJcblx0cGFkZGluZy1yaWdodDowO1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdGN1cnNvcjpwb2ludGVyO1xyXG5cdC5mbDtcclxufVxyXG5cclxuLndwY2Y3LWxpc3QtaXRlbSBsYWJlbCB7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcblx0cGFkZGluZzo1cHggMDtcclxufVxyXG5cclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSxcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdLCBcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdLFxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0ge1xyXG5cdHBvc2l0aW9uOmFic29sdXRlO1xyXG5cdHRvcDowO1xyXG5cdGxlZnQ6MDtcclxuXHQuZmw7XHJcblx0Lm9wKDApO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmFmdGVyLFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDphZnRlcixcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIC5maWVsZF9iZWZvcmU6YWZ0ZXIge1xyXG5cdGNvbnRlbnQ6J1xcZWFiYic7XHJcblx0Zm9udC1mYW1pbHk6J2ZvbnRlbGxvJztcclxuXHRmb250LXNpemU6MTRweDtcclxuXHRmb250LXdlaWdodDpib2xkO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0dG9wOi0xcHg7XHJcblx0bGVmdDozcHg7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoLjc1KTtcclxuXHQtbW96LXRyYW5zZm9ybTpzY2FsZSguNzUpO1xyXG5cdHRyYW5zZm9ybTpzY2FsZSguNzUpO1xyXG5cdC5vcCgwKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgbGFiZWw6YWZ0ZXIsXHJcbiNmYnVpbGRlciBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyAuZmllbGRfYmVmb3JlOmFmdGVyIHtcclxuXHRjb250ZW50OicnO1xyXG5cdGRpc3BsYXk6YmxvY2s7XHJcblx0d2lkdGg6MTBweDtcclxuXHRoZWlnaHQ6MTBweDtcclxuXHRvcGFjaXR5OjA7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0dG9wOjVweDtcclxuXHRsZWZ0OjRweDtcclxuXHQtd2Via2l0LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHQtbW96LXRyYW5zZm9ybTpzY2FsZSgwKTtcclxuXHR0cmFuc2Zvcm06c2NhbGUoMCk7XHJcblx0LnRhYztcclxuXHQuYmRycyg1MCUpO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJjaGVja2JveFwiXTpjaGVja2VkICsgbGFiZWw6YWZ0ZXIsXHJcbiNmYnVpbGRlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl06Y2hlY2tlZCArIC5maWVsZF9iZWZvcmU6YWZ0ZXIsXHJcbi53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcclxuLmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cInJhZGlvXCJdOmNoZWNrZWQgKyBsYWJlbDphZnRlcixcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXTpjaGVja2VkICsgLmZpZWxkX2JlZm9yZTphZnRlciB7XHJcblx0LXdlYmtpdC10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0LW1vei10cmFuc2Zvcm06c2NhbGUoMSk7XHJcblx0dHJhbnNmb3JtOnNjYWxlKDEpO1xyXG5cdC5vcCgxKTtcclxufVxyXG5cclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDpiZWZvcmUsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyBsYWJlbDpiZWZvcmUsXHJcbiNmYnVpbGRlciBpbnB1dFt0eXBlPVwiY2hlY2tib3hcIl0gKyAuZmllbGRfYmVmb3JlOmJlZm9yZSxcclxuLndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDpiZWZvcmUsIFxyXG4uY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDpiZWZvcmUsXHJcbiNmYnVpbGRlciBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyAuZmllbGRfYmVmb3JlOmJlZm9yZSB7XHJcblx0Y29udGVudDonJztcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG5cdHdpZHRoOjE3cHg7XHJcblx0aGVpZ2h0OjE3cHg7XHJcblx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0bGVmdDowO1xyXG5cdHRvcDoxcHg7XHJcblx0LmJkO1xyXG59XHJcblxyXG4ud3BjZjcgZm9ybS53cGNmNy1mb3JtIHNwYW4ud3BjZjctbGlzdC1pdGVtIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIHNwYW4ud3BjZjctbGlzdC1pdGVtLWxhYmVsOmJlZm9yZSwgXHJcbi5jbXNtYXN0ZXJzLWZvcm0tYnVpbGRlciAuY2hlY2tfcGFyZW50IGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIGxhYmVsOmJlZm9yZSxcclxuI2ZidWlsZGVyIGlucHV0W3R5cGU9XCJyYWRpb1wiXSArIC5maWVsZF9iZWZvcmU6YmVmb3JlIHtcclxuXHR3aWR0aDoxOHB4O1xyXG5cdGhlaWdodDoxOHB4O1xyXG5cdC5iZHJzKDUwJSk7XHJcbn1cclxuXHJcbi53aWRnZXRfY3VzdG9tX2NvbnRhY3RfZm9ybV9lbnRyaWVzIHtcclxuXHRAe2lucHV0X3RleHR9LFxyXG5cdHRleHRhcmVhLFxyXG5cdHNlbGVjdCB7XHJcblx0XHR3aWR0aDoxMDAlO1xyXG5cdH1cclxuXHRcclxuXHQuZm9ybV9pbmZvLnN1Ym1pdF93cmFwIHtcclxuXHRcdHBhZGRpbmctdG9wOjA7XHJcblx0fVxyXG59XHJcblxyXG4ud3BjZjctZm9ybS1jb250cm9sLXdyYXAge1xyXG5cdG1hcmdpbi1ib3R0b206MjBweDtcclxuXHRkaXNwbGF5OmJsb2NrO1xyXG59XHJcblxyXG4ud3BjZjctbWFpbC1zZW50LW9rIHtcclxuXHQub3ZoO1xyXG59XHJcblxyXG5Ac3VwcG9ydHMgKC1tcy1hY2NlbGVyYXRvcjp0cnVlKSB7XHJcblx0LndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcclxuXHQuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlcixcclxuXHQjZmJ1aWxkZXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgLmZpZWxkX2JlZm9yZTphZnRlciB7XHJcblx0XHR0b3A6NXB4O1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlLnZlcnRpY2FsIC5wcm9maWxlOmJlZm9yZSB7XHJcblx0XHRsZWZ0OjA7XHJcblx0fVxyXG59XHJcblxyXG4uY3VzdG9tX3N1YnNjcmliZSB7XHJcblx0LndpZGdldF93eXNpamEge1xyXG5cdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0fVxyXG5cdFxyXG5cdC53aWRnZXR0aXRsZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHR9XHJcblx0XHJcblx0Lnd5c2lqYS1wYXJhZ3JhcGgge1xyXG5cdFx0cGFkZGluZzowO1xyXG5cdH1cclxuXHRcclxuXHRAe2lucHV0X3RleHR9IHtcclxuXHRcdGhlaWdodDpAaW5wdXRfaGVpZ2h0O1xyXG5cdH1cclxuXHRcclxuXHQud3lzaWphLXN1Ym1pdC1maWVsZCB7XHJcblx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdHJpZ2h0OjA7XHJcblx0XHRib3R0b206MDtcclxuXHRcdGxpbmUtaGVpZ2h0OjM2cHg7XHJcblx0XHQtd2Via2l0LWJvcmRlci1yYWRpdXM6MCAyMHB4IDIwcHggMDtcclxuXHRcdGJvcmRlci1yYWRpdXM6MCAyMHB4IDIwcHggMDtcclxuXHR9XHJcbn1cclxuXHJcbiNwYWdlIHtcclxuXHQjc2lnbnVwLWNvbnRlbnQge1xyXG5cdFx0cGFkZGluZzo2MHB4IDAgNDBweDtcclxuXHR9XHJcblx0XHJcblx0Lm11X3JlZ2lzdGVyICB7XHJcblx0XHRpbnB1dFt0eXBlPXN1Ym1pdF0sIFxyXG5cdFx0I2Jsb2dfdGl0bGUsIFxyXG5cdFx0I3VzZXJfZW1haWwsIFxyXG5cdFx0I2Jsb2duYW1lLCBcclxuXHRcdCN1c2VyX25hbWUge1xyXG5cdFx0XHRmb250LXNpemU6aW5oZXJpdDtcclxuXHRcdFx0d2lkdGg6YXV0bztcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0bGFiZWwge1xyXG5cdFx0XHRmb250LXNpemU6aW5oZXJpdDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6aW5oZXJpdDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0LmVycm9yIHtcclxuXHRcdFx0cGFkZGluZzoxNXB4IDIwcHg7XHJcblx0XHRcdG1hcmdpbi1ib3R0b206MTBweDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6aW5oZXJpdDtcclxuXHRcdFx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0XHRcdG92ZXJmbG93OnZpc2libGU7XHJcblx0XHRcdFxyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0Y29udGVudDonJztcclxuXHRcdFx0XHRkaXNwbGF5OmJsb2NrO1xyXG5cdFx0XHRcdHdpZHRoOjJweDtcclxuXHRcdFx0XHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRcdFx0XHRsZWZ0Oi0xcHg7XHJcblx0XHRcdFx0dG9wOi0xcHg7XHJcblx0XHRcdFx0Ym90dG9tOi0xcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcbn1cclxuXHJcblxyXG5cclxuLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cclxuLypcdENTUzMgQW5pbWF0aW9ucyAqL1xyXG4vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xyXG5cclxuaHRtbC5jc3N0cmFuc2l0aW9ucyB7XHJcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIgLmNtc21hc3RlcnNfaW1hZ2VfbGluayBzcGFuOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc0xpa2U6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3Bvc3RfY29tbWVudHM6YmVmb3JlLFxyXG5cdCNoZWFkZXIgLm5hdmlnYXRpb24gLmNtc21hc3RlcnNfcmVzcF9uYXZfdG9nZ2xlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX2JvdCAuc2VhcmNoX3dyYXAgLnNlYXJjaF90b2dnbGUge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3RvZ2dsZXMgLmNtc21hc3RlcnNfdG9nZ2xlX3dyYXA6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3RhYnMgLmNtc21hc3RlcnNfdGFic19saXN0IC5jbXNtYXN0ZXJzX3RhYnNfbGlzdF9pdGVtOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pbWdfcm9sbG92ZXJfd3JhcCAuY21zbWFzdGVyc19pbWdfcm9sbG92ZXIsXHJcblx0LmNtc21hc3RlcnNfd3JhcF9wYWdpbmF0aW9uIHVsIGxpIGEucGFnZS1udW1iZXJzLFxyXG5cdC5oZWFkZXJfbWlkX2J1dCB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5pbWdfcGxhY2Vob2xkZXJfc21hbGwsXHJcblx0LmNtc21hc3RlcnNfdG9nZ2xlcyAuY21zbWFzdGVyc190b2dnbGVfd3JhcCxcclxuXHQuY21zbWFzdGVyc190YWJzIC5jbXNtYXN0ZXJzX3RhYnNfbGlzdCAuY21zbWFzdGVyc190YWJzX2xpc3RfaXRlbSA+IGEsXHJcblx0LmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX3dyYXAgLmNtc21hc3RlcnNfaXRlbXNfZmlsdGVyX2xpc3QgbGkgYSxcclxuXHQub3dsLXBhZ2luYXRpb24gLm93bC1wYWdlLCBcclxuXHQuY21zbWFzdGVyc19jb250ZW50X3NsaWRlciAub3dsLWJ1dHRvbnMgPiBkaXYsXHJcblx0LnBvc3QuY21zbWFzdGVyc19kZWZhdWx0X3R5cGUuZm9ybWF0LWdhbGxlcnkgLm93bC1idXR0b25zID4gZGl2LFxyXG5cdC5wb3N0LmNtc21hc3RlcnNfdGltZWxpbmVfdHlwZS5mb3JtYXQtZ2FsbGVyeSAub3dsLWJ1dHRvbnMgPiBkaXYsXHJcblx0LnBvc3QuY21zbWFzdGVyc19tYXNvbnJ5X3R5cGUuZm9ybWF0LWdhbGxlcnkgLm93bC1idXR0b25zID4gZGl2LFxyXG5cdC5wYlByZXZpb3VzLFxyXG5cdC5wYk5leHQsXHJcblx0LmJ1dHRvbiwgXHJcblx0aW5wdXRbdHlwZT1zdWJtaXRdLCBcclxuXHRpbnB1dFt0eXBlPWJ1dHRvbl0sIFxyXG5cdGJ1dHRvbiwgXHJcblx0LmNtc21hc3RlcnNfcHJldl9hcnJvdywgXHJcblx0LmNtc21hc3RlcnNfbmV4dF9hcnJvdywgXHJcblx0I3NsaWRlX3RvcCB7XHJcblx0XHQudHJhbnMofidiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCwgY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBib3JkZXItY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfYm90IG5hdiA+IGRpdiA+IHVsIHVsIGxpIGE6YmVmb3JlLFxyXG5cdC5oZWFkZXJfbWlkIG5hdiA+IGRpdiA+IHVsIHVsIGxpIGE6YmVmb3JlLFxyXG5cdC53aWRnZXRfbmF2X21lbnUgPiBkaXYgPiB1bCBsaSA+IGE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgLnBsX2ltZyBhOmJlZm9yZSxcclxuXHQucG9ydGZvbGlvLnB1enpsZSAucHJvamVjdCAuY21zbWFzdGVyc19wcm9qZWN0X2Zvb3RlciBhOmJlZm9yZSxcclxuXHQucG9ydGZvbGlvLnB1enpsZSAucHJvamVjdCAuY21zbWFzdGVyc19wcm9qZWN0X2NhdGVnb3J5IGEsXHJcblx0LnBvcnRmb2xpby5wdXp6bGUgLnByb2plY3QgLmNtc21hc3RlcnNfcHJvamVjdF90aXRsZSBhLFxyXG5cdC5jbXNtYXN0ZXJzX3dyYXBfcGFnaW5hdGlvbiB1bCBsaSAucGFnZS1udW1iZXJzOmJlZm9yZSxcclxuXHQucG9zdC5jbXNtYXN0ZXJzX3B1enpsZV90eXBlIC5jbXNtYXN0ZXJzX3Bvc3RfY29udCAucHJlbG9hZGVyOmFmdGVyLFxyXG5cdC5oZWFkZXJfYm90IC5zZWFyY2hfd3JhcCAuc2VhcmNoX2Jhcl93cmFwIC5zZWFyY2hfYnV0dG9uLFxyXG5cdC5jbXNtYXN0ZXJzX3F1b3Rlc19zbGlkZXIuY21zbWFzdGVyc19xdW90ZXNfc2xpZGVyX3R5cGVfYm94IC53cmFwX3F1b3RlX3RpdGxlIGEge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmhlYWRlcl90b3AgLnNvY2lhbF93cmFwIC5jbXNtYXN0ZXJzX3NvY2lhbF9pY29uIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgLnBsX2ltZyBhOmFmdGVyLFxyXG5cdC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3Zlcl93cmFwIC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlciAuY21zbWFzdGVyc19pbWFnZV9saW5rIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjJzIGVhc2UtaW4tb3V0IC4xcywgdG9wIC40cyBlYXNlLWluLW91dCAuMXMnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyX3dyYXAgLmNtc21hc3RlcnNfaW1nX3JvbGxvdmVyIC5jbXNtYXN0ZXJzX29wZW5fcG9zdF9saW5rIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjJzIGVhc2UtaW4tb3V0IC4xcywgdG9wIC40cyBlYXNlLWluLW91dCAuMXMsIHRyYW5zZm9ybSAuNHMgZWFzZS1pbi1vdXQgLjFzLCBjb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblxyXG5cdC5wb3J0Zm9saW8ucHV6emxlIC5wcm9qZWN0IC5jbXNtYXN0ZXJzX2ltZ19yb2xsb3ZlcjpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQgLjFzLCB0b3AgLjRzIGVhc2UtaW4tb3V0IC4xcywgdHJhbnNmb3JtIC40cyBlYXNlLWluLW91dCAuMXMsIGNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQucG9zdC5jbXNtYXN0ZXJzX2RlZmF1bHRfdHlwZS5mb3JtYXQtZ2FsbGVyeSAub3dsLWJ1dHRvbnMgPiBkaXYsXHJcblx0LnBvc3QuY21zbWFzdGVyc19tYXNvbnJ5X3R5cGUuZm9ybWF0LWdhbGxlcnkgLm93bC1idXR0b25zID4gZGl2LFxyXG5cdC5wb3N0LmNtc21hc3RlcnNfdGltZWxpbmVfdHlwZS5mb3JtYXQtZ2FsbGVyeSAub3dsLWJ1dHRvbnMgPiBkaXYsXHJcblx0LmNtc21hc3RlcnNfY29udGVudF9zbGlkZXIgLm93bC1idXR0b25zID4gZGl2IHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQsIHJpZ2h0IC4zcyBlYXNlLWluLW91dCwgbGVmdCAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0QHtpbnB1dF90ZXh0fSxcclxuXHR0ZXh0YXJlYSwgXHJcblx0c2VsZWN0IHtcclxuXHRcdC50cmFucyh+J2JvcmRlci1jb2xvciAuMnMgZWFzZS1pbi1vdXQsIGJveC1zaGFkb3cgLjFzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4ycyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuYm90X25hdiA+IGxpOmJlZm9yZSB7XHJcblx0XHQudHJhbnMofid3aWR0aCAuM3MgZWFzZS1pbi1vdXQsIGJhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5zZWFyY2hfYnV0dG9uLFxyXG5cdC5zZWFyY2hfd3JhcCAuc2VhcmNoX2Jhcl93cmFwIC5zZWFyY2hfZmllbGQge1xyXG5cdFx0LnRyYW5zKH4nd2lkdGggLjNzIGVhc2UtaW4tb3V0LCBvcGFjaXR5IC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQucG9ydGZvbGlvLnB1enpsZSAucHJvamVjdCAucHJvamVjdF9vdXRlciAucHJvamVjdF9pbm5lciB7XHJcblx0XHQudHJhbnMofidtYXJnaW4tdG9wIC40cyBlYXNlLWluLW91dCAuMXMsIG9wYWNpdHkgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wIC5yZXNwb25zaXZlX3RvcF9uYXYsXHJcblx0LmhlYWRlcl90b3AgLnJlc3BvbnNpdmVfdG9wX25hdjpiZWZvcmUsXHJcblx0LmhlYWRlcl9taWQgLnJlc3BfbWlkX25hdl93cmFwIC5yZXNwX21pZF9uYXYsXHJcblx0LmhlYWRlcl9taWQgLnJlc3BfbWlkX25hdl93cmFwIC5yZXNwX21pZF9uYXY6YmVmb3JlLFxyXG5cdC5oZWFkZXJfbWlkIC5taWRfbmF2X3dyYXAsXHJcblx0LmhlYWRlcl9ib3QgLmJvdF9uYXZfd3JhcCB7XHJcblx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC8qIEdsb2JhbCBBbmltYXRpb25zICovXHJcblx0YSwgXHJcblx0LmltZ19wbGFjZWhvbGRlcl9zbWFsbCxcclxuXHQuY21zbWFzdGVyc19zaXRlbWFwX3dyYXAgLmNtc21hc3RlcnNfc2l0ZW1hcCA+IGxpID4gdWwgPiBsaSA+IHVsIGxpIGE6YmVmb3JlIHtcclxuXHRcdC50cmFucyhjb2xvciAuM3MgZWFzZS1pbi1vdXQpO1xyXG5cdH1cclxuXHRcclxuXHQuaGVhZGVyX21pZF9vdXRlciwgXHJcblx0LmhlYWRlcl9ib3Rfb3V0ZXIge1xyXG5cdFx0LnRyYW5zKH4nYmFja2dyb3VuZC1jb2xvciAuMnMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc29jaWFsX2ljb24ge1xyXG5cdFx0LnRyYW5zKH4nY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBiYWNrZ3JvdW5kLWNvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCB1bCxcclxuXHRuYXYgPiBkaXYgPiB1bCBkaXYge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjFzLCBtYXJnaW4tdG9wIC4zcyBlYXNlLWluLW91dCAuMXMnKTtcclxuXHR9XHJcblx0XHJcblx0bmF2ID4gZGl2ID4gdWwgdWwgdWwge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuM3MgZWFzZS1pbi1vdXQgLjFzLCBtYXJnaW4tbGVmdCAuM3MgZWFzZS1pbi1vdXQgLjFzLCBtYXJnaW4tcmlnaHQgLjNzIGVhc2UtaW4tb3V0IC4xcycpO1xyXG5cdH1cclxuXHRcclxuXHRuYXYgPiBkaXYgPiB1bCBsaSBhIHtcclxuXHRcdC50cmFucyh+J2JhY2tncm91bmQtY29sb3IgLjNzIGVhc2UtaW4tb3V0LCBjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0bmF2ID4gZGl2ID4gdWwgbGkgYSAubmF2X3N1YnRpdGxlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC4zcyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuc2VhcmNoX3dyYXAgfiBkaXYge1xyXG5cdFx0LnRyYW5zKH4nb3BhY2l0eSAuMnMgZWFzZS1pbi1vdXQsIHZpc2liaWxpdHkgLjJzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5oZWFkZXJfdG9wIC5oZWFkZXJfdG9wX2J1dCB7XHJcblx0XHQudHJhbnMofidjb2xvciAuM3MgZWFzZS1pbi1vdXQsIGJvcmRlci1jb2xvciAuM3MgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyX3RodW1icyA+IGxpIGltZyB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC40cyBlYXNlLWluLW91dCwgd2lkdGggLjNzIGVhc2UtaW4tb3V0LCBsZWZ0IC4zcyBlYXNlLWluLW91dCwgcmlnaHQgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl9pdGVtcyA+IGxpIHtcclxuXHRcdC50cmFucyh+J29wYWNpdHkgLjVzIGVhc2UtaW4tb3V0LCB2aXNpYmlsaXR5IC41cyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzID4gbGkgYSB7XHJcblx0XHQudHJhbnMoYm9yZGVyLWNvbG9yIC4zcyBlYXNlLWluLW91dCk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlciAuY21zbWFzdGVyc19ob3Zlcl9zbGlkZXJfdGh1bWJzID4gbGkgYTpiZWZvcmUge1xyXG5cdFx0LnRyYW5zKG9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0KTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLCBcclxuXHQuY21zbWFzdGVyc19idXR0b24uY21zbWFzdGVyc19idXRfY2xlYXJfc3R5bGVzOmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfYnV0dG9uLmNtc21hc3RlcnNfYnV0X2NsZWFyX3N0eWxlczphZnRlciB7XHJcblx0XHQudHJhbnMofidhbGwgLjNzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC53cGNmNyBmb3JtLndwY2Y3LWZvcm0gc3Bhbi53cGNmNy1saXN0LWl0ZW0gaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgc3Bhbi53cGNmNy1saXN0LWl0ZW0tbGFiZWw6YWZ0ZXIsXHJcblx0LmNtc21hc3RlcnMtZm9ybS1idWlsZGVyIC5jaGVja19wYXJlbnQgaW5wdXRbdHlwZT1cImNoZWNrYm94XCJdICsgbGFiZWw6YWZ0ZXIsXHJcblx0I2ZidWlsZGVyIGlucHV0W3R5cGU9XCJjaGVja2JveFwiXSArIC5maWVsZF9iZWZvcmU6YWZ0ZXIsXHJcblx0LndwY2Y3IGZvcm0ud3BjZjctZm9ybSBzcGFuLndwY2Y3LWxpc3QtaXRlbSBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBzcGFuLndwY2Y3LWxpc3QtaXRlbS1sYWJlbDphZnRlcixcclxuXHQuY21zbWFzdGVycy1mb3JtLWJ1aWxkZXIgLmNoZWNrX3BhcmVudCBpbnB1dFt0eXBlPVwicmFkaW9cIl0gKyBsYWJlbDphZnRlcixcclxuXHQjZmJ1aWxkZXIgaW5wdXRbdHlwZT1cInJhZGlvXCJdICsgLmZpZWxkX2JlZm9yZTphZnRlciB7XHJcblx0XHQudHJhbnMofidhbGwgLjJzIGVhc2Utb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl90b3A6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9ib3hfdG9wOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnRfdG9wOmJlZm9yZSxcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25fYm94X2xlZnQ6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDE6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDI6YmVmb3JlLFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDM6YmVmb3JlLCBcclxuXHQuY21zbWFzdGVyc19pY29uX2JveC5jbXNtYXN0ZXJzX2ljb25faGVhZGluZ19sZWZ0IGg0OmJlZm9yZSwgXHJcblx0LmNtc21hc3RlcnNfaWNvbl9ib3guY21zbWFzdGVyc19pY29uX2hlYWRpbmdfbGVmdCBoNTpiZWZvcmUsIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fYm94LmNtc21hc3RlcnNfaWNvbl9oZWFkaW5nX2xlZnQgaDY6YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J2FsbCAxcyBjdWJpYy1iZXppZXIoLjU1LCAuMywgLjUsIDEuNjUpJyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtOmJlZm9yZSB7XHJcblx0XHQudHJhbnMofidoZWlnaHQgLjVzIGVhc2UtaW4nKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb24sIFxyXG5cdC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtcy5jbXNtYXN0ZXJzX2ljb25fbGlzdF90eXBlX2Jsb2NrIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pdGVtIC5jbXNtYXN0ZXJzX2ljb25fbGlzdF9pY29uOmFmdGVyIHtcclxuXHRcdC50cmFucyh+J2FsbCAuNXMgZWFzZS1pbi1vdXQnKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW1zLmNtc21hc3RlcnNfaWNvbl9saXN0X3R5cGVfYmxvY2sgLmNtc21hc3RlcnNfaWNvbl9saXN0X2l0ZW0gLmNtc21hc3RlcnNfaWNvbl9saXN0X2ljb246YmVmb3JlIHtcclxuXHRcdC50cmFucyh+J2NvbG9yIC40cyBlYXNlLWluLW91dCwgZm9udC1zaXplIC40cyBlYXNlLWluLW91dCwgbGluZS1oZWlnaHQgLjRzIGVhc2UtaW4nKTtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfY2xpZW50c19pdGVtIGltZywgXHJcblx0LmNtc21hc3RlcnNfaG92ZXJfc2xpZGVyIC5jbXNtYXN0ZXJzX2hvdmVyX3NsaWRlcl90aHVtYnMgYSB7XHJcblx0XHQudHJhbnMofidhbGwgLjVzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgLnBsX25vaW1nLFxyXG5cdC5jbXNtYXN0ZXJzX3Byb2ZpbGUgLnByb2ZpbGUgaW1nIHtcclxuXHRcdC50cmFucyh+J2FsbCAuN3MgY3ViaWMtYmV6aWVyKC41NSwgLjMsIC41LCAxLjY1KScpO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19wcm9maWxlIC5wcm9maWxlIC5wbF9zb2NpYWxfbGlzdCB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC41cyBlYXNlLW91dCwgbWFyZ2luIC41cyBlYXNlLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQucG9ydGZvbGlvLmdyaWQgYXJ0aWNsZS5wcm9qZWN0IGZpZ3VyZSB7XHJcblx0XHQudHJhbnMofidvcGFjaXR5IC43cyBlYXNlLWluLW91dCcpO1xyXG5cdH1cclxuXHRcclxuXHQucG9ydGZvbGlvLnB1enpsZSAucHJvamVjdCAucHJvamVjdF9vdXRlciBmaWd1cmUgaW1nLCBcclxuXHQucG9ydGZvbGlvLnB1enpsZSAucHJvamVjdCAucHJvamVjdF9vdXRlciBmaWd1cmUgLmltZ19wbGFjZWhvbGRlciB7XHJcblx0XHQudHJhbnMofidhbGwgLjJzIGVhc2UtaW4tb3V0Jyk7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zdGF0c190eXBlX2hvcml6b250YWwuc2hvcnRjb2RlX2FuaW1hdGVkIC5jbXNtYXN0ZXJzX3N0YXRfaW5uZXIge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtbXMtYW5pbWF0aW9uOmJhcl9tb3ZlIDJzIGVhc2UtaW47XHJcblx0XHQtby1hbmltYXRpb246YmFyX21vdmUgMnMgZWFzZS1pbjtcclxuXHRcdGFuaW1hdGlvbjpiYXJfbW92ZSAycyBlYXNlLWluO1xyXG5cdH1cclxuXHRcclxuXHQuY21zbWFzdGVyc19zdGF0cy5zdGF0c19tb2RlX2JhcnMuc3RhdHNfdHlwZV92ZXJ0aWNhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lciB7XHJcblx0XHQtd2Via2l0LWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdC1tb3otYW5pbWF0aW9uOmJhcl91cCAycyBlYXNlLWluO1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdC1vLWFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHRcdGFuaW1hdGlvbjpiYXJfdXAgMnMgZWFzZS1pbjtcclxuXHR9XHJcblx0XHJcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnN0YXRzX3R5cGVfaG9yaXpvbnRhbC5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9pbm5lcjpiZWZvcmUsXHJcblx0LmNtc21hc3RlcnNfc3RhdHMuc3RhdHNfbW9kZV9iYXJzLnNob3J0Y29kZV9hbmltYXRlZCAuY21zbWFzdGVyc19zdGF0X2lubmVyIC5jbXNtYXN0ZXJzX3N0YXRfdGl0bGUge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtbW96LWFuaW1hdGlvbjpiYXJfdGl0bGUgMi4ycyBlYXNlLW91dDtcclxuXHRcdC1tcy1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0XHRhbmltYXRpb246YmFyX3RpdGxlIDIuMnMgZWFzZS1vdXQ7XHJcblx0fVxyXG5cdFxyXG5cdC5jbXNtYXN0ZXJzX3N0YXRzLnN0YXRzX21vZGVfYmFycy5zaG9ydGNvZGVfYW5pbWF0ZWQgLmNtc21hc3RlcnNfc3RhdF9jb3VudGVyX3dyYXAge1xyXG5cdFx0LXdlYmtpdC1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1vei1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0LW1zLWFuaW1hdGlvbjpiYXJfaW5uZXIgMXMgZWFzZS1pbi1vdXQ7XHJcblx0XHQtby1hbmltYXRpb246YmFyX2lubmVyIDFzIGVhc2UtaW4tb3V0O1xyXG5cdFx0YW5pbWF0aW9uOmJhcl9pbm5lciAxcyBlYXNlLWluLW91dDtcclxuXHR9XHJcblxyXG5cdEAtd2Via2l0LWtleWZyYW1lcyBhdXRvZmlsbCB7XHJcblx0XHR0byB7XHJcblx0XHRcdGNvbG9yOmluaGVyaXQ7XHJcblx0XHRcdGJhY2tncm91bmQ6dHJhbnNwYXJlbnQ7XHJcblx0XHR9XHJcblx0fVx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl9tb3ZlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR3aWR0aDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1tb3ota2V5ZnJhbWVzIGJhcl9tb3ZlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHR3aWR0aDogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHR3aWR0aDogMTAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0QC1vLWtleWZyYW1lcyBiYXJfbW92ZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0d2lkdGg6IDA7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0d2lkdGg6IDEwMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX21vdmUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHdpZHRoOiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHdpZHRoOiAxMDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRcclxuXHRALXdlYmtpdC1rZXlmcmFtZXMgYmFyX3VwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHQtd2Via2l0LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdC13ZWJraXQtdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX3VwIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHQtbW96LXRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdC1tb3otdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW8ta2V5ZnJhbWVzIGJhcl91cCB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMTAwJSk7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0LW8tdHJhbnNmb3JtOiB0cmFuc2xhdGUoMCwgMCUpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0QGtleWZyYW1lcyBiYXJfdXAge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDEwMCUpO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlKDAsIDAlKTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl90aXRsZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtbW96LWtleWZyYW1lcyBiYXJfdGl0bGUge1xyXG5cdFx0ZnJvbSB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAtMjAwcHg7XHJcblx0XHR9XHJcblx0XHRcclxuXHRcdHRvIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IDAlO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW8ta2V5ZnJhbWVzIGJhcl90aXRsZSB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0bWFyZ2luLWxlZnQ6IC0yMDBweDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogMCU7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX3RpdGxlIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRtYXJnaW4tbGVmdDogLTIwMHB4O1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG1hcmdpbi1sZWZ0OiAwJTtcclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0XHJcblx0QC13ZWJraXQta2V5ZnJhbWVzIGJhcl9pbm5lciB7XHJcblx0XHRmcm9tIHtcclxuXHRcdFx0b3BhY2l0eTogMDtcclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0dG8ge1xyXG5cdFx0XHRvcGFjaXR5OiAxO1xyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHRALW1vei1rZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEAtby1rZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdEBrZXlmcmFtZXMgYmFyX2lubmVyIHtcclxuXHRcdGZyb20ge1xyXG5cdFx0XHRvcGFjaXR5OiAwO1xyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHR0byB7XHJcblx0XHRcdG9wYWNpdHk6IDE7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4iLCJcclxuQGlucHV0X3BhZDogOHB4O1xyXG5AaW5wdXRfaGVpZ2h0OiAzOHB4O1xyXG5cclxuQGxpbmVfaGVpZ2h0X3BhZDogMjBweDtcclxuQGJsb2Nrc19ob3JfcGFkOiAyMHB4O1xyXG5AZGVmYXVsdF9saXN0X3RvcF9wYWQ6IDEwcHg7XHJcbkBkZWZhdWx0X2xpc3RfbGVmdF9wYWQ6IDIwcHg7XHJcbkBjb250X3ZlcnRfcGFkOiA0MHB4O1xyXG5AY29udF9zaWRlYmFyX3BhZDogMzBweDtcclxuXHJcbkBiZHJzX3dpZHRoOiAycHg7XHJcblxyXG5AYnV0X2JkcnNfd2lkdGg6IDJweDtcclxuQGJ1dF9iZF93aWR0aDogMDtcclxuXHJcbkBjb2xfbWFyOiAyJTtcclxuXHJcbkByZXNwX2Jsb2Nrc19wYWQ6IDU2LjI1JTtcclxuXHJcbkBwcmVsb2FkZXJfYmxvZ19zdGFuZGFyZF9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9ibG9nX21hc29ucnlfcGFkOiA2MC4zNCU7XHJcbkBwcmVsb2FkZXJfYmxvZ190aW1lbGluZV9wYWQ6IDU4LjE0JTtcclxuQHByZWxvYWRlcl9wb3J0Zm9saW9fZ3JpZF9wYWQ6IDEwMCU7XHJcbkBwcmVsb2FkZXJfcG9zdHNfc2xpZGVyX3BhZDogNjAuMzQlO1xyXG5AcHJlbG9hZGVyX2FyY2hpdmVzX3BhZDogMTAwJTtcclxuXHJcbkBzaWRlYmFyX3dpZHRoOiAyNiU7XHJcbkBjb250ZW50X3dpZHRoOiAxMDAlIC0gQHNpZGViYXJfd2lkdGg7XHJcblxyXG5AbWlkX25hdl9kcm9wZG93bl93aWR0aDogMjIwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3BhZF90b3A6IDEwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3BhZF9ib3Q6IDIwcHg7XHJcbkBtaWRfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AbWlkX25hdl9kcm9wZG93bl92ZXJ0X21hcl9lbmQ6IDBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9zdGFydDogMjBweDtcclxuQG1pZF9uYXZfZHJvcGRvd25faG9yX21hcl9lbmQ6IDJweDtcclxuXHJcbkBib3RfbmF2X2Ryb3Bkb3duX3dpZHRoOiAyMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX3RvcDogMTBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fcGFkX2JvdDogMjBweDtcclxuQGJvdF9uYXZfZHJvcGRvd25fdmVydF9tYXJfc3RhcnQ6IDIwcHg7XHJcbkBib3RfbmF2X2Ryb3Bkb3duX3ZlcnRfbWFyX2VuZDogMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX3N0YXJ0OiAyMHB4O1xyXG5AYm90X25hdl9kcm9wZG93bl9ob3JfbWFyX2VuZDogMnB4O1xyXG5cclxuQHRvcF9uYXZfZHJvcGRvd25fd2lkdGg6IDEyNnB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfdG9wOiAxMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl9wYWRfYm90OiAxMHB4O1xyXG5AdG9wX25hdl9kcm9wZG93bl92ZXJ0X21hcl9zdGFydDogMjBweDtcclxuQHRvcF9uYXZfZHJvcGRvd25fdmVydF9tYXJfZW5kOiAwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfc3RhcnQ6IDIwcHg7XHJcbkB0b3BfbmF2X2Ryb3Bkb3duX2hvcl9tYXJfZW5kOiAycHg7XHJcblxyXG5AY29udF93aWR0aF9kZWY6IDk4MHB4O1xyXG5cclxuQGNvbnRfd2lkdGhfbGFyZ2U6IDEyMDBweDtcclxuQGNvbnRfd2lkdGhfZGVmOiA5ODBweDtcclxuQGNvbnRfd2lkdGhfZnVsbDogMTAwJTtcclxuQGNvbnRfd2lkdGhfbWluOiAzMjBweDtcclxuXHJcbkBpbnB1dF90ZXh0OiBlKCdpbnB1dDpub3QoW3R5cGU9YnV0dG9uXSk6bm90KFt0eXBlPWNoZWNrYm94XSk6bm90KFt0eXBlPWZpbGVdKTpub3QoW3R5cGU9aGlkZGVuXSk6bm90KFt0eXBlPWltYWdlXSk6bm90KFt0eXBlPXJhZGlvXSk6bm90KFt0eXBlPXJlc2V0XSk6bm90KFt0eXBlPXN1Ym1pdF0pOm5vdChbdHlwZT1jb2xvcl0pOm5vdChbdHlwZT1yYW5nZV0pJyk7XHJcblxyXG5AbW9uaXRvcl9sYXJnZTogficobWluLXdpZHRoOiAxNjIwcHgpJztcclxuQG1vbml0b3JfbWVkaXVtOiB+JyhtaW4td2lkdGg6IDEwMjVweCknO1xyXG5AbW9uaXRvcl90YWJsZXQ6IH4nKG1heC13aWR0aDogMTAyNHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF85NTA6IH4nKG1heC13aWR0aDogOTUwcHgpJztcclxuQG1vbml0b3JfdGFibGV0X3NtYWxsOiB+JyhtYXgtd2lkdGg6IDc2OHB4KSc7XHJcbkBtb25pdG9yX3RhYmxldF82MDA6IH4nKG1heC13aWR0aDogNjAwcHgpJztcclxuQG1vbml0b3JfcGhvbmU6IH4nKG1heC13aWR0aDogNTQwcHgpJztcclxuQG1vbml0b3JfcGhvbmVfc21hbGw6IH4nKG1heC13aWR0aDogMzIwcHgpJztcclxuXHJcblxyXG4vKioqKioqKioqKioqKioqKiogRnVuY3Rpb25zICoqKioqKioqKioqKioqKioqKi9cclxuLmZsICgpIHtcclxuXHRmbG9hdDpsZWZ0O1xyXG59XHJcblxyXG4uZnIgKCkge1xyXG5cdGZsb2F0OnJpZ2h0O1xyXG59XHJcblxyXG4uZG4gKCkge1xyXG5cdGRpc3BsYXk6bm9uZTtcclxufVxyXG5cclxuLnRhbCAoKSB7XHJcblx0dGV4dC1hbGlnbjpsZWZ0O1xyXG59XHJcblxyXG4udGFjICgpIHtcclxuXHR0ZXh0LWFsaWduOmNlbnRlcjtcclxufVxyXG5cclxuLnRhciAoKSB7XHJcblx0dGV4dC1hbGlnbjpyaWdodDtcclxufVxyXG5cclxuLmNsICgpIHtcclxuXHRjbGVhcjpib3RoO1xyXG59XHJcblxyXG4ub3ZoICgpIHtcclxuXHRvdmVyZmxvdzpoaWRkZW47XHJcbn1cclxuXHJcbi5tMGEgKCkge1xyXG5cdG1hcmdpbjowIGF1dG87XHJcbn1cclxuXHJcbi5iZCAoQHc6MXB4OyBAdDpzb2xpZCkge1xyXG5cdGJvcmRlci13aWR0aDpAdztcclxuXHRib3JkZXItc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHQgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItdG9wLXdpZHRoOkB3O1xyXG5cdGJvcmRlci10b3Atc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZGIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkB3O1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5iZHIgKEB3OjFweDsgQHQ6c29saWQpIHtcclxuXHRib3JkZXItcmlnaHQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLXJpZ2h0LXN0eWxlOkB0O1xyXG59XHJcblxyXG4uYmRsIChAdzoxcHg7IEB0OnNvbGlkKSB7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QHc7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6QHQ7XHJcbn1cclxuXHJcbi5jb2xvcl93aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRjb2xvcjpyZ2JhKDI1NSwgMjU1LCAyNTUsIEBvcCk7XHJcbn1cclxuXHJcbi5iZ193aGl0ZV9vcGFjaXR5IChAb3A6LjUpIHtcclxuXHRiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjU1LCAyNTUsIDI1NSwgQG9wKTtcclxufVxyXG5cclxuLmZ1bGx3aWR0aF9pbl9ibG9jayAoKSB7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHR0b3A6MDtcclxuXHRsZWZ0OjA7XHJcbn1cclxuXHJcbi5vcCAoQG9wOi41KSB7XHJcblx0b3BhY2l0eTpAb3A7XHJcbn1cclxuXHJcbi5jbF9hZnRlciAoKSB7XHJcblx0Y29udGVudDonLic7XHJcblx0ZGlzcGxheTpibG9jaztcclxuXHRjbGVhcjpib3RoO1xyXG5cdGhlaWdodDowO1xyXG5cdHZpc2liaWxpdHk6aGlkZGVuO1xyXG5cdG92ZXJmbG93OmhpZGRlbjtcclxufVxyXG5cclxuLnZhbGlnbl9hZnRlciAoKSB7XHJcblx0Y29udGVudDonJztcclxuXHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRoZWlnaHQ6MTAwJTtcclxuXHR2ZXJ0aWNhbC1hbGlnbjptaWRkbGU7XHJcbn1cclxuXHJcbi5kaXNwbGF5X2ZsZXggKCkge1xyXG5cdGRpc3BsYXk6LXdlYmtpdC1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1mbGV4O1xyXG5cdGRpc3BsYXk6LW1zLWZsZXg7XHJcblx0ZGlzcGxheTpmbGV4O1xyXG59XHJcblxyXG4uZGlzcGxheV9pbmxpbmVfZmxleCAoKSB7XHJcblx0ZGlzcGxheTotd2Via2l0LWlubGluZS1mbGV4O1xyXG5cdGRpc3BsYXk6LW1vei1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5Oi1tcy1pbmxpbmUtZmxleDtcclxuXHRkaXNwbGF5OmlubGluZS1mbGV4O1xyXG59XHJcblxyXG4uZmxleF9kaXJlY3Rpb24gKEBkOnJvdykge1xyXG5cdC13ZWJraXQtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0LW1vei1mbGV4LWRpcmVjdGlvbjpAZDtcclxuXHQtbXMtZmxleC1kaXJlY3Rpb246QGQ7XHJcblx0ZmxleC1kaXJlY3Rpb246QGQ7XHJcbn1cclxuXHJcbi5mbGV4X3dyYXAgKEBkOm5vd3JhcCkge1xyXG5cdC13ZWJraXQtZmxleC13cmFwOkBkO1xyXG5cdC1tb3otZmxleC13cmFwOkBkO1xyXG5cdC1tcy1mbGV4LXdyYXA6QGQ7XHJcblx0ZmxleC13cmFwOkBkO1xyXG59XHJcblxyXG4uanVzdGlmeV9jb250ZW50IChAZDpmbGV4LXN0YXJ0KSB7XHJcblx0LXdlYmtpdC1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1vei1qdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcblx0LW1zLWp1c3RpZnktY29udGVudDpAZDtcclxuXHRqdXN0aWZ5LWNvbnRlbnQ6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9pdGVtcyAoQGQ6c3RyZXRjaCkge1xyXG5cdC13ZWJraXQtYWxpZ24taXRlbXM6QGQ7XHJcblx0LW1vei1hbGlnbi1pdGVtczpAZDtcclxuXHQtbXMtYWxpZ24taXRlbXM6QGQ7XHJcblx0YWxpZ24taXRlbXM6QGQ7XHJcbn1cclxuXHJcbi5hbGlnbl9jb250ZW50IChAZDpzdHJldGNoKSB7XHJcblx0LXdlYmtpdC1hbGlnbi1jb250ZW50OkBkO1xyXG5cdC1tb3otYWxpZ24tY29udGVudDpAZDtcclxuXHQtbXMtYWxpZ24tY29udGVudDpAZDtcclxuXHRhbGlnbi1jb250ZW50OkBkO1xyXG59XHJcblxyXG4ucG9zX2FicyAoQHc6MWVtOyBAaDoxZW07IEBsOjA7IEByOjA7IEB0OjA7IEBiOjApIHtcclxuXHR3aWR0aDpAdztcclxuXHRoZWlnaHQ6QGg7XHJcblx0bWFyZ2luOmF1dG8gIWltcG9ydGFudDtcclxuXHRwb3NpdGlvbjphYnNvbHV0ZTtcclxuXHRsZWZ0OkBsO1xyXG5cdHJpZ2h0OkByO1xyXG5cdHRvcDpAdDtcclxuXHRib3R0b206QGI7XHJcbn1cclxuXHJcbi5iZGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHQtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDtcclxuXHRib3gtc2l6aW5nOmJvcmRlci1ib3g7XHJcbn1cclxuXHJcbi5jdGJ4ICgpIHtcclxuXHQtd2Via2l0LWJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcblx0LW1vei1ib3gtc2l6aW5nOmNvbnRlbnQtYm94O1xyXG5cdGJveC1zaXppbmc6Y29udGVudC1ib3g7XHJcbn1cclxuXHJcbi5iZHJzIChAcmFkaXVzOjVweCkge1xyXG5cdC13ZWJraXQtYm9yZGVyLXJhZGl1czpAcmFkaXVzO1xyXG5cdGJvcmRlci1yYWRpdXM6QHJhZGl1cztcclxufVxyXG5cclxuLmJ4c2ggKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6QHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoX3doaXRlIChAeDowOyBAeTowOyBAYmx1cjo1cHg7IEBzcHJlZDowOyBAYWxwaGE6LjA1KSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93OkB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDI1NSwgMjU1LCAyNTUsIEBhbHBoYSk7XHJcblx0Ym94LXNoYWRvdzpAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG59XHJcblxyXG4uYnhzaGkgKEB4OjA7IEB5OjA7IEBibHVyOjVweDsgQHNwcmVkOjA7IEBhbHBoYTouMDUpIHtcclxuXHQtd2Via2l0LWJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMCwgMCwgMCwgQGFscGhhKTtcclxuXHRib3gtc2hhZG93Omluc2V0IEB4IEB5IEBibHVyIEBzcHJlZCByZ2JhKDAsIDAsIDAsIEBhbHBoYSk7XHJcbn1cclxuXHJcbi5ieHNoaV93aGl0ZSAoQHg6MDsgQHk6MDsgQGJsdXI6NXB4OyBAc3ByZWQ6MDsgQGFscGhhOi4wNSkge1xyXG5cdC13ZWJraXQtYm94LXNoYWRvdzppbnNldCBAeCBAeSBAYmx1ciBAc3ByZWQgcmdiYSgyNTUsIDI1NSwgMjU1LCBAYWxwaGEpO1xyXG5cdGJveC1zaGFkb3c6aW5zZXQgQHggQHkgQGJsdXIgQHNwcmVkIHJnYmEoMjU1LCAyNTUsIDI1NSwgQGFscGhhKTtcclxufVxyXG5cclxuLmJ4c2hfbm9uZSAoKSB7XHJcblx0LXdlYmtpdC1ib3gtc2hhZG93Om5vbmU7XHJcblx0Ym94LXNoYWRvdzpub25lO1xyXG59XHJcblxyXG4udHJhbnMoQHRyYW5zOjApIHdoZW4gbm90IChAdHJhbnMgPSAwKSB7XHJcbiAgICAtd2Via2l0LXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgLW1vei10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1tcy10cmFuc2l0aW9uOkB0cmFucztcclxuICAgIC1vLXRyYW5zaXRpb246QHRyYW5zO1xyXG4gICAgdHJhbnNpdGlvbjpAdHJhbnM7XHJcbn1cclxuXHJcbi5hcnJvd190b3AgKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19ib3R0b20gKEBoOjVweDsgQHc6NXB4KSB7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wLXdpZHRoOkBoO1xyXG5cdGJvcmRlci10b3Atc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTpAdyBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1yaWdodC13aWR0aDpAaDtcclxuXHRib3JkZXItcmlnaHQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd19yaWdodCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci10b3A6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tOkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWxlZnQtd2lkdGg6QGg7XHJcblx0Ym9yZGVyLWxlZnQtc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcbi5hcnJvd190b3BfbGVmdCAoQGg6NXB4OyBAdzo1cHgpIHtcclxuXHRib3JkZXItcmlnaHQ6QHcgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLWJvdHRvbTowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcC13aWR0aDpAaDtcclxuXHRib3JkZXItdG9wLXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfdG9wX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1ib3R0b206QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItdG9wOjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItbGVmdDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1yaWdodC1zdHlsZTpzb2xpZDtcclxufVxyXG5cclxuLmFycm93X2JvdHRvbV9sZWZ0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci10b3A6QGggc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItcmlnaHQ6MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1ib3R0b206MCBzb2xpZCB0cmFuc3BhcmVudCAhaW1wb3J0YW50O1xyXG5cdGJvcmRlci1sZWZ0LXdpZHRoOkB3O1xyXG5cdGJvcmRlci1sZWZ0LXN0eWxlOnNvbGlkO1xyXG59XHJcblxyXG4uYXJyb3dfYm90dG9tX3JpZ2h0IChAaDo1cHg7IEB3OjVweCkge1xyXG5cdGJvcmRlci1sZWZ0OkB3IHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXRvcDowIHNvbGlkIHRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0Ym9yZGVyLXJpZ2h0OjAgc29saWQgdHJhbnNwYXJlbnQgIWltcG9ydGFudDtcclxuXHRib3JkZXItYm90dG9tLXdpZHRoOkBoO1xyXG5cdGJvcmRlci1ib3R0b20tc3R5bGU6c29saWQ7XHJcbn1cclxuXHJcblxyXG4uZGVmYXVsdF9saXN0IChAdzowOyBAaDowOyBAbTowOyBAYmRyczowKSB7XHJcblx0bGlzdC1zdHlsZS10eXBlOm5vbmU7XHJcblx0cGFkZGluZy1sZWZ0OjE1cHg7XHJcblx0XHRcclxuXHQ+IGxpIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0XHRwb3NpdGlvbjpyZWxhdGl2ZTtcclxuXHRcdFxyXG5cdFx0JjpiZWZvcmUge1xyXG5cdFx0XHRjb250ZW50OidcXGU5MzcnO1xyXG5cdFx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0XHRmb250LXNpemU6NHB4O1xyXG5cdFx0XHRmb250LXN0eWxlOm5vcm1hbDtcclxuXHRcdFx0Zm9udC13ZWlnaHQ6bm9ybWFsO1xyXG5cdFx0XHRzcGVhazpub25lO1xyXG5cdFx0XHRkaXNwbGF5OmlubGluZS1ibG9jaztcclxuXHRcdFx0dGV4dC1kZWNvcmF0aW9uOmluaGVyaXQ7XHJcblx0XHRcdHdpZHRoOjFlbTtcclxuXHRcdFx0cGFkZGluZzowO1xyXG5cdFx0XHRtYXJnaW46MDtcclxuXHRcdFx0dGV4dC1hbGlnbjpjZW50ZXI7XHJcblx0XHRcdGZvbnQtdmFyaWFudDpub3JtYWw7XHJcblx0XHRcdHRleHQtdHJhbnNmb3JtOm5vbmU7XHJcblx0XHRcdGxpbmUtaGVpZ2h0OjFlbTtcclxuXHRcdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRcdHRvcDoxOHB4O1xyXG5cdFx0XHRsZWZ0Oi0xNHB4O1xyXG5cdFx0fVxyXG5cclxuXHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHQmOmJlZm9yZSB7XHJcblx0XHRcdFx0dG9wOjhweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdFx0XHJcblx0XHRsaSB7XHJcblx0XHRcdCY6Zmlyc3QtY2hpbGQge1xyXG5cdFx0XHRcdCY6YmVmb3JlIHtcclxuXHRcdFx0XHRcdHRvcDo4cHg7XHJcblx0XHRcdFx0fVxyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF9ibG9ja3F1b3RlICgpIHtcclxuXHRwYWRkaW5nLWxlZnQ6NDVweDtcclxuXHRwYWRkaW5nLXJpZ2h0OjA7XHJcblx0bWFyZ2luOjAgMCBAbGluZV9oZWlnaHRfcGFkOyAvKiBkb24ndCB0b3VjaCAqL1xyXG5cdHBvc2l0aW9uOnJlbGF0aXZlO1xyXG5cdHF1b3Rlczpub25lO1xyXG5cdFxyXG5cdCY6YmVmb3JlLFxyXG5cdCY6YWZ0ZXIge1xyXG5cdFx0Y29udGVudDpub25lO1xyXG5cdH1cclxuXHRcclxuXHRwOmxhc3Qtb2YtdHlwZSB7XHJcblx0XHRtYXJnaW46MDtcclxuXHRcdHBhZGRpbmc6MDtcclxuXHR9XHJcblxyXG5cdFxyXG5cdCY6YmVmb3JlIHtcclxuXHRcdGNvbnRlbnQ6J1xcZThlZic7XHJcblx0XHRmb250LWZhbWlseTonZm9udGVsbG8nO1xyXG5cdFx0Zm9udC1zaXplOjIwcHg7XHJcblx0XHRsaW5lLWhlaWdodDozMHB4O1xyXG5cdFx0cG9zaXRpb246YWJzb2x1dGU7XHJcblx0XHRsZWZ0OjFweDtcclxuXHRcdHRvcDotNXB4O1xyXG5cdH1cclxuXHRcclxuXHRjaXRlIHtcclxuXHRcdGRpc3BsYXk6YmxvY2s7XHJcblx0fVxyXG59XHJcblxyXG4uZGVmYXVsdF90YWJsZSAoKSB7XHJcblx0Ym9yZGVyLXNwYWNpbmc6MDtcclxuXHRib3JkZXItY29sbGFwc2U6c2VwYXJhdGU7XHJcblx0d2lkdGg6MTAwJTtcclxuXHRtYXJnaW4tYm90dG9tOkBsaW5lX2hlaWdodF9wYWQ7IC8qIGRvbid0IHRvdWNoICovXHJcblx0XHJcblx0dGgsXHJcblx0dGQge1xyXG5cdFx0LmJkKDApOyAvKiBmb3IgZ3V0ZW5iZXJnICovXHJcblx0XHQuYmRiO1xyXG5cdH1cclxuXHRcclxuXHR0ciB7XHJcblx0XHR0aCxcclxuXHRcdHRkIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0LmJkbDtcclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0JjpsYXN0LWNoaWxkIHtcclxuXHRcdFx0XHQuYmRyO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblx0fVxyXG5cdFxyXG5cdHRoZWFkIHtcclxuXHRcdHRyIHtcclxuXHRcdFx0JjpmaXJzdC1jaGlsZCB7XHJcblx0XHRcdFx0dGgge1xyXG5cdFx0XHRcdFx0LmJkdDtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH1cclxuXHRcdFx0XHJcblx0XHRcdHRoLFxyXG5cdFx0XHR0ZCB7XHJcblx0XHRcdFx0cGFkZGluZzoxNXB4IDIwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHRcdFxyXG5cdFx0KyB0Ym9keSB7XHJcblx0XHRcdHRyIHtcclxuXHRcdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHRcdHRoLFxyXG5cdFx0XHRcdFx0dGQge1xyXG5cdFx0XHRcdFx0XHQuYmR0KDApO1xyXG5cdFx0XHRcdFx0fVxyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHQvKiBmb3IgZ3V0ZW5iZXJnIHN0YXJ0ICovXHJcblx0Ji5pcy1zdHlsZS1zdHJpcGVzIHtcclxuXHRcdC5iZCgwKTtcclxuXHRcdFxyXG5cdFx0dHI6bnRoLWNoaWxkKG9kZCkge1xyXG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOnRyYW5zcGFyZW50ICFpbXBvcnRhbnQ7XHJcblx0XHR9XHJcblx0fVxyXG5cdC8qIGZvciBndXRlbmJlcmcgZW5kICovXHJcblx0XHJcblx0dGJvZHkge1xyXG5cdFx0dHIge1xyXG5cdFx0XHQmOmZpcnN0LWNoaWxkIHtcclxuXHRcdFx0XHR0aCxcclxuXHRcdFx0XHR0ZCB7XHJcblx0XHRcdFx0XHQuYmR0O1xyXG5cdFx0XHRcdH1cclxuXHRcdFx0fVxyXG5cdFx0XHRcclxuXHRcdFx0dGgsXHJcblx0XHRcdHRkIHtcclxuXHRcdFx0XHRwYWRkaW5nOjEzcHggMzBweDtcclxuXHRcdFx0fVxyXG5cdFx0fVxyXG5cdH1cclxuXHRcclxuXHR0Zm9vdCB7XHJcblx0XHR0ciB7XHJcblx0XHRcdHRoLFxyXG5cdFx0XHR0ZCB7XHJcblx0XHRcdFx0cGFkZGluZzoxNnB4IDMwcHg7XHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHR9XHJcblx0XHJcblx0Y2FwdGlvbiB7XHJcblx0XHR0ZXh0LWFsaWduOmNlbnRlcjtcclxuXHRcdHBhZGRpbmc6MjBweDtcclxuXHR9XHJcbn1cclxuXHJcbi5kZWZhdWx0X2J1dHRvbiAoKSB7XHJcblx0ZGlzcGxheTppbmxpbmUtYmxvY2s7XHJcblx0cGFkZGluZzowIDI1cHg7XHJcblx0cG9zaXRpb246cmVsYXRpdmU7XHJcblx0d2hpdGUtc3BhY2U6bm93cmFwO1xyXG5cdC50YWM7XHJcblx0LmJkKEBidXRfYmRfd2lkdGgpO1xyXG5cdC5iZHJzKEBidXRfYmRyc193aWR0aCk7XHJcbn1cclxuXHJcbi5kZWZhdWx0X3NlbGVjdCAoQHBsdWdpbjowKSB7XHJcblx0bGluZS1oZWlnaHQ6MWVtO1xyXG5cdHRleHQtaW5kZW50OjAuMDFweDtcclxuXHR0ZXh0LXRyYW5zZm9ybTpub25lO1xyXG5cdHRleHQtb3ZlcmZsb3c6Jyc7XHJcblx0bWluLXdpZHRoOjEwMHB4O1xyXG5cdG1heC13aWR0aDoxMDAlO1xyXG5cdGhlaWdodDpAaW5wdXRfaGVpZ2h0ICsgMnB4O1xyXG5cdHBhZGRpbmc6QGlucHV0X3BhZCA0MHB4IEBpbnB1dF9wYWQgMThweDtcclxuXHRiYWNrZ3JvdW5kLXBvc2l0aW9uOjEwMCUgY2VudGVyO1xyXG5cdGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDtcclxuXHQtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTtcclxuXHQtbW96LWFwcGVhcmFuY2U6bm9uZTtcclxuXHQtbXMtYXBwZWFyYW5jZTpub25lO1xyXG5cdGFwcGVhcmFuY2U6bm9uZSAhaW1wb3J0YW50O1xyXG5cdC5iZDtcclxuXHQuYmRycyhAYmRyc193aWR0aCk7XHJcblx0XHJcblx0JiB3aGVuIChAcGx1Z2luID4gMCkge1xyXG5cdFx0YmFja2dyb3VuZC1pbWFnZTp1cmwoJy4uLy4uL2ltZy9zZWxlY3QucG5nJyk7XHJcblx0fVxyXG5cdFxyXG5cdCYgd2hlbiAoQHBsdWdpbiA9IDApIHtcclxuXHRcdGJhY2tncm91bmQtaW1hZ2U6dXJsKCcuLi9pbWcvc2VsZWN0LnBuZycpO1xyXG5cdH1cclxufVxyXG4iXSwiZmlsZSI6InN0eWxlLmNzcyJ9 */
