The Largest-Ever Crowdfunding Round for a Fintech Startup Completed in 2 Hours

[fusion_builder_container admin_label=”Destop” hundred_percent=”yes” hundred_percent_height=”no” hundred_percent_height_scroll=”no” hundred_percent_height_center_content=”yes” equal_height_columns=”no” menu_anchor=”” hide_on_mobile=”medium-visibility,large-visibility” status=”published” publish_date=”” 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=”2%” padding_right=”10%” padding_bottom=”2%” padding_left=”10%”][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 columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

The Largest-Ever Crowdfunding Round for a Fintech Startup Completed in 2 Hours

[/fusion_text][fusion_imageframe image_id=”7220|full” max_width=”720px” style_type=”” blur=”” stylecolor=”” hover_type=”none” bordersize=”” bordercolor=”” borderradius=”” align=”center” lightbox=”no” gallery_id=”” lightbox_image=”” lightbox_image_id=”” alt=”” link=”” linktarget=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]//www.cfte.education/wp-content/uploads/2018/12/Dtpg3MJWkAAJ9jA.jpg[/fusion_imageframe][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]


Monzo has just raised £20m from 36,006 investors through crowdfunding, making it the largest-ever crowdfunding round for a fintech company.

The crowdfunding was opened to the public this morning (5th December) at 10 AM. In just 2 hours and 45 minutes, they have reached their crowdfunding goal of £20m. Monzo is now valued 40 times more than the valuation given at its first raise in early 2016.

Founded in 2015, Monzo has now more than 1 million users and accounts for 15% of all new bank accounts opening in the UK. It has achieved 80% of its growth through word of mouth and referral.

In October, Monzo has raised a £85m Series E round led by General Catalyst and Accel. The funding was at a pre-money valuation of £1 billion, making it the latest UK tech start-up to reach the unicorn milestone.

Challenger banks are now disrupting the traditional banking industry. As finance becomes digital, understanding financial technology is more and more critical to succeed in finance. At CFTE, to bridge the knowledge gap, we’ve developed a Fintech Foundation Course with 4 senior lecturers and 16 industry experts (Fintech CEOs, heads of innovation and investors). The course is designed for learners to get a solid knowledge of what’s happening in Fintech – with various examples such as Challenger Banks growth models. If you’re interested in joining the rank of our international alumni, join our online course and start learning from experts at your own pace.

Monzo’s hyper growth is one use case of how Digital and Technology are creating new opportunities in Finance. Join CFTE and embrace the change.

[/fusion_text][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”” icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

Related Posts

[/fusion_text][fusion_recent_posts layout=”default” hover_type=”none” columns=”3″ number_posts=”3″ offset=”1″ pull_by=”category” cat_slug=”” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”yes” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”yes” meta_tags=”no” content_alignment=”” excerpt=”yes” excerpt_length=”35″ strip_html=”yes” scrolling=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][fusion_separator style_type=”default” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”” icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][fusion_code]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiM4ZjA3MDcgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgYm90dG9tOjM5cHg7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyB7IHBhZGRpbmctdG9wOjRweDsgdG9wOjEwMCU7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSAuX2Vycm9yLWFycm93IHsgYm90dG9tOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3IuX2JlbG93IC5fZXJyb3ItYXJyb3cgeyB0b3A6MDsgcmlnaHQ6MTVweDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZCAjZjM3YzdiOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lciB7IHBhZGRpbmc6OHB4IDEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjsgZm9udC1zaXplOjEzcHg7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IG1hcmdpbi1ib3R0b206NXB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0KICNfZm9ybV85XyAuX2J1dHRvbi13cmFwcGVyIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBwb3NpdGlvbjpzdGF0aWM7IH0KICNfZm9ybV85XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvdyB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItYXJyb3cgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MDsgaGVpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLWh0bWwgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KIC5waWthLXNpbmdsZSB7IHotaW5kZXg6MTAwMDAwMDEgIWltcG9ydGFudDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6bm9uZTsgfQogI19mb3JtXzlfIHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IG1pbi13aWR0aDoxMDAlOyBtYXgtd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gKiB7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MWVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWNvbnRlbnQgeyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1pbm5lciB7IGRpc3BsYXk6YmxvY2s7IG1pbi13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRpdGxlLCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjA7IG1hcmdpbi1sZWZ0OjA7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MS4yZW07IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCB7IG1hcmdpbjowIDAgMjBweDsgcGFkZGluZzowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWVsZW1lbnQsI19mb3JtXzlfIC5faW5saW5lLXN0eWxlLCNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGxhYmVsLCNfZm9ybV85XyBwLCNfZm9ybV85XyB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKSB7IGZsb2F0Om5vbmU7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93LCNfZm9ybV85XyBwLCNfZm9ybV85XyBsYWJlbCB7IG1hcmdpbi1ib3R0b206MC43ZW07IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLCNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJyYWRpbyJdIHsgbWFyZ2luOjAgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdICsgc3BhbiBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fOV8gLl9yb3cgc3BhbiBsYWJlbCB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0taW1hZ2UgeyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXSB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdodDoxLjNlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJyYWRpbyJdLCNfZm9ybV85XyBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpZHRoOjEuM2VtOyBoZWlnaHQ6MS4zZW07IGZvbnQtc2l6ZToxZW07IG1hcmdpbjowIDAuM2VtIDAgMDsgdmVydGljYWwtYWxpZ246YmFzZWxpbmU7IH0KICNfZm9ybV85XyBidXR0b25bdHlwZT0ic3VibWl0Il0geyBwYWRkaW5nOjIwcHg7IGZvbnQtc2l6ZToxLjVlbTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luOjIwcHggMCAwICFpbXBvcnRhbnQ7IH0KIH0KICNfZm9ybV85XyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjoyNXB4IGF1dG8gMDsgcGFkZGluZzoyMHB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgKnpvb206MTsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjowcHggc29saWQgI2IwYjBiMCAhaW1wb3J0YW50OyB3aWR0aDo1MDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToyMnB4OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXdlaWdodDo2MDA7IG1hcmdpbi1ib3R0b206MDsgfQogI19mb3JtXzlfOmJlZm9yZSwjX2Zvcm1fOV86YWZ0ZXIgeyBjb250ZW50OiIgIjsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzlfOmFmdGVyIHsgY2xlYXI6Ym90aDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgeyB3aWR0aDphdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9ImRhdGUiXSB7IHBhZGRpbmc6MTBweCAxMnB4OyB9CiAjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBidXR0b24uX2lubGluZS1zdHlsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MjdweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSAuX2J1dHRvbi13cmFwcGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjoyN3B4IDEyLjVweCAwIDIwcHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGhhbmsteW91IHsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxOHB4OyB9CiBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCkgeyAjX2Zvcm1fOV8uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQo8L3N0eWxlPgo8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iaHR0cHM6Ly9jZnRlLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHAiIGlkPSJfZm9ybV85XyIgY2xhc3M9Il9mb3JtIF9mb3JtXzkgX2lubGluZS1mb3JtICBfZGFyayIgbm92YWxpZGF0ZT4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1IiB2YWx1ZT0iOSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmIiB2YWx1ZT0iOSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImMiIHZhbHVlPSIwIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im0iIHZhbHVlPSIwIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InN1YiIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2IiB2YWx1ZT0iMiIgLz4KICA8ZGl2IGNsYXNzPSJfZm9ybS1jb250ZW50Ij4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g1NDI0Mzk4MiBfZnVsbF93aWR0aCBfY2xlYXIiID4KICAgICAgPGRpdiBjbGFzcz0iX2Zvcm0tdGl0bGUiPgogICAgICAgIFN1YnNjcmliZSB0byBvdXIgV2Vla2x5IE5ld3NsZXR0ZXIKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g2MDkzMzQ3MiBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgRmlyc3QgTmFtZSoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmaXJzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgZmlyc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDQyNjQ4NjAwIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBMYXN0IE5hbWUqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGFzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbGFzdCBuYW1lIiByZXF1aXJlZC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MDQ5NzQ5MTkgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIEVtYWlsKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGVtYWlsIiByZXF1aXJlZC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDEgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIENvdW50cnkqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8c2VsZWN0IG5hbWU9ImZpZWxkWzFdIiByZXF1aXJlZD4KICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFmZ2hhbmlzdGFuIiA+CiAgICAgICAgICAgIEFmZ2hhbmlzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFsYmFuaWEiID4KICAgICAgICAgICAgQWxiYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGdlcmlhIiA+CiAgICAgICAgICAgIEFsZ2VyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW1lcmljYW4gU2Ftb2EiID4KICAgICAgICAgICAgQW1lcmljYW4gU2Ftb2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW5kb3JyYSIgPgogICAgICAgICAgICBBbmRvcnJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ29sYSIgPgogICAgICAgICAgICBBbmdvbGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW5ndWlsbGEiID4KICAgICAgICAgICAgQW5ndWlsbGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW50YXJjdGljYSIgPgogICAgICAgICAgICBBbnRhcmN0aWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGlndWEgYW5kIEJhcmJ1ZGEiID4KICAgICAgICAgICAgQW50aWd1YSBhbmQgQmFyYnVkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcmdlbnRpbmEiID4KICAgICAgICAgICAgQXJnZW50aW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFybWVuaWEiID4KICAgICAgICAgICAgQXJtZW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcnViYSIgPgogICAgICAgICAgICBBcnViYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmFsaWEiID4KICAgICAgICAgICAgQXVzdHJhbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkF1c3RyaWEiID4KICAgICAgICAgICAgQXVzdHJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBemVyYmFpamFuIiA+CiAgICAgICAgICAgIEF6ZXJiYWlqYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFoYW1hcyIgPgogICAgICAgICAgICBCYWhhbWFzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaHJhaW4iID4KICAgICAgICAgICAgQmFocmFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYW5nbGFkZXNoIiA+CiAgICAgICAgICAgIEJhbmdsYWRlc2gKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFyYmFkb3MiID4KICAgICAgICAgICAgQmFyYmFkb3MKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsYXJ1cyIgPgogICAgICAgICAgICBCZWxhcnVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGdpdW0iID4KICAgICAgICAgICAgQmVsZ2l1bQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxpemUiID4KICAgICAgICAgICAgQmVsaXplCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbmluIiA+CiAgICAgICAgICAgIEJlbmluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlcm11ZGEiID4KICAgICAgICAgICAgQmVybXVkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCaHV0YW4iID4KICAgICAgICAgICAgQmh1dGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvbGl2aWEiID4KICAgICAgICAgICAgQm9saXZpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiA+CiAgICAgICAgICAgIEJvc25pYSBhbmQgSGVyemVnb3ZpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm90c3dhbmEiID4KICAgICAgICAgICAgQm90c3dhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm91dmV0IElzbGFuZCIgPgogICAgICAgICAgICBCb3V2ZXQgSXNsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyYXppbCIgPgogICAgICAgICAgICBCcmF6aWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiA+CiAgICAgICAgICAgIEJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcnVuZWkgRGFydXNzYWxhbSIgPgogICAgICAgICAgICBCcnVuZWkgRGFydXNzYWxhbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdWxnYXJpYSIgPgogICAgICAgICAgICBCdWxnYXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdXJraW5hIEZhc28iID4KICAgICAgICAgICAgQnVya2luYSBGYXNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1cnVuZGkiID4KICAgICAgICAgICAgQnVydW5kaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW1ib2RpYSIgPgogICAgICAgICAgICBDYW1ib2RpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW1lcm9vbiIgPgogICAgICAgICAgICBDYW1lcm9vbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW5hZGEiID4KICAgICAgICAgICAgQ2FuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNhcGUgVmVyZGUiID4KICAgICAgICAgICAgQ2FwZSBWZXJkZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYXltYW4gSXNsYW5kcyIgPgogICAgICAgICAgICBDYXltYW4gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiID4KICAgICAgICAgICAgQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoYWQiID4KICAgICAgICAgICAgQ2hhZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGlsZSIgPgogICAgICAgICAgICBDaGlsZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGluYSIgPgogICAgICAgICAgICBDaGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaHJpc3RtYXMgSXNsYW5kIiA+CiAgICAgICAgICAgIENocmlzdG1hcyBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiID4KICAgICAgICAgICAgQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29sb21iaWEiID4KICAgICAgICAgICAgQ29sb21iaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29tb3JvcyIgPgogICAgICAgICAgICBDb21vcm9zCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbmdvIiA+CiAgICAgICAgICAgIENvbmdvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiID4KICAgICAgICAgICAgQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb29rIElzbGFuZHMiID4KICAgICAgICAgICAgQ29vayBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvc3RhIFJpY2EiID4KICAgICAgICAgICAgQ29zdGEgUmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3RlIEQmIzAzOTtJdm9pcmUiID4KICAgICAgICAgICAgQ290ZSBEJiMwMzk7SXZvaXJlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNyb2F0aWEiID4KICAgICAgICAgICAgQ3JvYXRpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDdWJhIiA+CiAgICAgICAgICAgIEN1YmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3lwcnVzIiA+CiAgICAgICAgICAgIEN5cHJ1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDemVjaCBSZXB1YmxpYyIgPgogICAgICAgICAgICBDemVjaCBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJEZW5tYXJrIiA+CiAgICAgICAgICAgIERlbm1hcmsKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGppYm91dGkiID4KICAgICAgICAgICAgRGppYm91dGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRG9taW5pY2EiID4KICAgICAgICAgICAgRG9taW5pY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRG9taW5pY2FuIFJlcHVibGljIiA+CiAgICAgICAgICAgIERvbWluaWNhbiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFY3VhZG9yIiA+CiAgICAgICAgICAgIEVjdWFkb3IKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWd5cHQiID4KICAgICAgICAgICAgRWd5cHQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWwgU2FsdmFkb3IiID4KICAgICAgICAgICAgRWwgU2FsdmFkb3IKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXF1YXRvcmlhbCBHdWluZWEiID4KICAgICAgICAgICAgRXF1YXRvcmlhbCBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXJpdHJlYSIgPgogICAgICAgICAgICBFcml0cmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVzdG9uaWEiID4KICAgICAgICAgICAgRXN0b25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFdGhpb3BpYSIgPgogICAgICAgICAgICBFdGhpb3BpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiID4KICAgICAgICAgICAgRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZhcm9lIElzbGFuZHMiID4KICAgICAgICAgICAgRmFyb2UgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGaWppIiA+CiAgICAgICAgICAgIEZpamkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlubGFuZCIgPgogICAgICAgICAgICBGaW5sYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyYW5jZSIgPgogICAgICAgICAgICBGcmFuY2UKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIEd1aWFuYSIgPgogICAgICAgICAgICBGcmVuY2ggR3VpYW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBQb2x5bmVzaWEiID4KICAgICAgICAgICAgRnJlbmNoIFBvbHluZXNpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiID4KICAgICAgICAgICAgRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhYm9uIiA+CiAgICAgICAgICAgIEdhYm9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhbWJpYSIgPgogICAgICAgICAgICBHYW1iaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2VvcmdpYSIgPgogICAgICAgICAgICBHZW9yZ2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikdlcm1hbnkiID4KICAgICAgICAgICAgR2VybWFueQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHaGFuYSIgPgogICAgICAgICAgICBHaGFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHaWJyYWx0YXIiID4KICAgICAgICAgICAgR2licmFsdGFyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVjZSIgPgogICAgICAgICAgICBHcmVlY2UKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlZW5sYW5kIiA+CiAgICAgICAgICAgIEdyZWVubGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVuYWRhIiA+CiAgICAgICAgICAgIEdyZW5hZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhZGVsb3VwZSIgPgogICAgICAgICAgICBHdWFkZWxvdXBlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YW0iID4KICAgICAgICAgICAgR3VhbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWF0ZW1hbGEiID4KICAgICAgICAgICAgR3VhdGVtYWxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1ZXJuc2V5IiA+CiAgICAgICAgICAgIEd1ZXJuc2V5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1aW5lYSIgPgogICAgICAgICAgICBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VpbmVhLUJpc3NhdSIgPgogICAgICAgICAgICBHdWluZWEtQmlzc2F1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1eWFuYSIgPgogICAgICAgICAgICBHdXlhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSGFpdGkiID4KICAgICAgICAgICAgSGFpdGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzIiA+CiAgICAgICAgICAgIEhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSIgPgogICAgICAgICAgICBIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25kdXJhcyIgPgogICAgICAgICAgICBIb25kdXJhcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25nIEtvbmciID4KICAgICAgICAgICAgSG9uZyBLb25nCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikh1bmdhcnkiID4KICAgICAgICAgICAgSHVuZ2FyeQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJY2VsYW5kIiA+CiAgICAgICAgICAgIEljZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kaWEiID4KICAgICAgICAgICAgSW5kaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kb25lc2lhIiA+CiAgICAgICAgICAgIEluZG9uZXNpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIElyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhcSIgPgogICAgICAgICAgICBJcmFxCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyZWxhbmQiID4KICAgICAgICAgICAgSXJlbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJc3JhZWwiID4KICAgICAgICAgICAgSXNyYWVsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikl0YWx5IiA+CiAgICAgICAgICAgIEl0YWx5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkphbWFpY2EiID4KICAgICAgICAgICAgSmFtYWljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYXBhbiIgPgogICAgICAgICAgICBKYXBhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKb3JkYW4iID4KICAgICAgICAgICAgSm9yZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkthemFraHN0YW4iID4KICAgICAgICAgICAgS2F6YWtoc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLZW55YSIgPgogICAgICAgICAgICBLZW55YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLaXJpYmF0aSIgPgogICAgICAgICAgICBLaXJpYmF0aQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUmIzAzOTtzIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIEtvcmVhLCBEZW1vY3JhdGljIFBlb3BsZSYjMDM5O3MgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEsIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIEtvcmVhLCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLdXdhaXQiID4KICAgICAgICAgICAgS3V3YWl0CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikt5cmd5enN0YW4iID4KICAgICAgICAgICAgS3lyZ3l6c3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMYW8gUGVvcGxlJiMwMzk7cyBEZW1vY3JhdGljIFJlcHVibGljIiA+CiAgICAgICAgICAgIExhbyBQZW9wbGUmIzAzOTtzIERlbW9jcmF0aWMgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGF0dmlhIiA+CiAgICAgICAgICAgIExhdHZpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMZWJhbm9uIiA+CiAgICAgICAgICAgIExlYmFub24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGVzb3RobyIgPgogICAgICAgICAgICBMZXNvdGhvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpYmVyaWEiID4KICAgICAgICAgICAgTGliZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiA+CiAgICAgICAgICAgIExpYnlhbiBBcmFiIEphbWFoaXJpeWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGllY2h0ZW5zdGVpbiIgPgogICAgICAgICAgICBMaWVjaHRlbnN0ZWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpdGh1YW5pYSIgPgogICAgICAgICAgICBMaXRodWFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTHV4ZW1ib3VyZyIgPgogICAgICAgICAgICBMdXhlbWJvdXJnCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hY2FvIiA+CiAgICAgICAgICAgIE1hY2FvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFkYWdhc2NhciIgPgogICAgICAgICAgICBNYWRhZ2FzY2FyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGF3aSIgPgogICAgICAgICAgICBNYWxhd2kKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsYXlzaWEiID4KICAgICAgICAgICAgTWFsYXlzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsZGl2ZXMiID4KICAgICAgICAgICAgTWFsZGl2ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsaSIgPgogICAgICAgICAgICBNYWxpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbHRhIiA+CiAgICAgICAgICAgIE1hbHRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hcnNoYWxsIElzbGFuZHMiID4KICAgICAgICAgICAgTWFyc2hhbGwgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXJ0aW5pcXVlIiA+CiAgICAgICAgICAgIE1hcnRpbmlxdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWF1cml0YW5pYSIgPgogICAgICAgICAgICBNYXVyaXRhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hdXJpdGl1cyIgPgogICAgICAgICAgICBNYXVyaXRpdXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWF5b3R0ZSIgPgogICAgICAgICAgICBNYXlvdHRlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1leGljbyIgPgogICAgICAgICAgICBNZXhpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZiIgPgogICAgICAgICAgICBNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbGRvdmEsIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIE1vbGRvdmEsIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbmFjbyIgPgogICAgICAgICAgICBNb25hY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9uZ29saWEiID4KICAgICAgICAgICAgTW9uZ29saWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9udGVuZWdybyIgPgogICAgICAgICAgICBNb250ZW5lZ3JvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbnRzZXJyYXQiID4KICAgICAgICAgICAgTW9udHNlcnJhdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb3JvY2NvIiA+CiAgICAgICAgICAgIE1vcm9jY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW96YW1iaXF1ZSIgPgogICAgICAgICAgICBNb3phbWJpcXVlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik15YW5tYXIiID4KICAgICAgICAgICAgTXlhbm1hcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOYW1pYmlhIiA+CiAgICAgICAgICAgIE5hbWliaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmF1cnUiID4KICAgICAgICAgICAgTmF1cnUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmVwYWwiID4KICAgICAgICAgICAgTmVwYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV0aGVybGFuZHMiID4KICAgICAgICAgICAgTmV0aGVybGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV0aGVybGFuZHMgQW50aWxsZXMiID4KICAgICAgICAgICAgTmV0aGVybGFuZHMgQW50aWxsZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV3IENhbGVkb25pYSIgPgogICAgICAgICAgICBOZXcgQ2FsZWRvbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBaZWFsYW5kIiA+CiAgICAgICAgICAgIE5ldyBaZWFsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pY2FyYWd1YSIgPgogICAgICAgICAgICBOaWNhcmFndWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmlnZXIiID4KICAgICAgICAgICAgTmlnZXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmlnZXJpYSIgPgogICAgICAgICAgICBOaWdlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pdWUiID4KICAgICAgICAgICAgTml1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3Jmb2xrIElzbGFuZCIgPgogICAgICAgICAgICBOb3Jmb2xrIElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiID4KICAgICAgICAgICAgTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5vcndheSIgPgogICAgICAgICAgICBOb3J3YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT21hbiIgPgogICAgICAgICAgICBPbWFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBha2lzdGFuIiA+CiAgICAgICAgICAgIFBha2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhbGF1IiA+CiAgICAgICAgICAgIFBhbGF1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQiID4KICAgICAgICAgICAgUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYW5hbWEiID4KICAgICAgICAgICAgUGFuYW1hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhcHVhIE5ldyBHdWluZWEiID4KICAgICAgICAgICAgUGFwdWEgTmV3IEd1aW5lYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXJhZ3VheSIgPgogICAgICAgICAgICBQYXJhZ3VheQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQZXJ1IiA+CiAgICAgICAgICAgIFBlcnUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGhpbGlwcGluZXMiID4KICAgICAgICAgICAgUGhpbGlwcGluZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGl0Y2Fpcm4iID4KICAgICAgICAgICAgUGl0Y2Fpcm4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9sYW5kIiA+CiAgICAgICAgICAgIFBvbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQb3J0dWdhbCIgPgogICAgICAgICAgICBQb3J0dWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQdWVydG8gUmljbyIgPgogICAgICAgICAgICBQdWVydG8gUmljbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJRYXRhciIgPgogICAgICAgICAgICBRYXRhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSZXVuaW9uIiA+CiAgICAgICAgICAgIFJldW5pb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUm9tYW5pYSIgPgogICAgICAgICAgICBSb21hbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ1c3NpYW4gRmVkZXJhdGlvbiIgPgogICAgICAgICAgICBSdXNzaWFuIEZlZGVyYXRpb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUndhbmRhIiA+CiAgICAgICAgICAgIFJ3YW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBIZWxlbmEiID4KICAgICAgICAgICAgU2FpbnQgSGVsZW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEtpdHRzIGFuZCBOZXZpcyIgPgogICAgICAgICAgICBTYWludCBLaXR0cyBhbmQgTmV2aXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgTHVjaWEiID4KICAgICAgICAgICAgU2FpbnQgTHVjaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbiIgPgogICAgICAgICAgICBTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiA+CiAgICAgICAgICAgIFNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhbW9hIiA+CiAgICAgICAgICAgIFNhbW9hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhbiBNYXJpbm8iID4KICAgICAgICAgICAgU2FuIE1hcmlubwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiID4KICAgICAgICAgICAgU2FvIFRvbWUgYW5kIFByaW5jaXBlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhdWRpIEFyYWJpYSIgPgogICAgICAgICAgICBTYXVkaSBBcmFiaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2VuZWdhbCIgPgogICAgICAgICAgICBTZW5lZ2FsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlcmJpYSIgPgogICAgICAgICAgICBTZXJiaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2V5Y2hlbGxlcyIgPgogICAgICAgICAgICBTZXljaGVsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpZXJyYSBMZW9uZSIgPgogICAgICAgICAgICBTaWVycmEgTGVvbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2luZ2Fwb3JlIiA+CiAgICAgICAgICAgIFNpbmdhcG9yZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTbG92YWtpYSIgPgogICAgICAgICAgICBTbG92YWtpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTbG92ZW5pYSIgPgogICAgICAgICAgICBTbG92ZW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb2xvbW9uIElzbGFuZHMiID4KICAgICAgICAgICAgU29sb21vbiBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNvbWFsaWEiID4KICAgICAgICAgICAgU29tYWxpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBBZnJpY2EiID4KICAgICAgICAgICAgU291dGggQWZyaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNwYWluIiA+CiAgICAgICAgICAgIFNwYWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNyaSBMYW5rYSIgPgogICAgICAgICAgICBTcmkgTGFua2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3VkYW4iID4KICAgICAgICAgICAgU3VkYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3VyaW5hbWUiID4KICAgICAgICAgICAgU3VyaW5hbWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3ZhbGJhcmQgYW5kIEphbiBNYXllbiIgPgogICAgICAgICAgICBTdmFsYmFyZCBhbmQgSmFuIE1heWVuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3YXppbGFuZCIgPgogICAgICAgICAgICBTd2F6aWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dlZGVuIiA+CiAgICAgICAgICAgIFN3ZWRlbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2l0emVybGFuZCIgPgogICAgICAgICAgICBTd2l0emVybGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgPgogICAgICAgICAgICBTeXJpYW4gQXJhYiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiA+CiAgICAgICAgICAgIFRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFqaWtpc3RhbiIgPgogICAgICAgICAgICBUYWppa2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgVGFuemFuaWEsIFVuaXRlZCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUaGFpbGFuZCIgPgogICAgICAgICAgICBUaGFpbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUaW1vci1MZXN0ZSIgPgogICAgICAgICAgICBUaW1vci1MZXN0ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb2dvIiA+CiAgICAgICAgICAgIFRvZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9rZWxhdSIgPgogICAgICAgICAgICBUb2tlbGF1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRvbmdhIiA+CiAgICAgICAgICAgIFRvbmdhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRyaW5pZGFkIGFuZCBUb2JhZ28iID4KICAgICAgICAgICAgVHJpbmlkYWQgYW5kIFRvYmFnbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdW5pc2lhIiA+CiAgICAgICAgICAgIFR1bmlzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya2V5IiA+CiAgICAgICAgICAgIFR1cmtleQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrbWVuaXN0YW4iID4KICAgICAgICAgICAgVHVya21lbmlzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyIgPgogICAgICAgICAgICBUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHV2YWx1IiA+CiAgICAgICAgICAgIFR1dmFsdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVZ2FuZGEiID4KICAgICAgICAgICAgVWdhbmRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVrcmFpbmUiID4KICAgICAgICAgICAgVWtyYWluZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgQXJhYiBFbWlyYXRlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgS2luZ2RvbSIgPgogICAgICAgICAgICBVbml0ZWQgS2luZ2RvbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgU3RhdGVzIiA+CiAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiA+CiAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVcnVndWF5IiA+CiAgICAgICAgICAgIFVydWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXpiZWtpc3RhbiIgPgogICAgICAgICAgICBVemJla2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZhbnVhdHUiID4KICAgICAgICAgICAgVmFudWF0dQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWZW5lenVlbGEiID4KICAgICAgICAgICAgVmVuZXp1ZWxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZpZXRuYW0iID4KICAgICAgICAgICAgVmlldG5hbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgQnJpdGlzaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgVS5zLiIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgVS5zLgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXYWxsaXMgYW5kIEZ1dHVuYSIgPgogICAgICAgICAgICBXYWxsaXMgYW5kIEZ1dHVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXZXN0ZXJuIFNhaGFyYSIgPgogICAgICAgICAgICBXZXN0ZXJuIFNhaGFyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJZZW1lbiIgPgogICAgICAgICAgICBZZW1lbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaYW1iaWEiID4KICAgICAgICAgICAgWmFtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlppbWJhYndlIiA+CiAgICAgICAgICAgIFppbWJhYndlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNHIiA+CiAgICAgICAgICAgIFNHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBTkFEQSIgPgogICAgICAgICAgICBDQU5BREEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEiID4KICAgICAgICAgICAgS29yZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiA+CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikx1eGVtYm91cmdoIiA+CiAgICAgICAgICAgIEx1eGVtYm91cmdoCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1ZIiA+CiAgICAgICAgICAgIE1ZCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTV0FSVElOSSIgPgogICAgICAgICAgICBFU1dBUlRJTkkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZVN3YXRpbmkgIiA+CiAgICAgICAgICAgIGVTd2F0aW5pCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNaIiA+CiAgICAgICAgICAgIFNaCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBIiA+CiAgICAgICAgICAgIENBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWF0IEJyaXRhaW4iID4KICAgICAgICAgICAgR3JlYXQgQnJpdGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSdXNzaWEiID4KICAgICAgICAgICAgUnVzc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbmcgS29uZyBTQVIgQ2hpbmEiID4KICAgICAgICAgICAgSG9uZyBLb25nIFNBUiBDaGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMb25kb24iID4KICAgICAgICAgICAgTG9uZG9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVBIiA+CiAgICAgICAgICAgIFVBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNYIiA+CiAgICAgICAgICAgIFNYCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNLIiA+CiAgICAgICAgICAgIFNLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNFIiA+CiAgICAgICAgICAgIFNFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJPIiA+CiAgICAgICAgICAgIFJPCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBUIiA+CiAgICAgICAgICAgIFBUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBMIiA+CiAgICAgICAgICAgIFBMCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5PIiA+CiAgICAgICAgICAgIE5PCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5MIiA+CiAgICAgICAgICAgIE5MCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1UIiA+CiAgICAgICAgICAgIE1UCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxVIiA+CiAgICAgICAgICAgIExVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxJIiA+CiAgICAgICAgICAgIExJCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklUIiA+CiAgICAgICAgICAgIElUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklFIiA+CiAgICAgICAgICAgIElFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhVIiA+CiAgICAgICAgICAgIEhVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdSIiA+CiAgICAgICAgICAgIEdSCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdHIiA+CiAgICAgICAgICAgIEdHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdEIiA+CiAgICAgICAgICAgIEdECiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdCIiA+CiAgICAgICAgICAgIEdCCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZSIiA+CiAgICAgICAgICAgIEZSCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTIiA+CiAgICAgICAgICAgIEVTCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRLIiA+CiAgICAgICAgICAgIERLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRFIiA+CiAgICAgICAgICAgIERFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNaIiA+CiAgICAgICAgICAgIENaCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNZIiA+CiAgICAgICAgICAgIENZCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNIIiA+CiAgICAgICAgICAgIENICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJHIiA+CiAgICAgICAgICAgIEJHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFYIiA+CiAgICAgICAgICAgIEFYCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFUIiA+CiAgICAgICAgICAgIEFUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZOIiA+CiAgICAgICAgICAgIFZOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRIIiA+CiAgICAgICAgICAgIFRICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhLIiA+CiAgICAgICAgICAgIEhLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFVIiA+CiAgICAgICAgICAgIEFVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNOIiA+CiAgICAgICAgICAgIENOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1NIiA+CiAgICAgICAgICAgIE1NCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxLIiA+CiAgICAgICAgICAgIExLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRXIiA+CiAgICAgICAgICAgIFRXCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBLIiA+CiAgICAgICAgICAgIFBLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklOIiA+CiAgICAgICAgICAgIElOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktXIiA+CiAgICAgICAgICAgIEtXCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJUIiA+CiAgICAgICAgICAgIEJUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxBIiA+CiAgICAgICAgICAgIExBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBIIiA+CiAgICAgICAgICAgIFBICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkpQIiA+CiAgICAgICAgICAgIEpQCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktIIiA+CiAgICAgICAgICAgIEtICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklEIiA+CiAgICAgICAgICAgIElECiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhaXdhbiIgPgogICAgICAgICAgICBUYWl3YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgIDwvc2VsZWN0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQyIF9mdWxsX3dpZHRoICIgPgogICAgICA8ZGl2IGNsYXNzPSJfcm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgIFByaXZhY3kgUG9saWN5KgogICAgICAgIDwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWVsZFsyXVtdIiB2YWx1ZT0ifnwiPgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8ySSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFsyXVtdIiB2YWx1ZT0iSSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkiIGNsYXNzPSJhbnkiICByZXF1aXJlZD4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSI+CiAgICAgICAgICAgIEkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX2ZpZWxkMyBfZnVsbF93aWR0aCAiID4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICBDb21tdW5pY2F0aW9uIG9wdGlvbnMKICAgICAgICA8L2xhYmVsPgogICAgICA8L2Rpdj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9In58Ij4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9IkkmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJJiMwMzk7bSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbCI+CiAgICAgICAgICAgIEkmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzNJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZ2VuZXJhbCBuZXdzbGV0dGVyIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiPgogICAgICAgICAgICBJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzNdW10iIHZhbHVlPSJJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBldmVudHMgbmV3c2xldHRlciAiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICI+CiAgICAgICAgICAgIEkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzNJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSeKAmW0gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwuIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4iPgogICAgICAgICAgICBJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fOV9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgIFN1Ym1pdAogICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgPC9kaXY+CjwvZm9ybT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5jZmllbGRzID0geyIxIjoiY291bnRyeSIsIjIiOiJwcml2YWN5X3BvbGljeSIsIjMiOiJjb21tdW5pY2F0aW9uX29wdGlvbnMifTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCB0aGFua195b3UgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS10aGFuay15b3UnKTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB0aGFua195b3UuaW5uZXJIVE1MID0gbWVzc2FnZTsKICB0aGFua195b3Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgiZXhjbHVkZWZvcm0iKSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDsgKScgKyBuYW1lICsgJz0oW147XSspJykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArIHZhbHVlICsgJzsgZXhwaXJlcz0nICsgbm93ICsgJztwYXRoPS8nOwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsnb24nICsgZXZlbnRdOwogICAgICBlbGVtZW50WydvbicgKyBldmVudF0gPSBmdW5jdGlvbigpIHsKICAgICAgICBvbGRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfQogIH0KICB2YXIgX3JlbW92ZWQgPSBmYWxzZTsKICB2YXIgZm9ybV90b19zdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSwgdG9vbHRpcHMgPSBbXSwgc3VibWl0dGVkID0gZmFsc2U7CgogIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciByZWdleFN0ciA9ICdbXD8mXScgKyBuYW1lICsgJz0oW14mI10qKSc7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICdpJykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAncmFkaW8nICYmIGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvcic7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICdfZXJyb3ItYXJyb3cnOwogICAgICBpbm5lci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyJzsKICAgICAgaW5uZXIuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChhcnJvdyk7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICBlbGVtLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodG9vbHRpcCk7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX25vX2Fycm93JzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2JlbG93JzsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2Fib3ZlJzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICdyYWRpbycgfHwgKGVsZW0udHlwZSA9PSAnY2hlY2tib3gnICYmIC9hbnkvLnRlc3QoZWxlbS5jbGFzc05hbWUpKSkgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV07CiAgICAgICAgaWYgKCEoZWxlbXMgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBlbGVtcyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB8fCBlbGVtcy5sZW5ndGggPD0gMSkgewogICAgICAgICAgbm9fZXJyb3IgPSBlbGVtLmNoZWNrZWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW1zW2ldLmNoZWNrZWQpIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09J2NoZWNrYm94JykgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV0sIGZvdW5kID0gZmFsc2UsIGVyciA9IFtdOwogICAgICAgIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoZWxlbXNbaV0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJiYgZWxlbXNbaV0gIT09IGVsZW0pIHJldHVybiB0cnVlOwogICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgICBlcnIucHVzaCgiQ2hlY2tpbmcgJXMgaXMgcmVxdWlyZWQiLnJlcGxhY2UoIiVzIiwgZWxlbXNbaV0udmFsdWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sIGVyci5qb2luKCc8YnIvPicpKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICBpZiAoZWxlbS5tdWx0aXBsZSkgewogICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCAmJiAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICdlbWFpbCcgfHwgZWwuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHQnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3JhZGlvJyB8fCBpbnB1dC50eXBlID09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJlbW92ZV90b29sdGlwcygpOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgZWxlbSA9IGFsbElucHV0c1tpXTsKICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGVsZW0pKSB7CiAgICAgICAgaWYgKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAic2VsZWN0IikgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICYmIGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgcmVzaXplX3Rvb2x0aXBzKCk7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICBhZGRFdmVudCh3aW5kb3csICdyZXNpemUnLCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHJlc2l6ZV90b29sdGlwcyk7CiAgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gbnVsbDsKICBpZiAodHlwZW9mIHNlcmlhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IHdpbmRvdy5zZXJpYWxpemU7CiAgX2xvYWRfc2NyaXB0KCIvL2QzcnhhaWo1NnZqZWdlLmNsb3VkZnJvbnQubmV0L2Zvcm0tc2VyaWFsaXplLzAuMy9zZXJpYWxpemUubWluLmpzIiwgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJiBkaXNhYmxlIGl0IHVzaW5nIHBsYWluIGphdmFzY3JpcHQKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19mb3JtXzlfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwPycgKyBzZXJpYWxpemVkICsgJyZqc29ucD10cnVlJyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJ3N1Ym1pdCcsIGZvcm1fc3VibWl0KTsKfSkoKTsKCjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container admin_label=”Mobile” hundred_percent=”yes” 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” status=”published” publish_date=”” 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=”2%” padding_right=”2%” padding_bottom=”2%” padding_left=”2%”][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 columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

The Largest-Ever Crowdfunding Round for a Fintech Startup Completed in 2 Hours

[/fusion_text][fusion_imageframe image_id=”7220|full” max_width=”720px” style_type=”” blur=”” stylecolor=”” hover_type=”none” bordersize=”” bordercolor=”” borderradius=”” align=”center” lightbox=”no” gallery_id=”” lightbox_image=”” lightbox_image_id=”” alt=”” link=”” linktarget=”_self” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]//www.cfte.education/wp-content/uploads/2018/12/Dtpg3MJWkAAJ9jA.jpg[/fusion_imageframe][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]


Monzo has just raised £20m from 36,006 investors through crowdfunding, making it the largest-ever crowdfunding round for a fintech company.

The crowdfunding was opened to the public this morning (5th December) at 10 AM. In just 2 hours and 45 minutes, they have reached their crowdfunding goal of £20m. Monzo is now valued 40 times more than the valuation given at its first raise in early 2016.

Founded in 2015, Monzo has now more than 1 million users and accounts for 15% of all new bank accounts opening in the UK. It has achieved 80% of its growth through word of mouth and referral.

In October, Monzo has raised a £85m Series E round led by General Catalyst and Accel. The funding was at a pre-money valuation of £1 billion, making it the latest UK tech start-up to reach the unicorn milestone.

Challenger banks are now disrupting the traditional banking industry. As finance becomes digital, understanding financial technology is more and more critical to succeed in finance. At CFTE, to bridge the knowledge gap, we’ve developed a Fintech Foundation Course with 4 senior lecturers and 16 industry experts (Fintech CEOs, heads of innovation and investors). The course is designed for learners to get a solid knowledge of what’s happening in Fintech – with various examples such as Challenger Banks growth models. If you’re interested in joining the rank of our international alumni, join our online course and start learning from experts at your own pace.

Monzo’s hyper growth is one use case of how Digital and Technology are creating new opportunities in Finance. Join CFTE and embrace the change.

[/fusion_text][fusion_separator style_type=”default” hide_on_mobile=”small-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”” icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=””]

Related Posts

[/fusion_text][fusion_recent_posts layout=”default” hover_type=”none” columns=”3″ number_posts=”3″ offset=”1″ pull_by=”category” cat_slug=”” exclude_cats=”” tag_slug=”” exclude_tags=”” thumbnail=”yes” title=”yes” meta=”yes” meta_author=”no” meta_categories=”no” meta_date=”yes” meta_comments=”yes” meta_tags=”no” content_alignment=”” excerpt=”yes” excerpt_length=”35″ strip_html=”yes” scrolling=”no” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” class=”” id=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” /][fusion_separator style_type=”default” hide_on_mobile=”small-visibility” class=”” id=”” sep_color=”” top_margin=”” bottom_margin=”” border_size=”” icon=”” icon_circle=”” icon_circle_color=”” width=”” alignment=”center” /][fusion_code]PHN0eWxlPgogI19mb3JtXzlfIHsgZm9udC1zaXplOjE0cHg7IGxpbmUtaGVpZ2h0OjEuNjsgZm9udC1mYW1pbHk6YXJpYWwsIGhlbHZldGljYSwgc2Fucy1zZXJpZjsgbWFyZ2luOjA7IH0KICNfZm9ybV85XyAqIHsgb3V0bGluZTowOyB9CiAuX2Zvcm1faGlkZSB7IGRpc3BsYXk6bm9uZTsgdmlzaWJpbGl0eTpoaWRkZW47IH0KIC5fZm9ybV9zaG93IHsgZGlzcGxheTpibG9jazsgdmlzaWJpbGl0eTp2aXNpYmxlOyB9CiAjX2Zvcm1fOV8uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV85Xy5fZm9ybS1ib3R0b20geyBib3R0b206MDsgfQogI19mb3JtXzlfLl9mb3JtLWxlZnQgeyBsZWZ0OjA7IH0KICNfZm9ybV85Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGlucHV0W3R5cGU9ImRhdGUiXSwjX2Zvcm1fOV8gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjEzcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzlfIC5fc3VibWl0IHsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IGN1cnNvcjpwb2ludGVyOyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgZm9udC1zaXplOjE0cHg7IHRleHQtYWxpZ246Y2VudGVyOyBiYWNrZ3JvdW5kOiM4ZjA3MDcgIWltcG9ydGFudDsgYm9yZGVyOjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjRweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzlfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5fZm9ybS1ib2R5IHsgbWFyZ2luLWJvdHRvbTozMHB4OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tYnJhbmRpbmcgeyBjb2xvcjojZmZmOyBmb250LXNpemU6MTBweDsgY2xlYXI6Ym90aDsgdGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOjMwcHg7IGZvbnQtd2VpZ2h0OjEwMDsgfQogI19mb3JtXzlfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWxhYmVsLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tbGFiZWwgeyBmb250LXdlaWdodDpib2xkOyBtYXJnaW4tYm90dG9tOjVweDsgZGlzcGxheTpibG9jazsgfQogI19mb3JtXzlfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV85Xy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCAqIHsgZm9udC1zaXplOjE0cHg7IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fOV8gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCBzZWxlY3QsI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV85XyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9InRleHQiXSB7IHdpZHRoOjE1MHB4OyB9CiAjX2Zvcm1fOV8gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzlfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9jbGVhci1lbGVtZW50IHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzlfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXS5faGFzX2Vycm9yLCNfZm9ybV85XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fOV8gaW5wdXRbdHlwZT0iY2hlY2tib3giXS5faGFzX2Vycm9yIHsgb3V0bGluZTojZjM3YzdiIDFweCBzb2xpZDsgfQogI19mb3JtXzlfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgYm90dG9tOjM5cHg7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9iZWxvdyB7IHBhZGRpbmctdG9wOjRweDsgdG9wOjEwMCU7IHJpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLl9hYm92ZSAuX2Vycm9yLWFycm93IHsgYm90dG9tOjA7IHJpZ2h0OjE1cHg7IGJvcmRlci1sZWZ0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXJpZ2h0OjVweCBzb2xpZCB0cmFuc3BhcmVudDsgYm9yZGVyLXRvcDo1cHggc29saWQgI2YzN2M3YjsgfQogI19mb3JtXzlfIC5fZXJyb3IuX2JlbG93IC5fZXJyb3ItYXJyb3cgeyB0b3A6MDsgcmlnaHQ6MTVweDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZCAjZjM3YzdiOyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lciB7IHBhZGRpbmc6OHB4IDEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjsgZm9udC1zaXplOjEzcHg7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9CiAjX2Zvcm1fOV8gLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IG1hcmdpbi1ib3R0b206NXB4OyB0ZXh0LWFsaWduOmxlZnQ7IH0KICNfZm9ybV85XyAuX2J1dHRvbi13cmFwcGVyIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBwb3NpdGlvbjpzdGF0aWM7IH0KICNfZm9ybV85XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvdyB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzlfIC5fZXJyb3ItYXJyb3cgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MDsgaGVpZ2h0OjA7IH0KICNfZm9ybV85XyAuX2Vycm9yLWh0bWwgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KIC5waWthLXNpbmdsZSB7IHotaW5kZXg6MTAwMDAwMDEgIWltcG9ydGFudDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6bm9uZTsgfQogI19mb3JtXzlfIHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IG1pbi13aWR0aDoxMDAlOyBtYXgtd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fOV8gKiB7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyBmb250LXNpemU6MWVtOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWNvbnRlbnQgeyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzlfIC5fZm9ybS1pbm5lciB7IGRpc3BsYXk6YmxvY2s7IG1pbi13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLXRpdGxlLCNfZm9ybV85XyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjA7IG1hcmdpbi1sZWZ0OjA7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MS4yZW07IH0KICNfZm9ybV85XyAuX2Zvcm1fZWxlbWVudCB7IG1hcmdpbjowIDAgMjBweDsgcGFkZGluZzowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fOV8gLl9mb3JtLWVsZW1lbnQsI19mb3JtXzlfIC5faW5saW5lLXN0eWxlLCNfZm9ybV85XyBpbnB1dFt0eXBlPSJ0ZXh0Il0sI19mb3JtXzlfIGxhYmVsLCNfZm9ybV85XyBwLCNfZm9ybV85XyB0ZXh0YXJlYTpub3QoLmctcmVjYXB0Y2hhLXJlc3BvbnNlKSB7IGZsb2F0Om5vbmU7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzlfIC5fcm93LCNfZm9ybV85XyBwLCNfZm9ybV85XyBsYWJlbCB7IG1hcmdpbi1ib3R0b206MC43ZW07IHdpZHRoOjEwMCU7IH0KICNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdLCNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJyYWRpbyJdIHsgbWFyZ2luOjAgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdICsgc3BhbiBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fOV8gLl9yb3cgc3BhbiBsYWJlbCB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHdpZHRoOmluaXRpYWwgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246bWlkZGxlICFpbXBvcnRhbnQ7IH0KICNfZm9ybV85XyAuX2Zvcm0taW1hZ2UgeyBtYXgtd2lkdGg6MTAwJTsgaGVpZ2h0OmF1dG8gIWltcG9ydGFudDsgfQogI19mb3JtXzlfIGlucHV0W3R5cGU9InRleHQiXSB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdodDoxLjNlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0KICNfZm9ybV85XyBpbnB1dFt0eXBlPSJyYWRpbyJdLCNfZm9ybV85XyBpbnB1dFt0eXBlPSJjaGVja2JveCJdIHsgZGlzcGxheTppbmxpbmUtYmxvY2s7IHdpZHRoOjEuM2VtOyBoZWlnaHQ6MS4zZW07IGZvbnQtc2l6ZToxZW07IG1hcmdpbjowIDAuM2VtIDAgMDsgdmVydGljYWwtYWxpZ246YmFzZWxpbmU7IH0KICNfZm9ybV85XyBidXR0b25bdHlwZT0ic3VibWl0Il0geyBwYWRkaW5nOjIwcHg7IGZvbnQtc2l6ZToxLjVlbTsgfQogI19mb3JtXzlfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luOjIwcHggMCAwICFpbXBvcnRhbnQ7IH0KIH0KICNfZm9ybV85XyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbjoyNXB4IGF1dG8gMDsgcGFkZGluZzoyMHB4OyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgKnpvb206MTsgYmFja2dyb3VuZDojZmZmICFpbXBvcnRhbnQ7IGJvcmRlcjowcHggc29saWQgI2IwYjBiMCAhaW1wb3J0YW50OyB3aWR0aDo1MDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzlfIC5fZm9ybS10aXRsZSB7IGZvbnQtc2l6ZToyMnB4OyBsaW5lLWhlaWdodDoyMnB4OyBmb250LXdlaWdodDo2MDA7IG1hcmdpbi1ib3R0b206MDsgfQogI19mb3JtXzlfOmJlZm9yZSwjX2Zvcm1fOV86YWZ0ZXIgeyBjb250ZW50OiIgIjsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzlfOmFmdGVyIHsgY2xlYXI6Ym90aDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgeyB3aWR0aDphdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV85Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9ImRhdGUiXSB7IHBhZGRpbmc6MTBweCAxMnB4OyB9CiAjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSBidXR0b24uX2lubGluZS1zdHlsZSB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0b3A6MjdweDsgfQogI19mb3JtXzlfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fOV8uX2lubGluZS1zdHlsZSAuX2J1dHRvbi13cmFwcGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbjoyN3B4IDEyLjVweCAwIDIwcHg7IH0KICNfZm9ybV85XyAuX2Zvcm0tdGhhbmsteW91IHsgcG9zaXRpb246cmVsYXRpdmU7IGxlZnQ6MDsgcmlnaHQ6MDsgdGV4dC1hbGlnbjpjZW50ZXI7IGZvbnQtc2l6ZToxOHB4OyB9CiBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCkgeyAjX2Zvcm1fOV8uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQo8L3N0eWxlPgo8Zm9ybSBtZXRob2Q9IlBPU1QiIGFjdGlvbj0iaHR0cHM6Ly9jZnRlLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHAiIGlkPSJfZm9ybV85XyIgY2xhc3M9Il9mb3JtIF9mb3JtXzkgX2lubGluZS1mb3JtICBfZGFyayIgbm92YWxpZGF0ZT4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1IiB2YWx1ZT0iOSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmIiB2YWx1ZT0iOSIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImMiIHZhbHVlPSIwIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im0iIHZhbHVlPSIwIiAvPgogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InN1YiIgLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ2IiB2YWx1ZT0iMiIgLz4KICA8ZGl2IGNsYXNzPSJfZm9ybS1jb250ZW50Ij4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g1NDI0Mzk4MiBfZnVsbF93aWR0aCBfY2xlYXIiID4KICAgICAgPGRpdiBjbGFzcz0iX2Zvcm0tdGl0bGUiPgogICAgICAgIFN1YnNjcmliZSB0byBvdXIgV2Vla2x5IE5ld3NsZXR0ZXIKICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g2MDkzMzQ3MiBfZnVsbF93aWR0aCAiID4KICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgRmlyc3QgTmFtZSoKICAgICAgPC9sYWJlbD4KICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJmaXJzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgZmlyc3QgbmFtZSIgcmVxdWlyZWQvPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDQyNjQ4NjAwIF9mdWxsX3dpZHRoICIgPgogICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICBMYXN0IE5hbWUqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgbmFtZT0ibGFzdG5hbWUiIHBsYWNlaG9sZGVyPSJUeXBlIHlvdXIgbGFzdCBuYW1lIiByZXF1aXJlZC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MDQ5NzQ5MTkgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIEVtYWlsKgogICAgICA8L2xhYmVsPgogICAgICA8ZGl2IGNsYXNzPSJfZmllbGQtd3JhcHBlciI+CiAgICAgICAgPGlucHV0IHR5cGU9InRleHQiIG5hbWU9ImVtYWlsIiBwbGFjZWhvbGRlcj0iVHlwZSB5b3VyIGVtYWlsIiByZXF1aXJlZC8+CiAgICAgIDwvZGl2PgogICAgPC9kaXY+CiAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF9maWVsZDEgX2Z1bGxfd2lkdGggIiA+CiAgICAgIDxsYWJlbCBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgIENvdW50cnkqCiAgICAgIDwvbGFiZWw+CiAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICA8c2VsZWN0IG5hbWU9ImZpZWxkWzFdIiByZXF1aXJlZD4KICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFmZ2hhbmlzdGFuIiA+CiAgICAgICAgICAgIEFmZ2hhbmlzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFsYmFuaWEiID4KICAgICAgICAgICAgQWxiYW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBbGdlcmlhIiA+CiAgICAgICAgICAgIEFsZ2VyaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW1lcmljYW4gU2Ftb2EiID4KICAgICAgICAgICAgQW1lcmljYW4gU2Ftb2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW5kb3JyYSIgPgogICAgICAgICAgICBBbmRvcnJhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFuZ29sYSIgPgogICAgICAgICAgICBBbmdvbGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW5ndWlsbGEiID4KICAgICAgICAgICAgQW5ndWlsbGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQW50YXJjdGljYSIgPgogICAgICAgICAgICBBbnRhcmN0aWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFudGlndWEgYW5kIEJhcmJ1ZGEiID4KICAgICAgICAgICAgQW50aWd1YSBhbmQgQmFyYnVkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcmdlbnRpbmEiID4KICAgICAgICAgICAgQXJnZW50aW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFybWVuaWEiID4KICAgICAgICAgICAgQXJtZW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBcnViYSIgPgogICAgICAgICAgICBBcnViYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBdXN0cmFsaWEiID4KICAgICAgICAgICAgQXVzdHJhbGlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkF1c3RyaWEiID4KICAgICAgICAgICAgQXVzdHJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJBemVyYmFpamFuIiA+CiAgICAgICAgICAgIEF6ZXJiYWlqYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFoYW1hcyIgPgogICAgICAgICAgICBCYWhhbWFzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJhaHJhaW4iID4KICAgICAgICAgICAgQmFocmFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCYW5nbGFkZXNoIiA+CiAgICAgICAgICAgIEJhbmdsYWRlc2gKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmFyYmFkb3MiID4KICAgICAgICAgICAgQmFyYmFkb3MKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQmVsYXJ1cyIgPgogICAgICAgICAgICBCZWxhcnVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbGdpdW0iID4KICAgICAgICAgICAgQmVsZ2l1bQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCZWxpemUiID4KICAgICAgICAgICAgQmVsaXplCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlbmluIiA+CiAgICAgICAgICAgIEJlbmluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJlcm11ZGEiID4KICAgICAgICAgICAgQmVybXVkYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCaHV0YW4iID4KICAgICAgICAgICAgQmh1dGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJvbGl2aWEiID4KICAgICAgICAgICAgQm9saXZpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCb3NuaWEgYW5kIEhlcnplZ292aW5hIiA+CiAgICAgICAgICAgIEJvc25pYSBhbmQgSGVyemVnb3ZpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm90c3dhbmEiID4KICAgICAgICAgICAgQm90c3dhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQm91dmV0IElzbGFuZCIgPgogICAgICAgICAgICBCb3V2ZXQgSXNsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJyYXppbCIgPgogICAgICAgICAgICBCcmF6aWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQnJpdGlzaCBJbmRpYW4gT2NlYW4gVGVycml0b3J5IiA+CiAgICAgICAgICAgIEJyaXRpc2ggSW5kaWFuIE9jZWFuIFRlcnJpdG9yeQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCcnVuZWkgRGFydXNzYWxhbSIgPgogICAgICAgICAgICBCcnVuZWkgRGFydXNzYWxhbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdWxnYXJpYSIgPgogICAgICAgICAgICBCdWxnYXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJCdXJraW5hIEZhc28iID4KICAgICAgICAgICAgQnVya2luYSBGYXNvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJ1cnVuZGkiID4KICAgICAgICAgICAgQnVydW5kaQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW1ib2RpYSIgPgogICAgICAgICAgICBDYW1ib2RpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW1lcm9vbiIgPgogICAgICAgICAgICBDYW1lcm9vbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYW5hZGEiID4KICAgICAgICAgICAgQ2FuYWRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNhcGUgVmVyZGUiID4KICAgICAgICAgICAgQ2FwZSBWZXJkZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDYXltYW4gSXNsYW5kcyIgPgogICAgICAgICAgICBDYXltYW4gSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDZW50cmFsIEFmcmljYW4gUmVwdWJsaWMiID4KICAgICAgICAgICAgQ2VudHJhbCBBZnJpY2FuIFJlcHVibGljCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNoYWQiID4KICAgICAgICAgICAgQ2hhZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGlsZSIgPgogICAgICAgICAgICBDaGlsZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaGluYSIgPgogICAgICAgICAgICBDaGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDaHJpc3RtYXMgSXNsYW5kIiA+CiAgICAgICAgICAgIENocmlzdG1hcyBJc2xhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMiID4KICAgICAgICAgICAgQ29jb3MgKEtlZWxpbmcpIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29sb21iaWEiID4KICAgICAgICAgICAgQ29sb21iaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ29tb3JvcyIgPgogICAgICAgICAgICBDb21vcm9zCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbmdvIiA+CiAgICAgICAgICAgIENvbmdvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvbmdvLCB0aGUgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUiID4KICAgICAgICAgICAgQ29uZ28sIHRoZSBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb29rIElzbGFuZHMiID4KICAgICAgICAgICAgQ29vayBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNvc3RhIFJpY2EiID4KICAgICAgICAgICAgQ29zdGEgUmljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDb3RlIEQmIzAzOTtJdm9pcmUiID4KICAgICAgICAgICAgQ290ZSBEJiMwMzk7SXZvaXJlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNyb2F0aWEiID4KICAgICAgICAgICAgQ3JvYXRpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDdWJhIiA+CiAgICAgICAgICAgIEN1YmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iQ3lwcnVzIiA+CiAgICAgICAgICAgIEN5cHJ1cwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJDemVjaCBSZXB1YmxpYyIgPgogICAgICAgICAgICBDemVjaCBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJEZW5tYXJrIiA+CiAgICAgICAgICAgIERlbm1hcmsKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRGppYm91dGkiID4KICAgICAgICAgICAgRGppYm91dGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRG9taW5pY2EiID4KICAgICAgICAgICAgRG9taW5pY2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRG9taW5pY2FuIFJlcHVibGljIiA+CiAgICAgICAgICAgIERvbWluaWNhbiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFY3VhZG9yIiA+CiAgICAgICAgICAgIEVjdWFkb3IKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWd5cHQiID4KICAgICAgICAgICAgRWd5cHQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRWwgU2FsdmFkb3IiID4KICAgICAgICAgICAgRWwgU2FsdmFkb3IKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXF1YXRvcmlhbCBHdWluZWEiID4KICAgICAgICAgICAgRXF1YXRvcmlhbCBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRXJpdHJlYSIgPgogICAgICAgICAgICBFcml0cmVhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVzdG9uaWEiID4KICAgICAgICAgICAgRXN0b25pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJFdGhpb3BpYSIgPgogICAgICAgICAgICBFdGhpb3BpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGYWxrbGFuZCBJc2xhbmRzIChNYWx2aW5hcykiID4KICAgICAgICAgICAgRmFsa2xhbmQgSXNsYW5kcyAoTWFsdmluYXMpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZhcm9lIElzbGFuZHMiID4KICAgICAgICAgICAgRmFyb2UgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGaWppIiA+CiAgICAgICAgICAgIEZpamkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRmlubGFuZCIgPgogICAgICAgICAgICBGaW5sYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyYW5jZSIgPgogICAgICAgICAgICBGcmFuY2UKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iRnJlbmNoIEd1aWFuYSIgPgogICAgICAgICAgICBGcmVuY2ggR3VpYW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZyZW5jaCBQb2x5bmVzaWEiID4KICAgICAgICAgICAgRnJlbmNoIFBvbHluZXNpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJGcmVuY2ggU291dGhlcm4gVGVycml0b3JpZXMiID4KICAgICAgICAgICAgRnJlbmNoIFNvdXRoZXJuIFRlcnJpdG9yaWVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhYm9uIiA+CiAgICAgICAgICAgIEdhYm9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdhbWJpYSIgPgogICAgICAgICAgICBHYW1iaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR2VvcmdpYSIgPgogICAgICAgICAgICBHZW9yZ2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikdlcm1hbnkiID4KICAgICAgICAgICAgR2VybWFueQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHaGFuYSIgPgogICAgICAgICAgICBHaGFuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHaWJyYWx0YXIiID4KICAgICAgICAgICAgR2licmFsdGFyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWVjZSIgPgogICAgICAgICAgICBHcmVlY2UKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3JlZW5sYW5kIiA+CiAgICAgICAgICAgIEdyZWVubGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHcmVuYWRhIiA+CiAgICAgICAgICAgIEdyZW5hZGEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VhZGVsb3VwZSIgPgogICAgICAgICAgICBHdWFkZWxvdXBlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1YW0iID4KICAgICAgICAgICAgR3VhbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJHdWF0ZW1hbGEiID4KICAgICAgICAgICAgR3VhdGVtYWxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1ZXJuc2V5IiA+CiAgICAgICAgICAgIEd1ZXJuc2V5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1aW5lYSIgPgogICAgICAgICAgICBHdWluZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iR3VpbmVhLUJpc3NhdSIgPgogICAgICAgICAgICBHdWluZWEtQmlzc2F1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikd1eWFuYSIgPgogICAgICAgICAgICBHdXlhbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSGFpdGkiID4KICAgICAgICAgICAgSGFpdGkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSGVhcmQgSXNsYW5kIGFuZCBNY2RvbmFsZCBJc2xhbmRzIiA+CiAgICAgICAgICAgIEhlYXJkIElzbGFuZCBhbmQgTWNkb25hbGQgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKSIgPgogICAgICAgICAgICBIb2x5IFNlZSAoVmF0aWNhbiBDaXR5IFN0YXRlKQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25kdXJhcyIgPgogICAgICAgICAgICBIb25kdXJhcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJIb25nIEtvbmciID4KICAgICAgICAgICAgSG9uZyBLb25nCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikh1bmdhcnkiID4KICAgICAgICAgICAgSHVuZ2FyeQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJY2VsYW5kIiA+CiAgICAgICAgICAgIEljZWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kaWEiID4KICAgICAgICAgICAgSW5kaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSW5kb25lc2lhIiA+CiAgICAgICAgICAgIEluZG9uZXNpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJcmFuLCBJc2xhbWljIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIElyYW4sIElzbGFtaWMgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iSXJhcSIgPgogICAgICAgICAgICBJcmFxCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklyZWxhbmQiID4KICAgICAgICAgICAgSXJlbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJJc3JhZWwiID4KICAgICAgICAgICAgSXNyYWVsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikl0YWx5IiA+CiAgICAgICAgICAgIEl0YWx5CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkphbWFpY2EiID4KICAgICAgICAgICAgSmFtYWljYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKYXBhbiIgPgogICAgICAgICAgICBKYXBhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJKb3JkYW4iID4KICAgICAgICAgICAgSm9yZGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkthemFraHN0YW4iID4KICAgICAgICAgICAgS2F6YWtoc3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLZW55YSIgPgogICAgICAgICAgICBLZW55YQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLaXJpYmF0aSIgPgogICAgICAgICAgICBLaXJpYmF0aQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLb3JlYSwgRGVtb2NyYXRpYyBQZW9wbGUmIzAzOTtzIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIEtvcmVhLCBEZW1vY3JhdGljIFBlb3BsZSYjMDM5O3MgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEsIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIEtvcmVhLCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJLdXdhaXQiID4KICAgICAgICAgICAgS3V3YWl0CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikt5cmd5enN0YW4iID4KICAgICAgICAgICAgS3lyZ3l6c3RhbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMYW8gUGVvcGxlJiMwMzk7cyBEZW1vY3JhdGljIFJlcHVibGljIiA+CiAgICAgICAgICAgIExhbyBQZW9wbGUmIzAzOTtzIERlbW9jcmF0aWMgUmVwdWJsaWMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGF0dmlhIiA+CiAgICAgICAgICAgIExhdHZpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMZWJhbm9uIiA+CiAgICAgICAgICAgIExlYmFub24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGVzb3RobyIgPgogICAgICAgICAgICBMZXNvdGhvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpYmVyaWEiID4KICAgICAgICAgICAgTGliZXJpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMaWJ5YW4gQXJhYiBKYW1haGlyaXlhIiA+CiAgICAgICAgICAgIExpYnlhbiBBcmFiIEphbWFoaXJpeWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTGllY2h0ZW5zdGVpbiIgPgogICAgICAgICAgICBMaWVjaHRlbnN0ZWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxpdGh1YW5pYSIgPgogICAgICAgICAgICBMaXRodWFuaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTHV4ZW1ib3VyZyIgPgogICAgICAgICAgICBMdXhlbWJvdXJnCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hY2FvIiA+CiAgICAgICAgICAgIE1hY2FvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hY2Vkb25pYSwgdGhlIEZvcm1lciBZdWdvc2xhdiBSZXB1YmxpYyBvZiIgPgogICAgICAgICAgICBNYWNlZG9uaWEsIHRoZSBGb3JtZXIgWXVnb3NsYXYgUmVwdWJsaWMgb2YKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFkYWdhc2NhciIgPgogICAgICAgICAgICBNYWRhZ2FzY2FyCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbGF3aSIgPgogICAgICAgICAgICBNYWxhd2kKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsYXlzaWEiID4KICAgICAgICAgICAgTWFsYXlzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsZGl2ZXMiID4KICAgICAgICAgICAgTWFsZGl2ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWFsaSIgPgogICAgICAgICAgICBNYWxpCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hbHRhIiA+CiAgICAgICAgICAgIE1hbHRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hcnNoYWxsIElzbGFuZHMiID4KICAgICAgICAgICAgTWFyc2hhbGwgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNYXJ0aW5pcXVlIiA+CiAgICAgICAgICAgIE1hcnRpbmlxdWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWF1cml0YW5pYSIgPgogICAgICAgICAgICBNYXVyaXRhbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1hdXJpdGl1cyIgPgogICAgICAgICAgICBNYXVyaXRpdXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWF5b3R0ZSIgPgogICAgICAgICAgICBNYXlvdHRlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1leGljbyIgPgogICAgICAgICAgICBNZXhpY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTWljcm9uZXNpYSwgRmVkZXJhdGVkIFN0YXRlcyBvZiIgPgogICAgICAgICAgICBNaWNyb25lc2lhLCBGZWRlcmF0ZWQgU3RhdGVzIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbGRvdmEsIFJlcHVibGljIG9mIiA+CiAgICAgICAgICAgIE1vbGRvdmEsIFJlcHVibGljIG9mCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbmFjbyIgPgogICAgICAgICAgICBNb25hY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9uZ29saWEiID4KICAgICAgICAgICAgTW9uZ29saWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW9udGVuZWdybyIgPgogICAgICAgICAgICBNb250ZW5lZ3JvCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1vbnRzZXJyYXQiID4KICAgICAgICAgICAgTW9udHNlcnJhdAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJNb3JvY2NvIiA+CiAgICAgICAgICAgIE1vcm9jY28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTW96YW1iaXF1ZSIgPgogICAgICAgICAgICBNb3phbWJpcXVlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik15YW5tYXIiID4KICAgICAgICAgICAgTXlhbm1hcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOYW1pYmlhIiA+CiAgICAgICAgICAgIE5hbWliaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmF1cnUiID4KICAgICAgICAgICAgTmF1cnUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmVwYWwiID4KICAgICAgICAgICAgTmVwYWwKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV0aGVybGFuZHMiID4KICAgICAgICAgICAgTmV0aGVybGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV0aGVybGFuZHMgQW50aWxsZXMiID4KICAgICAgICAgICAgTmV0aGVybGFuZHMgQW50aWxsZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmV3IENhbGVkb25pYSIgPgogICAgICAgICAgICBOZXcgQ2FsZWRvbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5ldyBaZWFsYW5kIiA+CiAgICAgICAgICAgIE5ldyBaZWFsYW5kCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pY2FyYWd1YSIgPgogICAgICAgICAgICBOaWNhcmFndWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmlnZXIiID4KICAgICAgICAgICAgTmlnZXIKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iTmlnZXJpYSIgPgogICAgICAgICAgICBOaWdlcmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5pdWUiID4KICAgICAgICAgICAgTml1ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3Jmb2xrIElzbGFuZCIgPgogICAgICAgICAgICBOb3Jmb2xrIElzbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJOb3J0aGVybiBNYXJpYW5hIElzbGFuZHMiID4KICAgICAgICAgICAgTm9ydGhlcm4gTWFyaWFuYSBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5vcndheSIgPgogICAgICAgICAgICBOb3J3YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iT21hbiIgPgogICAgICAgICAgICBPbWFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBha2lzdGFuIiA+CiAgICAgICAgICAgIFBha2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhbGF1IiA+CiAgICAgICAgICAgIFBhbGF1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhbGVzdGluaWFuIFRlcnJpdG9yeSwgT2NjdXBpZWQiID4KICAgICAgICAgICAgUGFsZXN0aW5pYW4gVGVycml0b3J5LCBPY2N1cGllZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYW5hbWEiID4KICAgICAgICAgICAgUGFuYW1hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBhcHVhIE5ldyBHdWluZWEiID4KICAgICAgICAgICAgUGFwdWEgTmV3IEd1aW5lYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQYXJhZ3VheSIgPgogICAgICAgICAgICBQYXJhZ3VheQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQZXJ1IiA+CiAgICAgICAgICAgIFBlcnUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGhpbGlwcGluZXMiID4KICAgICAgICAgICAgUGhpbGlwcGluZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUGl0Y2Fpcm4iID4KICAgICAgICAgICAgUGl0Y2Fpcm4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUG9sYW5kIiA+CiAgICAgICAgICAgIFBvbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQb3J0dWdhbCIgPgogICAgICAgICAgICBQb3J0dWdhbAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJQdWVydG8gUmljbyIgPgogICAgICAgICAgICBQdWVydG8gUmljbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJRYXRhciIgPgogICAgICAgICAgICBRYXRhcgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSZXVuaW9uIiA+CiAgICAgICAgICAgIFJldW5pb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUm9tYW5pYSIgPgogICAgICAgICAgICBSb21hbmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJ1c3NpYW4gRmVkZXJhdGlvbiIgPgogICAgICAgICAgICBSdXNzaWFuIEZlZGVyYXRpb24KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iUndhbmRhIiA+CiAgICAgICAgICAgIFJ3YW5kYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYWludCBIZWxlbmEiID4KICAgICAgICAgICAgU2FpbnQgSGVsZW5hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IEtpdHRzIGFuZCBOZXZpcyIgPgogICAgICAgICAgICBTYWludCBLaXR0cyBhbmQgTmV2aXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgTHVjaWEiID4KICAgICAgICAgICAgU2FpbnQgTHVjaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2FpbnQgUGllcnJlIGFuZCBNaXF1ZWxvbiIgPgogICAgICAgICAgICBTYWludCBQaWVycmUgYW5kIE1pcXVlbG9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzIiA+CiAgICAgICAgICAgIFNhaW50IFZpbmNlbnQgYW5kIHRoZSBHcmVuYWRpbmVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhbW9hIiA+CiAgICAgICAgICAgIFNhbW9hCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhbiBNYXJpbm8iID4KICAgICAgICAgICAgU2FuIE1hcmlubwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTYW8gVG9tZSBhbmQgUHJpbmNpcGUiID4KICAgICAgICAgICAgU2FvIFRvbWUgYW5kIFByaW5jaXBlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNhdWRpIEFyYWJpYSIgPgogICAgICAgICAgICBTYXVkaSBBcmFiaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2VuZWdhbCIgPgogICAgICAgICAgICBTZW5lZ2FsCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNlcmJpYSIgPgogICAgICAgICAgICBTZXJiaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2V5Y2hlbGxlcyIgPgogICAgICAgICAgICBTZXljaGVsbGVzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNpZXJyYSBMZW9uZSIgPgogICAgICAgICAgICBTaWVycmEgTGVvbmUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU2luZ2Fwb3JlIiA+CiAgICAgICAgICAgIFNpbmdhcG9yZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTbG92YWtpYSIgPgogICAgICAgICAgICBTbG92YWtpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTbG92ZW5pYSIgPgogICAgICAgICAgICBTbG92ZW5pYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb2xvbW9uIElzbGFuZHMiID4KICAgICAgICAgICAgU29sb21vbiBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNvbWFsaWEiID4KICAgICAgICAgICAgU29tYWxpYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTb3V0aCBBZnJpY2EiID4KICAgICAgICAgICAgU291dGggQWZyaWNhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzIiA+CiAgICAgICAgICAgIFNvdXRoIEdlb3JnaWEgYW5kIHRoZSBTb3V0aCBTYW5kd2ljaCBJc2xhbmRzCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNwYWluIiA+CiAgICAgICAgICAgIFNwYWluCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNyaSBMYW5rYSIgPgogICAgICAgICAgICBTcmkgTGFua2EKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3VkYW4iID4KICAgICAgICAgICAgU3VkYW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3VyaW5hbWUiID4KICAgICAgICAgICAgU3VyaW5hbWUKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3ZhbGJhcmQgYW5kIEphbiBNYXllbiIgPgogICAgICAgICAgICBTdmFsYmFyZCBhbmQgSmFuIE1heWVuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlN3YXppbGFuZCIgPgogICAgICAgICAgICBTd2F6aWxhbmQKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iU3dlZGVuIiA+CiAgICAgICAgICAgIFN3ZWRlbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTd2l0emVybGFuZCIgPgogICAgICAgICAgICBTd2l0emVybGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJTeXJpYW4gQXJhYiBSZXB1YmxpYyIgPgogICAgICAgICAgICBTeXJpYW4gQXJhYiBSZXB1YmxpYwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUYWl3YW4sIFByb3ZpbmNlIG9mIENoaW5hIiA+CiAgICAgICAgICAgIFRhaXdhbiwgUHJvdmluY2Ugb2YgQ2hpbmEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVGFqaWtpc3RhbiIgPgogICAgICAgICAgICBUYWppa2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhbnphbmlhLCBVbml0ZWQgUmVwdWJsaWMgb2YiID4KICAgICAgICAgICAgVGFuemFuaWEsIFVuaXRlZCBSZXB1YmxpYyBvZgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUaGFpbGFuZCIgPgogICAgICAgICAgICBUaGFpbGFuZAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUaW1vci1MZXN0ZSIgPgogICAgICAgICAgICBUaW1vci1MZXN0ZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUb2dvIiA+CiAgICAgICAgICAgIFRvZ28KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVG9rZWxhdSIgPgogICAgICAgICAgICBUb2tlbGF1CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRvbmdhIiA+CiAgICAgICAgICAgIFRvbmdhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRyaW5pZGFkIGFuZCBUb2JhZ28iID4KICAgICAgICAgICAgVHJpbmlkYWQgYW5kIFRvYmFnbwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdW5pc2lhIiA+CiAgICAgICAgICAgIFR1bmlzaWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHVya2V5IiA+CiAgICAgICAgICAgIFR1cmtleQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJUdXJrbWVuaXN0YW4iID4KICAgICAgICAgICAgVHVya21lbmlzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlR1cmtzIGFuZCBDYWljb3MgSXNsYW5kcyIgPgogICAgICAgICAgICBUdXJrcyBhbmQgQ2FpY29zIElzbGFuZHMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVHV2YWx1IiA+CiAgICAgICAgICAgIFR1dmFsdQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVZ2FuZGEiID4KICAgICAgICAgICAgVWdhbmRhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVrcmFpbmUiID4KICAgICAgICAgICAgVWtyYWluZQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgQXJhYiBFbWlyYXRlcyIgPgogICAgICAgICAgICBVbml0ZWQgQXJhYiBFbWlyYXRlcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgS2luZ2RvbSIgPgogICAgICAgICAgICBVbml0ZWQgS2luZ2RvbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVbml0ZWQgU3RhdGVzIiA+CiAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVW5pdGVkIFN0YXRlcyBNaW5vciBPdXRseWluZyBJc2xhbmRzIiA+CiAgICAgICAgICAgIFVuaXRlZCBTdGF0ZXMgTWlub3IgT3V0bHlpbmcgSXNsYW5kcwogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJVcnVndWF5IiA+CiAgICAgICAgICAgIFVydWd1YXkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iVXpiZWtpc3RhbiIgPgogICAgICAgICAgICBVemJla2lzdGFuCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZhbnVhdHUiID4KICAgICAgICAgICAgVmFudWF0dQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWZW5lenVlbGEiID4KICAgICAgICAgICAgVmVuZXp1ZWxhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZpZXRuYW0iID4KICAgICAgICAgICAgVmlldG5hbQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgQnJpdGlzaCIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgQnJpdGlzaAogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcywgVS5zLiIgPgogICAgICAgICAgICBWaXJnaW4gSXNsYW5kcywgVS5zLgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXYWxsaXMgYW5kIEZ1dHVuYSIgPgogICAgICAgICAgICBXYWxsaXMgYW5kIEZ1dHVuYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJXZXN0ZXJuIFNhaGFyYSIgPgogICAgICAgICAgICBXZXN0ZXJuIFNhaGFyYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJZZW1lbiIgPgogICAgICAgICAgICBZZW1lbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJaYW1iaWEiID4KICAgICAgICAgICAgWmFtYmlhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlppbWJhYndlIiA+CiAgICAgICAgICAgIFppbWJhYndlCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNHIiA+CiAgICAgICAgICAgIFNHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBTkFEQSIgPgogICAgICAgICAgICBDQU5BREEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iS29yZWEiID4KICAgICAgICAgICAgS29yZWEKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iIiA+CiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ikx1eGVtYm91cmdoIiA+CiAgICAgICAgICAgIEx1eGVtYm91cmdoCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1ZIiA+CiAgICAgICAgICAgIE1ZCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTV0FSVElOSSIgPgogICAgICAgICAgICBFU1dBUlRJTkkKICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iZVN3YXRpbmkgIiA+CiAgICAgICAgICAgIGVTd2F0aW5pCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNaIiA+CiAgICAgICAgICAgIFNaCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNBIiA+CiAgICAgICAgICAgIENBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdyZWF0IEJyaXRhaW4iID4KICAgICAgICAgICAgR3JlYXQgQnJpdGFpbgogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJSdXNzaWEiID4KICAgICAgICAgICAgUnVzc2lhCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhvbmcgS29uZyBTQVIgQ2hpbmEiID4KICAgICAgICAgICAgSG9uZyBLb25nIFNBUiBDaGluYQogICAgICAgICAgPC9vcHRpb24+CiAgICAgICAgICA8b3B0aW9uIHZhbHVlPSJMb25kb24iID4KICAgICAgICAgICAgTG9uZG9uCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlVBIiA+CiAgICAgICAgICAgIFVBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNYIiA+CiAgICAgICAgICAgIFNYCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNLIiA+CiAgICAgICAgICAgIFNLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlNFIiA+CiAgICAgICAgICAgIFNFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlJPIiA+CiAgICAgICAgICAgIFJPCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBUIiA+CiAgICAgICAgICAgIFBUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBMIiA+CiAgICAgICAgICAgIFBMCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5PIiA+CiAgICAgICAgICAgIE5PCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik5MIiA+CiAgICAgICAgICAgIE5MCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1UIiA+CiAgICAgICAgICAgIE1UCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxVIiA+CiAgICAgICAgICAgIExVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxJIiA+CiAgICAgICAgICAgIExJCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklUIiA+CiAgICAgICAgICAgIElUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklFIiA+CiAgICAgICAgICAgIElFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhVIiA+CiAgICAgICAgICAgIEhVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdSIiA+CiAgICAgICAgICAgIEdSCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdHIiA+CiAgICAgICAgICAgIEdHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdEIiA+CiAgICAgICAgICAgIEdECiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkdCIiA+CiAgICAgICAgICAgIEdCCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkZSIiA+CiAgICAgICAgICAgIEZSCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkVTIiA+CiAgICAgICAgICAgIEVTCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRLIiA+CiAgICAgICAgICAgIERLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkRFIiA+CiAgICAgICAgICAgIERFCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNaIiA+CiAgICAgICAgICAgIENaCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNZIiA+CiAgICAgICAgICAgIENZCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNIIiA+CiAgICAgICAgICAgIENICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJHIiA+CiAgICAgICAgICAgIEJHCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFYIiA+CiAgICAgICAgICAgIEFYCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFUIiA+CiAgICAgICAgICAgIEFUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlZOIiA+CiAgICAgICAgICAgIFZOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRIIiA+CiAgICAgICAgICAgIFRICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkhLIiA+CiAgICAgICAgICAgIEhLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkFVIiA+CiAgICAgICAgICAgIEFVCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkNOIiA+CiAgICAgICAgICAgIENOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ik1NIiA+CiAgICAgICAgICAgIE1NCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxLIiA+CiAgICAgICAgICAgIExLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRXIiA+CiAgICAgICAgICAgIFRXCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBLIiA+CiAgICAgICAgICAgIFBLCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklOIiA+CiAgICAgICAgICAgIElOCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktXIiA+CiAgICAgICAgICAgIEtXCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkJUIiA+CiAgICAgICAgICAgIEJUCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkxBIiA+CiAgICAgICAgICAgIExBCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlBIIiA+CiAgICAgICAgICAgIFBICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IkpQIiA+CiAgICAgICAgICAgIEpQCiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IktIIiA+CiAgICAgICAgICAgIEtICiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IklEIiA+CiAgICAgICAgICAgIElECiAgICAgICAgICA8L29wdGlvbj4KICAgICAgICAgIDxvcHRpb24gdmFsdWU9IlRhaXdhbiIgPgogICAgICAgICAgICBUYWl3YW4KICAgICAgICAgIDwvb3B0aW9uPgogICAgICAgIDwvc2VsZWN0PgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfZmllbGQyIF9mdWxsX3dpZHRoICIgPgogICAgICA8ZGl2IGNsYXNzPSJfcm93Ij4KICAgICAgICA8bGFiZWwgY2xhc3M9Il9mb3JtLWxhYmVsIj4KICAgICAgICAgIFByaXZhY3kgUG9saWN5KgogICAgICAgIDwvbGFiZWw+CiAgICAgIDwvZGl2PgogICAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmaWVsZFsyXVtdIiB2YWx1ZT0ifnwiPgogICAgICA8ZGl2IGNsYXNzPSJfcm93IF9jaGVja2JveC1yYWRpbyI+CiAgICAgICAgPGlucHV0IGlkPSJmaWVsZF8ySSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFsyXVtdIiB2YWx1ZT0iSSByZWFkIGFuZCB1bmRlcnN0b29kIENGVEUgUHJpdmFjeSBQb2xpY3kgKHd3dy5jZnRlLmVkdWNhdGlvbi9wcml2YWN5LXBvbGljeSkiIGNsYXNzPSJhbnkiICByZXF1aXJlZD4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzJJIHJlYWQgYW5kIHVuZGVyc3Rvb2QgQ0ZURSBQcml2YWN5IFBvbGljeSAod3d3LmNmdGUuZWR1Y2F0aW9uL3ByaXZhY3ktcG9saWN5KSI+CiAgICAgICAgICAgIEkgcmVhZCBhbmQgdW5kZXJzdG9vZCBDRlRFIFByaXZhY3kgUG9saWN5ICh3d3cuY2Z0ZS5lZHVjYXRpb24vcHJpdmFjeS1wb2xpY3kpCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICA8L2Rpdj4KICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX2ZpZWxkMyBfZnVsbF93aWR0aCAiID4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyI+CiAgICAgICAgPGxhYmVsIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICBDb21tdW5pY2F0aW9uIG9wdGlvbnMKICAgICAgICA8L2xhYmVsPgogICAgICA8L2Rpdj4KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9In58Ij4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIiB0eXBlPSJjaGVja2JveCIgbmFtZT0iZmllbGRbM11bXSIgdmFsdWU9IkkmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJJiMwMzk7bSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbCI+CiAgICAgICAgICAgIEkmIzAzOTttIGhhcHB5IHRvIHJlY2VpdmUgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDRlRFJiMwMzk7cyBjb3Vyc2VzIGJ5IGVtYWlsCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzNJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSSB3YW50IHRvIHJlY2VpdmUgQ0ZURSYjMDM5O3MgZ2VuZXJhbCBuZXdzbGV0dGVyIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIiPgogICAgICAgICAgICBJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBnZW5lcmFsIG5ld3NsZXR0ZXIKICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX3JvdyBfY2hlY2tib3gtcmFkaW8iPgogICAgICAgIDxpbnB1dCBpZD0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICIgdHlwZT0iY2hlY2tib3giIG5hbWU9ImZpZWxkWzNdW10iIHZhbHVlPSJJIHdhbnQgdG8gcmVjZWl2ZSBDRlRFJiMwMzk7cyBldmVudHMgbmV3c2xldHRlciAiICAgPgogICAgICAgIDxzcGFuPgogICAgICAgICAgPGxhYmVsIGZvcj0iZmllbGRfM0kgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyICI+CiAgICAgICAgICAgIEkgd2FudCB0byByZWNlaXZlIENGVEUmIzAzOTtzIGV2ZW50cyBuZXdzbGV0dGVyCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgIDwvc3Bhbj4KICAgICAgPC9kaXY+CiAgICAgIDxkaXYgY2xhc3M9Il9yb3cgX2NoZWNrYm94LXJhZGlvIj4KICAgICAgICA8aW5wdXQgaWQ9ImZpZWxkXzNJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4iIHR5cGU9ImNoZWNrYm94IiBuYW1lPSJmaWVsZFszXVtdIiB2YWx1ZT0iSeKAmW0gaGFwcHkgdG8gcmVjZWl2ZSBtb3JlIGluZm9ybWF0aW9uIGFib3V0IENGVEUmIzAzOTtzIGNvdXJzZXMgYnkgZW1haWwuIiAgID4KICAgICAgICA8c3Bhbj4KICAgICAgICAgIDxsYWJlbCBmb3I9ImZpZWxkXzNJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4iPgogICAgICAgICAgICBJ4oCZbSBoYXBweSB0byByZWNlaXZlIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgQ0ZURSYjMDM5O3MgY291cnNlcyBieSBlbWFpbC4KICAgICAgICAgIDwvbGFiZWw+CiAgICAgICAgPC9zcGFuPgogICAgICA8L2Rpdj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2J1dHRvbi13cmFwcGVyIF9mdWxsX3dpZHRoIj4KICAgICAgPGJ1dHRvbiBpZD0iX2Zvcm1fOV9zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgIFN1Ym1pdAogICAgICA8L2J1dHRvbj4KICAgIDwvZGl2PgogICAgPGRpdiBjbGFzcz0iX2NsZWFyLWVsZW1lbnQiPgogICAgPC9kaXY+CiAgPC9kaXY+CiAgPGRpdiBjbGFzcz0iX2Zvcm0tdGhhbmsteW91IiBzdHlsZT0iZGlzcGxheTpub25lOyI+CiAgPC9kaXY+CjwvZm9ybT48c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CndpbmRvdy5jZmllbGRzID0geyIxIjoiY291bnRyeSIsIjIiOiJwcml2YWN5X3BvbGljeSIsIjMiOiJjb21tdW5pY2F0aW9uX29wdGlvbnMifTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwpIHsKICB2YXIgZm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdfZm9ybV8nICsgaWQgKyAnXycpLCB0aGFua195b3UgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS10aGFuay15b3UnKTsKICBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybS1jb250ZW50Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKICB0aGFua195b3UuaW5uZXJIVE1MID0gbWVzc2FnZTsKICB0aGFua195b3Uuc3R5bGUuZGlzcGxheSA9ICdibG9jayc7CiAgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgICB2YXIgaGVhZCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2hlYWQnKSwgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0JyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7CiAgICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgICBzY3JpcHQuc3JjID0gdXJsOwogICAgaWYgKGNhbGxiYWNrKSB7CiAgICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICAgIH0KICAgICAgfTsKICAgIH0KICAgIGhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTsKfTsKKGZ1bmN0aW9uKCkgewogIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoLnNlYXJjaCgiZXhjbHVkZWZvcm0iKSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJyhefDsgKScgKyBuYW1lICsgJz0oW147XSspJykpOwogICAgcmV0dXJuIG1hdGNoID8gbWF0Y2hbMl0gOiBudWxsOwogIH0KICB2YXIgc2V0Q29va2llID0gZnVuY3Rpb24obmFtZSwgdmFsdWUpIHsKICAgIHZhciBub3cgPSBuZXcgRGF0ZSgpOwogICAgdmFyIHRpbWUgPSBub3cuZ2V0VGltZSgpOwogICAgdmFyIGV4cGlyZVRpbWUgPSB0aW1lICsgMTAwMCAqIDYwICogNjAgKiAyNCAqIDM2NTsKICAgIG5vdy5zZXRUaW1lKGV4cGlyZVRpbWUpOwogICAgZG9jdW1lbnQuY29va2llID0gbmFtZSArICc9JyArIHZhbHVlICsgJzsgZXhwaXJlcz0nICsgbm93ICsgJztwYXRoPS8nOwogIH0KICAgICAgdmFyIGFkZEV2ZW50ID0gZnVuY3Rpb24oZWxlbWVudCwgZXZlbnQsIGZ1bmMpIHsKICAgIGlmIChlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIpIHsKICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKGV2ZW50LCBmdW5jKTsKICAgIH0gZWxzZSB7CiAgICAgIHZhciBvbGRGdW5jID0gZWxlbWVudFsnb24nICsgZXZlbnRdOwogICAgICBlbGVtZW50WydvbicgKyBldmVudF0gPSBmdW5jdGlvbigpIHsKICAgICAgICBvbGRGdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7CiAgICAgICAgZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICB9OwogICAgfQogIH0KICB2YXIgX3JlbW92ZWQgPSBmYWxzZTsKICB2YXIgZm9ybV90b19zdWJtaXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQsIHNlbGVjdCwgdGV4dGFyZWEnKSwgdG9vbHRpcHMgPSBbXSwgc3VibWl0dGVkID0gZmFsc2U7CgogIHZhciBnZXRVcmxQYXJhbSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciByZWdleFN0ciA9ICdbXD8mXScgKyBuYW1lICsgJz0oW14mI10qKSc7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIsICdpJykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBhcnJvdyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBpbm5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAncmFkaW8nICYmIGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSB7CiAgICAgIHRvb2x0aXAuY2xhc3NOYW1lID0gJ19lcnJvcic7CiAgICAgIGFycm93LmNsYXNzTmFtZSA9ICdfZXJyb3ItYXJyb3cnOwogICAgICBpbm5lci5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyJzsKICAgICAgaW5uZXIuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgdG9vbHRpcC5hcHBlbmRDaGlsZChhcnJvdyk7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoaW5uZXIpOwogICAgICBlbGVtLnBhcmVudE5vZGUuYXBwZW5kQ2hpbGQodG9vbHRpcCk7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX25vX2Fycm93JzsKICAgICAgdG9vbHRpcC5pbm5lckhUTUwgPSB0ZXh0OwogICAgICBlbGVtLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHRvb2x0aXAsIGVsZW0pOwogICAgICBuZXdfdG9vbHRpcC5ub19hcnJvdyA9IHRydWU7CiAgICB9CiAgICBuZXdfdG9vbHRpcC50aXAgPSB0b29sdGlwOwogICAgbmV3X3Rvb2x0aXAuZWxlbSA9IGVsZW07CiAgICB0b29sdGlwcy5wdXNoKG5ld190b29sdGlwKTsKICAgIHJldHVybiBuZXdfdG9vbHRpcDsKICB9OwogIHZhciByZXNpemVfdG9vbHRpcCA9IGZ1bmN0aW9uKHRvb2x0aXApIHsKICAgIHZhciByZWN0ID0gdG9vbHRpcC5lbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgdmFyIGRvYyA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwgc2Nyb2xsUG9zaXRpb24gPSByZWN0LnRvcCAtICgod2luZG93LnBhZ2VZT2Zmc2V0IHx8IGRvYy5zY3JvbGxUb3ApICAtIChkb2MuY2xpZW50VG9wIHx8IDApKTsKICAgIGlmIChzY3JvbGxQb3NpdGlvbiA8IDQwKSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2JlbG93JzsKICAgIH0gZWxzZSB7CiAgICAgIHRvb2x0aXAudGlwLmNsYXNzTmFtZSA9IHRvb2x0aXAudGlwLmNsYXNzTmFtZS5yZXBsYWNlKC8gPyhfYWJvdmV8X2JlbG93KSA/L2csICcnKSArICcgX2Fib3ZlJzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAnY2hlY2tib3gnKSBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgIGlmIChlbGVtLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICdyYWRpbycgfHwgKGVsZW0udHlwZSA9PSAnY2hlY2tib3gnICYmIC9hbnkvLnRlc3QoZWxlbS5jbGFzc05hbWUpKSkgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV07CiAgICAgICAgaWYgKCEoZWxlbXMgaW5zdGFuY2VvZiBOb2RlTGlzdCB8fCBlbGVtcyBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uKSB8fCBlbGVtcy5sZW5ndGggPD0gMSkgewogICAgICAgICAgbm9fZXJyb3IgPSBlbGVtLmNoZWNrZWQ7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW1zW2ldLmNoZWNrZWQpIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJQbGVhc2Ugc2VsZWN0IGFuIG9wdGlvbi4iKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50eXBlID09J2NoZWNrYm94JykgewogICAgICAgIHZhciBlbGVtcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsZW0ubmFtZV0sIGZvdW5kID0gZmFsc2UsIGVyciA9IFtdOwogICAgICAgIG5vX2Vycm9yID0gdHJ1ZTsKICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICBpZiAoZWxlbXNbaV0uZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJiYgZWxlbXNbaV0gIT09IGVsZW0pIHJldHVybiB0cnVlOwogICAgICAgICAgZm91bmQgPSB0cnVlOwogICAgICAgICAgZWxlbXNbaV0uY2xhc3NOYW1lID0gZWxlbXNbaV0uY2xhc3NOYW1lLnJlcGxhY2UoLyA/X2hhc19lcnJvciA/L2csICcnKTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgICAgICBlcnIucHVzaCgiQ2hlY2tpbmcgJXMgaXMgcmVxdWlyZWQiLnJlcGxhY2UoIiVzIiwgZWxlbXNbaV0udmFsdWUpKTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFub19lcnJvcikgewogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sIGVyci5qb2luKCc8YnIvPicpKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICdTRUxFQ1QnKSB7CiAgICAgICAgdmFyIHNlbGVjdGVkID0gdHJ1ZTsKICAgICAgICBpZiAoZWxlbS5tdWx0aXBsZSkgewogICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQpIHsKICAgICAgICAgICAgICBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9IGVsc2UgewogICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBlbGVtLm9wdGlvbnMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaWYgKGVsZW0ub3B0aW9uc1tpXS5zZWxlY3RlZCAmJiAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJyBfaGFzX2Vycm9yJzsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlBsZWFzZSBzZWxlY3QgYW4gb3B0aW9uLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSAnJykgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJUaGlzIGZpZWxkIGlzIHJlcXVpcmVkLiIpOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJiYgZWxlbS5uYW1lID09ICdlbWFpbCcpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXltcK19hLXowLTktJyY9XSsoXC5bXCtfYS16MC05LSddKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGVtYWlsIGFkZHJlc3MuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAnIF9oYXNfZXJyb3InOwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJFbnRlciBhIHZhbGlkIGRhdGUuIik7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICdlbWFpbCcgfHwgZWwuZ2V0QXR0cmlidXRlKCdyZXF1aXJlZCcpICE9PSBudWxsOwogIH07CiAgdmFyIHZhbGlkYXRlX2Zvcm0gPSBmdW5jdGlvbihlKSB7CiAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcignLl9mb3JtX2Vycm9yJyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHQnKSB7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnYmx1cicsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnZhbHVlLnRyaW0oKTsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3JhZGlvJyB8fCBpbnB1dC50eXBlID09ICdjaGVja2JveCcpIHsKICAgICAgICAgICAgKGZ1bmN0aW9uKGVsKSB7CiAgICAgICAgICAgICAgdmFyIHJhZGlvcyA9IGZvcm1fdG9fc3VibWl0LmVsZW1lbnRzW2VsLm5hbWVdOwogICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmFkaW9zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgICAgICBhZGRFdmVudChyYWRpb3NbaV0sICdjbGljaycsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2NoYW5nZScsIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICB9CiAgICAgIH0KICAgIH0KICAgIHJlbW92ZV90b29sdGlwcygpOwogICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICB2YXIgZWxlbSA9IGFsbElucHV0c1tpXTsKICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGVsZW0pKSB7CiAgICAgICAgaWYgKGVsZW0udGFnTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAic2VsZWN0IikgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICYmIGUpIHsKICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgfQogICAgcmVzaXplX3Rvb2x0aXBzKCk7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICBhZGRFdmVudCh3aW5kb3csICdyZXNpemUnLCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJ3Njcm9sbCcsIHJlc2l6ZV90b29sdGlwcyk7CiAgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gbnVsbDsKICBpZiAodHlwZW9mIHNlcmlhbGl6ZSAhPT0gJ3VuZGVmaW5lZCcpIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IHdpbmRvdy5zZXJpYWxpemU7CiAgX2xvYWRfc2NyaXB0KCIvL2QzcnhhaWo1NnZqZWdlLmNsb3VkZnJvbnQubmV0L2Zvcm0tc2VyaWFsaXplLzAuMy9zZXJpYWxpemUubWluLmpzIiwgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJiBkaXNhYmxlIGl0IHVzaW5nIHBsYWluIGphdmFzY3JpcHQKICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignI19mb3JtXzlfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fOV8nKSk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8vY2Z0ZS5hY3RpdmVob3N0ZWQuY29tL3Byb2MucGhwPycgKyBzZXJpYWxpemVkICsgJyZqc29ucD10cnVlJyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJ3N1Ym1pdCcsIGZvcm1fc3VibWl0KTsKfSkoKTsKCjwvc2NyaXB0Pg==[/fusion_code][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]