[fusion_builder_container hundred_percent=”no” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” overlay_color=”” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” padding_top=”” padding_bottom=”” padding_left=”” padding_right=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ background_position=”left top” background_color=”” border_size=”” border_color=”” border_style=”solid” border_position=”all” spacing=”yes” background_image=”” background_repeat=”no-repeat” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” margin_top=”0px” margin_bottom=”0px” class=”” id=”” animation_type=”” animation_speed=”0.3″ animation_direction=”left” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” center_content=”no” last=”no” min_height=”” hover_type=”none” link=””][fusion_text]
Thank you, a member of our team will be in touch shortly
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=”no” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” border_size=”” border_color=”” border_style=”solid” margin_top=”” margin_bottom=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=””][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” dimension_margin=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][/fusion_builder_column][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” dimension_margin=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_text]
Take a tour around one of our state-of-the-art production facilities
[/fusion_text][fusion_code]Jmx0O2lmcmFtZSB3aWR0aD0mcXVvdDs1NjAmcXVvdDsgaGVpZ2h0PSZxdW90OzMxNSZxdW90OyBzcmM9JnF1b3Q7aHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvZkdERVF0OEl2TkUmcXVvdDsgZnJhbWVib3JkZXI9JnF1b3Q7MCZxdW90OyBhbGxvdz0mcXVvdDthY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZSZxdW90OyBhbGxvd2Z1bGxzY3JlZW4mZ3Q7Jmx0Oy9pZnJhbWUmZ3Q7[/fusion_code][/fusion_builder_column][fusion_builder_column type=”1_2″ layout=”1_2″ spacing=”” center_content=”no” link=”” target=”_self” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” background_color=”” background_image=”” background_position=”left top” background_repeat=”no-repeat” hover_type=”none” border_size=”0″ border_color=”” border_style=”solid” border_position=”all” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” dimension_margin=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”no”][fusion_text]
Let us keep you up to date with all the latest Montracon news and special offers…
[/fusion_text][fusion_code]Jmx0O3N0eWxlJmd0OwogI19mb3JtXzM3XyB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDoxLjY7IGZvbnQtZmFtaWx5OmFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMzdfICogeyBvdXRsaW5lOjA7IH0KIC5fZm9ybV9oaWRlIHsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQogLl9mb3JtX3Nob3cgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IH0KICNfZm9ybV8zN18uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV8zN18uX2Zvcm0tYm90dG9tIHsgYm90dG9tOjA7IH0KICNfZm9ybV8zN18uX2Zvcm0tbGVmdCB7IGxlZnQ6MDsgfQogI19mb3JtXzM3Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV8zN18gaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMzdfIGlucHV0W3R5cGU9JnF1b3Q7ZGF0ZSZxdW90O10sI19mb3JtXzM3XyB0ZXh0YXJlYSB7IHBhZGRpbmc6NnB4OyBoZWlnaHQ6YXV0bzsgYm9yZGVyOiM5Nzk3OTcgMXB4IHNvbGlkOyBib3JkZXItcmFkaXVzOjRweDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBmb250LXNpemU6MTNweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV8zN18gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzM3XyAuX3N1Ym1pdCB7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6YXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZDojMzMzICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IC1tb3otYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyBib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyBjb2xvcjojZmZmICFpbXBvcnRhbnQ7IHBhZGRpbmc6MTBweCAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzdfIC5fY2xvc2UtaWNvbiB7IGN1cnNvcjpwb2ludGVyOyBiYWNrZ3JvdW5kLWltYWdlOnVybCgmI3gyNztodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2VzZmt5amgxdV9mb3Jtcy1jbG9zZS1kYXJrLnBuZyYjeDI3Oyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzM3XyAuX2Nsb3NlLWljb246YmVmb3JlIHsgcG9zaXRpb246cmVsYXRpdmU7IH0KICNfZm9ybV8zN18gLl9mb3JtLWJvZHkgeyBtYXJnaW4tYm90dG9tOjMwcHg7IH0KICNfZm9ybV8zN18gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzM3XyAuX2Zvcm0tY29udGVudC1yaWdodCB7IG1hcmdpbi1sZWZ0OjE2NHB4OyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToxMHB4OyBjbGVhcjpib3RoOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6MzBweDsgZm9udC13ZWlnaHQ6MTAwOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgmI3gyNztodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2hoOXVqcWd2NV9hY2xvZ29fbGkucG5nJiN4Mjc7KTsgYmFja2dyb3VuZC1zaXplOjEzMHB4IGF1dG87IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgfQogI19mb3JtXzM3XyAuX2Zvcm0tbGFiZWwsI19mb3JtXzM3XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzM3Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojMzMzOyB9CiAjX2Zvcm1fMzdfLl9kYXJrIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBiYWNrZ3JvdW5kLWltYWdlOnVybCgmI3gyNztodHRwczovL2QyMjZhajRhbzF0NjFxLmNsb3VkZnJvbnQubmV0L2pmdHEyYzhzX2FjbG9nb19kay5wbmcmI3gyNzspOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybV9lbGVtZW50IHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC1zaXplOjA7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybV9lbGVtZW50ICogeyBmb250LXNpemU6MTRweDsgfQogI19mb3JtXzM3XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybV9lbGVtZW50Ll9jbGVhcjphZnRlciB7IGNsZWFyOmxlZnQ7IH0KICNfZm9ybV8zN18gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMzdfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9JnF1b3Q7ZGF0ZSZxdW90O10sI19mb3JtXzM3XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzM3XyAuX2Zvcm1fZWxlbWVudCB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKSB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fMzdfIC5fZmllbGQtd3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyB9CiAjX2Zvcm1fMzdfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzM3XyAuX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSZxdW90O3RleHQmcXVvdDtdIHsgd2lkdGg6MTUwcHg7IH0KICNfZm9ybV8zN18gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzM3XyAuX2Zvcm1fZWxlbWVudCBpbWcuX2Zvcm0taW1hZ2UgeyBtYXgtd2lkdGg6MTAwJTsgfQogI19mb3JtXzM3XyAuX2NsZWFyLWVsZW1lbnQgeyBjbGVhcjpsZWZ0OyB9CiAjX2Zvcm1fMzdfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8zN18gLl9mb3JtX2Z1bGxfZmllbGQgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV8zN18gaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XS5faGFzX2Vycm9yLCNfZm9ybV8zN18gdGV4dGFyZWEuX2hhc19lcnJvciB7IGJvcmRlcjojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzM3XyBpbnB1dFt0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7XS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzM3XyAuX2Vycm9yIHsgZGlzcGxheTpibG9jazsgcG9zaXRpb246YWJzb2x1dGU7IGZvbnQtc2l6ZToxM3B4OyB6LWluZGV4OjEwMDAwMDAxOyB9CiAjX2Zvcm1fMzdfIC5fZXJyb3IuX2Fib3ZlIHsgcGFkZGluZy1ib3R0b206NHB4OyBib3R0b206MzlweDsgcmlnaHQ6MDsgfQogI19mb3JtXzM3XyAuX2Vycm9yLl9iZWxvdyB7IHBhZGRpbmctdG9wOjRweDsgdG9wOjEwMCU7IHJpZ2h0OjA7IH0KICNfZm9ybV8zN18gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV8zN18gLl9lcnJvci5fYmVsb3cgLl9lcnJvci1hcnJvdyB7IHRvcDowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV8zN18gLl9lcnJvci1pbm5lciB7IHBhZGRpbmc6OHB4IDEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjsgZm9udC1zaXplOjEzcHg7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9CiAjX2Zvcm1fMzdfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fMzdfIC5fYnV0dG9uLXdyYXBwZXIgLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IHBvc2l0aW9uOnN0YXRpYzsgfQogI19mb3JtXzM3XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvdyB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzM3XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fMzdfIC5fZXJyb3ItaHRtbCB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogLnBpa2Etc2luZ2xlIHsgei1pbmRleDoxMDAwMDAwMSAhaW1wb3J0YW50OyB9CiBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCkgeyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTpub25lOyB9CiAjX2Zvcm1fMzdfIHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IG1pbi13aWR0aDoxMDAlOyBtYXgtd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fMzdfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzM3XyAuX2Zvcm0tY29udGVudCB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS1pbm5lciB7IGRpc3BsYXk6YmxvY2s7IG1pbi13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS10aXRsZSwjX2Zvcm1fMzdfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6MDsgfQogI19mb3JtXzM3XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MS4yZW07IH0KICNfZm9ybV8zN18gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzM3XyAuX2Zvcm0tZWxlbWVudCwjX2Zvcm1fMzdfIC5faW5saW5lLXN0eWxlLCNfZm9ybV8zN18gaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMzdfIGxhYmVsLCNfZm9ybV8zN18gcCwjX2Zvcm1fMzdfIHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZmxvYXQ6bm9uZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzM3XyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzM3XyAuX3JvdywjX2Zvcm1fMzdfIHAsI19mb3JtXzM3XyBsYWJlbCB7IG1hcmdpbi1ib3R0b206MC43ZW07IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8zN18gLl9yb3cgaW5wdXRbdHlwZT0mcXVvdDtjaGVja2JveCZxdW90O10sI19mb3JtXzM3XyAuX3JvdyBpbnB1dFt0eXBlPSZxdW90O3JhZGlvJnF1b3Q7XSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzdfIC5fcm93IGlucHV0W3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDtdICsgc3BhbiBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fMzdfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzdfIGlucHV0W3R5cGU9JnF1b3Q7dGV4dCZxdW90O10geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB9CiAjX2Zvcm1fMzdfIGlucHV0W3R5cGU9JnF1b3Q7cmFkaW8mcXVvdDtdLCNfZm9ybV8zN18gaW5wdXRbdHlwZT0mcXVvdDtjaGVja2JveCZxdW90O10geyBkaXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6MS4zZW07IGhlaWdodDoxLjNlbTsgZm9udC1zaXplOjFlbTsgbWFyZ2luOjAgMC4zZW0gMCAwOyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfQogI19mb3JtXzM3XyBidXR0b25bdHlwZT0mcXVvdDtzdWJtaXQmcXVvdDtdIHsgcGFkZGluZzoyMHB4OyBmb250LXNpemU6MS41ZW07IH0KICNfZm9ybV8zN18gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW46MjBweCAwIDAgIWltcG9ydGFudDsgfQogfQogI19mb3JtXzM3XyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjoyNXB4IGF1dG8gMDsgcGFkZGluZzoyMHB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgKnpvb206MTsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjowcHggc29saWQgI2IwYjBiMCAhaW1wb3J0YW50OyAtbW96LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czowcHggIWltcG9ydGFudDsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzdfIC5fZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToyMnB4OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXdlaWdodDo2MDA7IG1hcmdpbi1ib3R0b206MDsgfQogI19mb3JtXzM3XzpiZWZvcmUsI19mb3JtXzM3XzphZnRlciB7IGNvbnRlbnQ6JnF1b3Q7ICZxdW90OzsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzM3XzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV8zN18uX2lubGluZS1zdHlsZSB7IHdpZHRoOmF1dG87IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9CiAjX2Zvcm1fMzdfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMzdfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0mcXVvdDtkYXRlJnF1b3Q7XSB7IHBhZGRpbmc6MTBweCAxMnB4OyB9CiAjX2Zvcm1fMzdfLl9pbmxpbmUtc3R5bGUgYnV0dG9uLl9pbmxpbmUtc3R5bGUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgdG9wOjI3cHg7IH0KICNfZm9ybV8zN18uX2lubGluZS1zdHlsZSBwIHsgbWFyZ2luOjA7IH0KICNfZm9ybV8zN18uX2lubGluZS1zdHlsZSAuX2J1dHRvbi13cmFwcGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjoyN3B4IDEyLjVweCAwIDIwcHg7IH0KICNfZm9ybV8zN18gLl9mb3JtLXRoYW5rLXlvdSB7IHBvc2l0aW9uOnJlbGF0aXZlOyBsZWZ0OjA7IHJpZ2h0OjA7IHRleHQtYWxpZ246Y2VudGVyOyBmb250LXNpemU6MThweDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgI19mb3JtXzM3Xy5faW5saW5lLWZvcm0uX2lubGluZS1zdHlsZSAuX2lubGluZS1zdHlsZS5fYnV0dG9uLXdyYXBwZXIgeyBtYXJnaW4tdG9wOjIwcHggIWltcG9ydGFudDsgbWFyZ2luLWxlZnQ6MCAhaW1wb3J0YW50OyB9CiB9CiZsdDsvc3R5bGUmZ3Q7CiZsdDtkaXYgc3R5bGU9JnF1b3Q7dGV4dC1hbGlnbjogY2VudGVyOyZxdW90OyZndDsKICAmbHQ7Zm9ybSBtZXRob2Q9JnF1b3Q7UE9TVCZxdW90OyBhY3Rpb249JnF1b3Q7aHR0cHM6Ly9tb250cmFjb24uYWN0aXZlaG9zdGVkLmNvbS9wcm9jLnBocCZxdW90OyBpZD0mcXVvdDtfZm9ybV8zN18mcXVvdDsgY2xhc3M9JnF1b3Q7X2Zvcm0gX2Zvcm1fMzcgX2lubGluZS1mb3JtIF9pbmxpbmUtc3R5bGUgX2RhcmsmcXVvdDsgbm92YWxpZGF0ZSZndDsKICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O3UmcXVvdDsgdmFsdWU9JnF1b3Q7MzcmcXVvdDsgLyZndDsKICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2YmcXVvdDsgdmFsdWU9JnF1b3Q7MzcmcXVvdDsgLyZndDsKICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O3MmcXVvdDsgLyZndDsKICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O2MmcXVvdDsgdmFsdWU9JnF1b3Q7MCZxdW90OyAvJmd0OwogICAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7bSZxdW90OyB2YWx1ZT0mcXVvdDswJnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDthY3QmcXVvdDsgdmFsdWU9JnF1b3Q7c3ViJnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDt2JnF1b3Q7IHZhbHVlPSZxdW90OzImcXVvdDsgLyZndDsKICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7X2Zvcm0tY29udGVudCZxdW90OyZndDsKICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZm9ybV9lbGVtZW50IF94MTIzNDAxOTIgX2lubGluZS1zdHlsZSAmcXVvdDsgJmd0OwogICAgICAgICZsdDtsYWJlbCBjbGFzcz0mcXVvdDtfZm9ybS1sYWJlbCZxdW90OyZndDsKICAgICAgICAgIEZ1bGwgTmFtZSoKICAgICAgICAmbHQ7L2xhYmVsJmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7X2ZpZWxkLXdyYXBwZXImcXVvdDsmZ3Q7CiAgICAgICAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7IG5hbWU9JnF1b3Q7ZnVsbG5hbWUmcXVvdDsgcGxhY2Vob2xkZXI9JnF1b3Q7VHlwZSB5b3VyIG5hbWUmcXVvdDsgcmVxdWlyZWQvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZm9ybV9lbGVtZW50IF94NjYwNzY2MjQgX2lubGluZS1zdHlsZSAmcXVvdDsgJmd0OwogICAgICAgICZsdDtsYWJlbCBjbGFzcz0mcXVvdDtfZm9ybS1sYWJlbCZxdW90OyZndDsKICAgICAgICAgIEVtYWlsKgogICAgICAgICZsdDsvbGFiZWwmZ3Q7CiAgICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZmllbGQtd3JhcHBlciZxdW90OyZndDsKICAgICAgICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O3RleHQmcXVvdDsgbmFtZT0mcXVvdDtlbWFpbCZxdW90OyBwbGFjZWhvbGRlcj0mcXVvdDtUeXBlIHlvdXIgZW1haWwmcXVvdDsgcmVxdWlyZWQvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfYnV0dG9uLXdyYXBwZXIgX2lubGluZS1zdHlsZSZxdW90OyZndDsKICAgICAgICAmbHQ7YnV0dG9uIGlkPSZxdW90O19mb3JtXzM3X3N1Ym1pdCZxdW90OyBjbGFzcz0mcXVvdDtfc3VibWl0JnF1b3Q7IHR5cGU9JnF1b3Q7c3VibWl0JnF1b3Q7Jmd0OwogICAgICAgICAgU3Vic2NyaWJlCiAgICAgICAgJmx0Oy9idXR0b24mZ3Q7CiAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O19jbGVhci1lbGVtZW50JnF1b3Q7Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZm9ybS10aGFuay15b3UmcXVvdDsgc3R5bGU9JnF1b3Q7ZGlzcGxheTpub25lOyZxdW90OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICZsdDsvZm9ybSZndDsKJmx0Oy9kaXYmZ3Q7Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZndDsKd2luZG93LmNmaWVsZHMgPSBbXTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjeDI3O19mb3JtXyYjeDI3OyArIGlkICsgJiN4Mjc7XyYjeDI3OyksIHRoYW5rX3lvdSA9IGZvcm0ucXVlcnlTZWxlY3RvcigmI3gyNzsuX2Zvcm0tdGhhbmsteW91JiN4Mjc7KTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJiN4Mjc7Ll9mb3JtLWNvbnRlbnQmI3gyNzspLnN0eWxlLmRpc3BsYXkgPSAmI3gyNztub25lJiN4Mjc7OwogIHRoYW5rX3lvdS5pbm5lckhUTUwgPSBtZXNzYWdlOwogIHRoYW5rX3lvdS5zdHlsZS5kaXNwbGF5ID0gJiN4Mjc7YmxvY2smI3gyNzs7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICYjeDI3O3VuZGVmaW5lZCYjeDI3OyAmYW1wOyZhbXA7IHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICYjeDI3O3VuZGVmaW5lZCYjeDI3Oykgd2luZG93Ll9mb3JtX2NhbGxiYWNrKGlkKTsKfTsKd2luZG93Ll9zaG93X2Vycm9yID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIGh0bWwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjeDI3O19mb3JtXyYjeDI3OyArIGlkICsgJiN4Mjc7XyYjeDI3OyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJiN4Mjc7ZGl2JiN4Mjc7KSwgYnV0dG9uID0gZm9ybS5xdWVyeVNlbGVjdG9yKCYjeDI3O2J1dHRvbiYjeDI3OyksIG9sZF9lcnJvciA9IGZvcm0ucXVlcnlTZWxlY3RvcigmI3gyNzsuX2Zvcm1fZXJyb3ImI3gyNzspOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICYjeDI3O19lcnJvci1pbm5lciBfZm9ybV9lcnJvciBfbm9fYXJyb3cmI3gyNzs7CiAgdmFyIHdyYXBwZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCYjeDI3O2RpdiYjeDI3Oyk7CiAgd3JhcHBlci5jbGFzc05hbWUgPSAmI3gyNztfZm9ybS1pbm5lciYjeDI3OzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcigmI3gyNztbaWRePSZxdW90O19mb3JtJnF1b3Q7XVtpZCQ9JnF1b3Q7X3N1Ym1pdCZxdW90O10mI3gyNzspLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCYjeDI3O2RpdiYjeDI3Oyk7CiAgICBkaXYuY2xhc3NOYW1lID0gJiN4Mjc7X2Vycm9yLWh0bWwmI3gyNzs7CiAgICBkaXYuaW5uZXJIVE1MID0gaHRtbDsKICAgIGVyci5hcHBlbmRDaGlsZChkaXYpOwogIH0KfTsKd2luZG93Ll9sb2FkX3NjcmlwdCA9IGZ1bmN0aW9uKHVybCwgY2FsbGJhY2spIHsKICAgIHZhciBoZWFkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigmI3gyNztoZWFkJiN4Mjc7KSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgmI3gyNztzY3JpcHQmI3gyNzspLCByID0gZmFsc2U7CiAgICBzY3JpcHQudHlwZSA9ICYjeDI3O3RleHQvamF2YXNjcmlwdCYjeDI3OzsKICAgIHNjcmlwdC5jaGFyc2V0ID0gJiN4Mjc7dXRmLTgmI3gyNzs7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmYW1wOyZhbXA7ICghdGhpcy5yZWFkeVN0YXRlIHx8IHRoaXMucmVhZHlTdGF0ZSA9PSAmI3gyNztjb21wbGV0ZSYjeDI3OykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgmcXVvdDtleGNsdWRlZm9ybSZxdW90OykgIT09IC0xKSByZXR1cm4gZmFsc2U7CiAgdmFyIGdldENvb2tpZSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciBtYXRjaCA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCYjeDI3OyhefDsgKSYjeDI3OyArIG5hbWUgKyAmI3gyNzs9KFteO10rKSYjeDI3OykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICYjeDI3Oz0mI3gyNzsgKyB2YWx1ZSArICYjeDI3OzsgZXhwaXJlcz0mI3gyNzsgKyBub3cgKyAmI3gyNzs7cGF0aD0vJiN4Mjc7OwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsmI3gyNztvbiYjeDI3OyArIGV2ZW50XTsKICAgICAgZWxlbWVudFsmI3gyNztvbiYjeDI3OyArIGV2ZW50XSA9IGZ1bmN0aW9uKCkgewogICAgICAgIG9sZEZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgICBmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgIH07CiAgICB9CiAgfQogIHZhciBfcmVtb3ZlZCA9IGZhbHNlOwogIHZhciBmb3JtX3RvX3N1Ym1pdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjeDI3O19mb3JtXzM3XyYjeDI3Oyk7CiAgdmFyIGFsbElucHV0cyA9IGZvcm1fdG9fc3VibWl0LnF1ZXJ5U2VsZWN0b3JBbGwoJiN4Mjc7aW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEmI3gyNzspLCB0b29sdGlwcyA9IFtdLCBzdWJtaXR0ZWQgPSBmYWxzZTsKCiAgdmFyIGdldFVybFBhcmFtID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIHJlZ2V4U3RyID0gJiN4Mjc7W1w/JmFtcDtdJiN4Mjc7ICsgbmFtZSArICYjeDI3Oz0oW14mYW1wOyNdKikmI3gyNzs7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICYjeDI3O2kmI3gyNzspLmV4ZWMod2luZG93LmxvY2F0aW9uLmhyZWYpOwogICAgcmV0dXJuIHJlc3VsdHMgIT0gdW5kZWZpbmVkID8gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMV0pIDogZmFsc2U7CiAgfTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBhbGxJbnB1dHMubGVuZ3RoOyBpKyspIHsKICAgIHZhciByZWdleFN0ciA9ICZxdW90O2ZpZWxkXFxbKFxcZCspXFxdJnF1b3Q7OwogICAgdmFyIHJlc3VsdHMgPSBuZXcgUmVnRXhwKHJlZ2V4U3RyKS5leGVjKGFsbElucHV0c1tpXS5uYW1lKTsKICAgIGlmIChyZXN1bHRzICE9IHVuZGVmaW5lZCkgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gd2luZG93LmNmaWVsZHNbcmVzdWx0c1sxXV07CiAgICB9IGVsc2UgewogICAgICBhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lID0gYWxsSW5wdXRzW2ldLm5hbWU7CiAgICB9CiAgICB2YXIgZmllbGRWYWwgPSBnZXRVcmxQYXJhbShhbGxJbnB1dHNbaV0uZGF0YXNldC5uYW1lKTsKCiAgICBpZiAoZmllbGRWYWwpIHsKICAgICAgaWYgKGFsbElucHV0c1tpXS50eXBlID09ICZxdW90O3JhZGlvJnF1b3Q7IHx8IGFsbElucHV0c1tpXS50eXBlID09ICZxdW90O2NoZWNrYm94JnF1b3Q7KSB7CiAgICAgICAgaWYgKGFsbElucHV0c1tpXS52YWx1ZSA9PSBmaWVsZFZhbCkgewogICAgICAgICAgYWxsSW5wdXRzW2ldLmNoZWNrZWQgPSB0cnVlOwogICAgICAgIH0KICAgICAgfSBlbHNlIHsKICAgICAgICBhbGxJbnB1dHNbaV0udmFsdWUgPSBmaWVsZFZhbDsKICAgICAgfQogICAgfQogIH0KCiAgdmFyIHJlbW92ZV90b29sdGlwcyA9IGZ1bmN0aW9uKCkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICB0b29sdGlwc1tpXS50aXAucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCh0b29sdGlwc1tpXS50aXApOwogICAgfQogICAgICB0b29sdGlwcyA9IFtdOwogIH07CiAgdmFyIHJlbW92ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAodG9vbHRpcHNbaV0uZWxlbSA9PT0gZWxlbSkgewogICAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICAgICAgdG9vbHRpcHMuc3BsaWNlKGksIDEpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogIH07CiAgdmFyIGNyZWF0ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSwgdGV4dCkgewogICAgdmFyIHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCYjeDI3O2RpdiYjeDI3OyksIGFycm93ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgmI3gyNztkaXYmI3gyNzspLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJiN4Mjc7ZGl2JiN4Mjc7KSwgbmV3X3Rvb2x0aXAgPSB7fTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJiN4Mjc7cmFkaW8mI3gyNzsgJmFtcDsmYW1wOyBlbGVtLnR5cGUgIT0gJiN4Mjc7Y2hlY2tib3gmI3gyNzspIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAmI3gyNztfZXJyb3ImI3gyNzs7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICYjeDI3O19lcnJvci1hcnJvdyYjeDI3OzsKICAgICAgaW5uZXIuY2xhc3NOYW1lID0gJiN4Mjc7X2Vycm9yLWlubmVyJiN4Mjc7OwogICAgICBpbm5lci5pbm5lckhUTUwgPSB0ZXh0OwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGFycm93KTsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChpbm5lcik7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5hcHBlbmRDaGlsZCh0b29sdGlwKTsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJiN4Mjc7X2Vycm9yLWlubmVyIF9ub19hcnJvdyYjeDI3OzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiAmbHQ7IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICYjeDI3OyYjeDI3OykgKyAmI3gyNzsgX2JlbG93JiN4Mjc7OwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJiN4Mjc7JiN4Mjc7KSArICYjeDI3OyBfYWJvdmUmI3gyNzs7CiAgICB9CiAgfTsKICB2YXIgcmVzaXplX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoX3JlbW92ZWQpIHJldHVybjsKICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKCF0b29sdGlwc1tpXS5ub19hcnJvdykgcmVzaXplX3Rvb2x0aXAodG9vbHRpcHNbaV0pOwogICAgfQogIH07CiAgdmFyIHZhbGlkYXRlX2ZpZWxkID0gZnVuY3Rpb24oZWxlbSwgcmVtb3ZlKSB7CiAgICB2YXIgdG9vbHRpcCA9IG51bGwsIHZhbHVlID0gZWxlbS52YWx1ZSwgbm9fZXJyb3IgPSB0cnVlOwogICAgcmVtb3ZlID8gcmVtb3ZlX3Rvb2x0aXAoZWxlbSkgOiBmYWxzZTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJiN4Mjc7Y2hlY2tib3gmI3gyNzspIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJiN4Mjc7JiN4Mjc7KTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgmI3gyNztyZXF1aXJlZCYjeDI3OykgIT09IG51bGwpIHsKICAgICAgaWYgKGVsZW0udHlwZSA9PSAmI3gyNztyYWRpbyYjeDI3OyB8fCAoZWxlbS50eXBlID09ICYjeDI3O2NoZWNrYm94JiN4Mjc7ICZhbXA7JmFtcDsgL2FueS8udGVzdChlbGVtLmNsYXNzTmFtZSkpKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXTsKICAgICAgICBpZiAoIShlbGVtcyBpbnN0YW5jZW9mIE5vZGVMaXN0IHx8IGVsZW1zIGluc3RhbmNlb2YgSFRNTENvbGxlY3Rpb24pIHx8IGVsZW1zLmxlbmd0aCAmbHQ7PSAxKSB7CiAgICAgICAgICBub19lcnJvciA9IGVsZW0uY2hlY2tlZDsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBlbGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbXNbaV0uY2hlY2tlZCkgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgJnF1b3Q7UGxlYXNlIHNlbGVjdCBhbiBvcHRpb24uJnF1b3Q7KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09JiN4Mjc7Y2hlY2tib3gmI3gyNzspIHsKICAgICAgICB2YXIgZWxlbXMgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbGVtLm5hbWVdLCBmb3VuZCA9IGZhbHNlLCBlcnIgPSBbXTsKICAgICAgICBub19lcnJvciA9IHRydWU7CiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyBlbGVtcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgaWYgKGVsZW1zW2ldLmdldEF0dHJpYnV0ZSgmI3gyNztyZXF1aXJlZCYjeDI3OykgPT09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgaWYgKCFmb3VuZCAmYW1wOyZhbXA7IGVsZW1zW2ldICE9PSBlbGVtKSByZXR1cm4gdHJ1ZTsKICAgICAgICAgIGZvdW5kID0gdHJ1ZTsKICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZS5yZXBsYWNlKC8gP19oYXNfZXJyb3IgPy9nLCAmI3gyNzsmI3gyNzspOwogICAgICAgICAgaWYgKCFlbGVtc1tpXS5jaGVja2VkKSB7CiAgICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZSArICYjeDI3OyBfaGFzX2Vycm9yJiN4Mjc7OwogICAgICAgICAgICBlcnIucHVzaCgmcXVvdDtDaGVja2luZyAlcyBpcyByZXF1aXJlZCZxdW90Oy5yZXBsYWNlKCZxdW90OyVzJnF1b3Q7LCBlbGVtc1tpXS52YWx1ZSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgZXJyLmpvaW4oJiN4Mjc7Jmx0O2JyLyZndDsmI3gyNzspKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICYjeDI3O1NFTEVDVCYjeDI3OykgewogICAgICAgIHZhciBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgaWYgKGVsZW0ubXVsdGlwbGUpIHsKICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQgJmFtcDsmYW1wOyAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJiN4Mjc7IF9oYXNfZXJyb3ImI3gyNzs7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICZxdW90O1BsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiZxdW90Oyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICYjeDI3OyYjeDI3OykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAmI3gyNzsgX2hhc19lcnJvciYjeDI3OzsKICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAmcXVvdDtUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiZxdW90Oyk7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmYW1wOyZhbXA7IGVsZW0ubmFtZSA9PSAmI3gyNztlbWFpbCYjeDI3OykgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eW1wrX2EtejAtOS0mI3gyNzsmYW1wOz1dKyhcLltcK19hLXowLTktJiN4Mjc7XSspKkBbYS16MC05LV0rKFwuW2EtejAtOS1dKykqKFwuW2Etel17Mix9KSQvaSkpIHsKICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJiN4Mjc7IF9oYXNfZXJyb3ImI3gyNzs7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgJnF1b3Q7RW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLiZxdW90Oyk7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmYW1wOyZhbXA7IC9kYXRlX2ZpZWxkLy50ZXN0KGVsZW0uY2xhc3NOYW1lKSkgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eXGRcZFxkXGQtXGRcZC1cZFxkJC8pKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICYjeDI3OyBfaGFzX2Vycm9yJiN4Mjc7OwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICZxdW90O0VudGVyIGEgdmFsaWQgZGF0ZS4mcXVvdDspOwogICAgICB9CiAgICB9CiAgICB0b29sdGlwID8gcmVzaXplX3Rvb2x0aXAodG9vbHRpcCkgOiBmYWxzZTsKICAgIHJldHVybiBub19lcnJvcjsKICB9OwogIHZhciBuZWVkc192YWxpZGF0ZSA9IGZ1bmN0aW9uKGVsKSB7CiAgICByZXR1cm4gZWwubmFtZSA9PSAmI3gyNztlbWFpbCYjeDI3OyB8fCBlbC5nZXRBdHRyaWJ1dGUoJiN4Mjc7cmVxdWlyZWQmI3gyNzspICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcigmI3gyNzsuX2Zvcm1fZXJyb3ImI3gyNzspLCBub19lcnJvciA9IHRydWU7CiAgICBpZiAoIXN1Ym1pdHRlZCkgewogICAgICBzdWJtaXR0ZWQgPSB0cnVlOwogICAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSAmbHQ7IGxlbjsgaSsrKSB7CiAgICAgICAgdmFyIGlucHV0ID0gYWxsSW5wdXRzW2ldOwogICAgICAgIGlmIChuZWVkc192YWxpZGF0ZShpbnB1dCkpIHsKICAgICAgICAgIGlmIChpbnB1dC50eXBlID09ICYjeDI3O3RleHQmI3gyNzspIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICYjeDI3O2JsdXImI3gyNzssIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAmI3gyNztpbnB1dCYjeDI3OywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50eXBlID09ICYjeDI3O3JhZGlvJiN4Mjc7IHx8IGlucHV0LnR5cGUgPT0gJiN4Mjc7Y2hlY2tib3gmI3gyNzspIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICYjeDI3O2NsaWNrJiN4Mjc7LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQoZWwsIHRydWUpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KShpbnB1dCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnRhZ05hbWUgPT0gJiN4Mjc7U0VMRUNUJiN4Mjc7KSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAmI3gyNztjaGFuZ2UmI3gyNzssIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudHlwZSA9PSAmI3gyNzt0ZXh0YXJlYSYjeDI3Oyl7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAmI3gyNztpbnB1dCYjeDI3OywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmVtb3ZlX3Rvb2x0aXBzKCk7CiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSAmbHQ7IGxlbjsgaSsrKSB7CiAgICAgIHZhciBlbGVtID0gYWxsSW5wdXRzW2ldOwogICAgICBpZiAobmVlZHNfdmFsaWRhdGUoZWxlbSkpIHsKICAgICAgICBpZiAoZWxlbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICZxdW90O3NlbGVjdCZxdW90OykgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICZhbXA7JmFtcDsgZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9CiAgICByZXNpemVfdG9vbHRpcHMoKTsKICAgIHJldHVybiBub19lcnJvcjsKICB9OwogIGFkZEV2ZW50KHdpbmRvdywgJiN4Mjc7cmVzaXplJiN4Mjc7LCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJiN4Mjc7c2Nyb2xsJiN4Mjc7LCByZXNpemVfdG9vbHRpcHMpOwogIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IG51bGw7CiAgaWYgKHR5cGVvZiBzZXJpYWxpemUgIT09ICYjeDI3O3VuZGVmaW5lZCYjeDI3Oykgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICBfbG9hZF9zY3JpcHQoJnF1b3Q7Ly9kM3J4YWlqNTZ2amVnZS5jbG91ZGZyb250Lm5ldC9mb3JtLXNlcmlhbGl6ZS8wLjMvc2VyaWFsaXplLm1pbi5qcyZxdW90OywgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJmFtcDsgZGlzYWJsZSBpdCB1c2luZyBwbGFpbiBqYXZhc2NyaXB0CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJiN4Mjc7I19mb3JtXzM3X3N1Ym1pdCYjeDI3OykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgmI3gyNztfZm9ybV8zN18mI3gyNzspKTsKICAgICAgdmFyIGVyciA9IGZvcm1fdG9fc3VibWl0LnF1ZXJ5U2VsZWN0b3IoJiN4Mjc7Ll9mb3JtX2Vycm9yJiN4Mjc7KTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJiN4Mjc7aHR0cHM6Ly9tb250cmFjb24uYWN0aXZlaG9zdGVkLmNvbS9wcm9jLnBocD8mI3gyNzsgKyBzZXJpYWxpemVkICsgJiN4Mjc7JmFtcDtqc29ucD10cnVlJiN4Mjc7KTsKICAgIH0KICAgIHJldHVybiBmYWxzZTsKICB9OwogIGFkZEV2ZW50KGZvcm1fdG9fc3VibWl0LCAmI3gyNztzdWJtaXQmI3gyNzssIGZvcm1fc3VibWl0KTsKfSkoKTsKCiZsdDsvc2NyaXB0Jmd0Ow==[/fusion_code][fusion_text]
[/fusion_text][fusion_text]
…and we will send you a FREE Montracon notebook!
[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]