[fusion_builder_container type=”flex” hundred_percent=”no” hundred_percent_height=”no” min_height_medium=”” min_height_small=”” min_height=”” hundred_percent_height_scroll=”no” align_content=”stretch” flex_align_items=”flex-start” flex_justify_content=”flex-start” flex_column_spacing=”” hundred_percent_height_center_content=”yes” equal_height_columns=”no” container_tag=”div” menu_anchor=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” status=”published” publish_date=”” class=”” id=”” margin_top_medium=”” margin_bottom_medium=”” margin_top_small=”” margin_bottom_small=”” margin_top=”” margin_bottom=”” padding_top_medium=”” padding_right_medium=”” padding_bottom_medium=”” padding_left_medium=”” padding_top_small=”” padding_right_small=”” padding_bottom_small=”” padding_left_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” link_color=”” link_hover_color=”” border_sizes_top=”” border_sizes_right=”” border_sizes_bottom=”” border_sizes_left=”” border_color=”” border_style=”solid” box_shadow=”no” box_shadow_vertical=”” box_shadow_horizontal=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” z_index=”” overflow=”” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_color=”#ffffff” background_image=”” skip_lazy_load=”” background_position=”center center” background_repeat=”no-repeat” fade=”no” background_parallax=”none” enable_mobile=”no” parallax_speed=”0.3″ background_blend_mode=”none” video_mp4=”” video_webm=”” video_ogv=”” video_url=”” video_aspect_ratio=”16:9″ video_loop=”yes” video_mute=”yes” video_preview_image=”” render_logics=”” absolute=”off” absolute_devices=”small,medium,large” sticky=”off” sticky_devices=”small-visibility,medium-visibility,large-visibility” sticky_background_color=”” sticky_height=”” sticky_offset=”” sticky_transition_offset=”0″ scroll_offset=”0″ animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″][fusion_builder_row][fusion_builder_column type=”1_1″ layout=”1_1″ align_self=”auto” content_layout=”column” align_content=”flex-start” valign_content=”flex-start” content_wrap=”wrap” spacing=”” center_content=”no” link=”” target=”_self” link_description=”” min_height=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” type_medium=”” type_small=”” order_medium=”0″ order_small=”0″ dimension_spacing_medium=”” dimension_spacing_small=”” dimension_spacing=”” dimension_margin_medium=”” dimension_margin_small=”” margin_top=”” margin_bottom=”” padding_medium=”” padding_small=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” hover_type=”none” border_sizes=”” border_color=”” border_style=”solid” border_radius=”” box_shadow=”no” dimension_box_shadow=”” box_shadow_blur=”0″ box_shadow_spread=”0″ box_shadow_color=”” box_shadow_style=”” overflow=”” background_type=”single” gradient_start_color=”” gradient_end_color=”” gradient_start_position=”0″ gradient_end_position=”100″ gradient_type=”linear” radial_direction=”center center” linear_angle=”180″ background_color=”” background_image=”” background_image_id=”” background_position=”left top” background_repeat=”no-repeat” background_blend_mode=”none” render_logics=”” filter_type=”regular” filter_hue=”0″ filter_saturation=”100″ filter_brightness=”100″ filter_contrast=”100″ filter_invert=”0″ filter_sepia=”0″ filter_opacity=”100″ filter_blur=”0″ filter_hue_hover=”0″ filter_saturation_hover=”100″ filter_brightness_hover=”100″ filter_contrast_hover=”100″ filter_invert_hover=”0″ filter_sepia_hover=”0″ filter_opacity_hover=”100″ filter_blur_hover=”0″ animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=”” last=”true” border_position=”all” first=”true”][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” content_alignment_medium=”” content_alignment_small=”” content_alignment=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” margin_top=”” margin_right=”” margin_bottom=”” margin_left=”” font_size=”” fusion_font_family_text_font=”” fusion_font_variant_text_font=”” line_height=”” letter_spacing=”” text_transform=”none” text_color=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]

MAXPO2022 Michelin ukon arvonta

[/fusion_text][fusion_code]PHN0eWxlPgogI19mb3JtXzMzXyB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDoxLjY7IGZvbnQtZmFtaWx5OmFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMzNfICogeyBvdXRsaW5lOjA7IH0KIC5fZm9ybV9oaWRlIHsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQogLl9mb3JtX3Nob3cgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IH0KICNfZm9ybV8zM18uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV8zM18uX2Zvcm0tYm90dG9tIHsgYm90dG9tOjA7IH0KICNfZm9ybV8zM18uX2Zvcm0tbGVmdCB7IGxlZnQ6MDsgfQogI19mb3JtXzMzXy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV8zM18gaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV8zM18gaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV8zM18gdGV4dGFyZWEgeyBwYWRkaW5nOjZweDsgaGVpZ2h0OmF1dG87IGJvcmRlcjojOTc5Nzk3IDFweCBzb2xpZDsgYm9yZGVyLXJhZGl1czo0cHg7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgZm9udC1zaXplOjE0cHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fMzNfIHRleHRhcmVhIHsgcmVzaXplOm5vbmU7IH0KICNfZm9ybV8zM18gLl9zdWJtaXQgeyAtd2Via2l0LWFwcGVhcmFuY2U6bm9uZTsgY3Vyc29yOnBvaW50ZXI7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXNpemU6MTRweDsgdGV4dC1hbGlnbjpjZW50ZXI7IGJhY2tncm91bmQ6IzAwNGNmZiAhaW1wb3J0YW50OyBib3JkZXI6MCAhaW1wb3J0YW50OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4ICFpbXBvcnRhbnQ7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgYm9yZGVyLXJhZGl1czo0cHggIWltcG9ydGFudDsgY29sb3I6I2ZmZiAhaW1wb3J0YW50OyBwYWRkaW5nOjEwcHggIWltcG9ydGFudDsgfQogI19mb3JtXzMzXyAuX2Nsb3NlLWljb24geyBjdXJzb3I6cG9pbnRlcjsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJyk7IGJhY2tncm91bmQtcmVwZWF0Om5vLXJlcGVhdDsgYmFja2dyb3VuZC1zaXplOjE0LjJweCAxNC4ycHg7IHBvc2l0aW9uOmFic29sdXRlOyBkaXNwbGF5OmJsb2NrOyB0b3A6MTFweDsgcmlnaHQ6OXB4OyBvdmVyZmxvdzpoaWRkZW47IHdpZHRoOjE2LjJweDsgaGVpZ2h0OjE2LjJweDsgfQogI19mb3JtXzMzXyAuX2Nsb3NlLWljb246YmVmb3JlIHsgcG9zaXRpb246cmVsYXRpdmU7IH0KICNfZm9ybV8zM18gLl9mb3JtLWJvZHkgeyBtYXJnaW4tYm90dG9tOjMwcHg7IH0KICNfZm9ybV8zM18gLl9mb3JtLWltYWdlLWxlZnQgeyB3aWR0aDoxNTBweDsgZmxvYXQ6bGVmdDsgfQogI19mb3JtXzMzXyAuX2Zvcm0tY29udGVudC1yaWdodCB7IG1hcmdpbi1sZWZ0OjE2NHB4OyB9CiAjX2Zvcm1fMzNfIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiNmZmY7IGZvbnQtc2l6ZToxMHB4OyBjbGVhcjpib3RoOyB0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6MzBweDsgZm9udC13ZWlnaHQ6MTAwOyB9CiAjX2Zvcm1fMzNfIC5fZm9ybS1icmFuZGluZyAuX2xvZ28geyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMzBweDsgaGVpZ2h0OjE0cHg7IG1hcmdpbi10b3A6NnB4OyBiYWNrZ3JvdW5kLWltYWdlOnVybCgnaHR0cHM6Ly9kMjI2YWo0YW8xdDYxcS5jbG91ZGZyb250Lm5ldC9oaDl1anFndjVfYWNsb2dvX2xpLnBuZycpOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fMzNfIC5mb3JtLXNyLW9ubHkgeyBwb3NpdGlvbjphYnNvbHV0ZTsgd2lkdGg6MXB4OyBoZWlnaHQ6MXB4OyBwYWRkaW5nOjA7IG1hcmdpbjotMXB4OyBvdmVyZmxvdzpoaWRkZW47IGNsaXA6cmVjdCgwLCAwLCAwLCAwKTsgYm9yZGVyOjA7IH0KICNfZm9ybV8zM18gLl9mb3JtLWxhYmVsLCNfZm9ybV8zM18gLl9mb3JtX2VsZW1lbnQgLl9mb3JtLWxhYmVsIHsgZm9udC13ZWlnaHQ6Ym9sZDsgbWFyZ2luLWJvdHRvbTo1cHg7IGRpc3BsYXk6YmxvY2s7IH0KICNfZm9ybV8zM18uX2RhcmsgLl9mb3JtLWJyYW5kaW5nIHsgY29sb3I6IzMzMzsgfQogI19mb3JtXzMzXy5fZGFyayAuX2Zvcm0tYnJhbmRpbmcgLl9sb2dvIHsgYmFja2dyb3VuZC1pbWFnZTp1cmwoJ2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZycpOyB9CiAjX2Zvcm1fMzNfIC5fZm9ybV9lbGVtZW50IHsgcG9zaXRpb246cmVsYXRpdmU7IG1hcmdpbi1ib3R0b206MTBweDsgZm9udC1zaXplOjA7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMzNfIC5fZm9ybV9lbGVtZW50ICogeyBmb250LXNpemU6MTRweDsgfQogI19mb3JtXzMzXyAuX2Zvcm1fZWxlbWVudC5fY2xlYXIgeyBjbGVhcjpib3RoOyB3aWR0aDoxMDAlOyBmbG9hdDpub25lOyB9CiAjX2Zvcm1fMzNfIC5fZm9ybV9lbGVtZW50Ll9jbGVhcjphZnRlciB7IGNsZWFyOmxlZnQ7IH0KICNfZm9ybV8zM18gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV8zM18gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0iZGF0ZSJdLCNfZm9ybV8zM18gLl9mb3JtX2VsZW1lbnQgc2VsZWN0LCNfZm9ybV8zM18gLl9mb3JtX2VsZW1lbnQgdGV4dGFyZWE6bm90KC5nLXJlY2FwdGNoYS1yZXNwb25zZSkgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1mYW1pbHk6aW5oZXJpdDsgfQogI19mb3JtXzMzXyAuX2ZpZWxkLXdyYXBwZXIgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzMzXyAuX2lubGluZS1zdHlsZSB7IGZsb2F0OmxlZnQ7IH0KICNfZm9ybV8zM18gLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdIHsgd2lkdGg6MTUwcHg7IH0KICNfZm9ybV8zM18gLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpICsgLl9pbmxpbmUtc3R5bGU6bm90KC5fY2xlYXIpIHsgbWFyZ2luLWxlZnQ6MjBweDsgfQogI19mb3JtXzMzXyAuX2Zvcm1fZWxlbWVudCBpbWcuX2Zvcm0taW1hZ2UgeyBtYXgtd2lkdGg6MTAwJTsgfQogI19mb3JtXzMzXyAuX2Zvcm1fZWxlbWVudCAuX2Zvcm0tZmllbGRzZXQgeyBib3JkZXI6MDsgcGFkZGluZzowLjAxZW0gMCAwIDA7IG1hcmdpbjowOyBtaW4td2lkdGg6MDsgfQogI19mb3JtXzMzXyAuX2NsZWFyLWVsZW1lbnQgeyBjbGVhcjpsZWZ0OyB9CiAjX2Zvcm1fMzNfIC5fZnVsbF93aWR0aCB7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8zM18gLl9mb3JtX2Z1bGxfZmllbGQgeyBkaXNwbGF5OmJsb2NrOyB3aWR0aDoxMDAlOyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV8zM18gaW5wdXRbdHlwZT0idGV4dCJdLl9oYXNfZXJyb3IsI19mb3JtXzMzXyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fMzNfIGlucHV0W3R5cGU9ImNoZWNrYm94Il0uX2hhc19lcnJvciB7IG91dGxpbmU6I2YzN2M3YiAxcHggc29saWQ7IH0KICNfZm9ybV8zM18gLl9lcnJvciB7IGRpc3BsYXk6YmxvY2s7IHBvc2l0aW9uOmFic29sdXRlOyBmb250LXNpemU6MTRweDsgei1pbmRleDoxMDAwMDAwMTsgfQogI19mb3JtXzMzXyAuX2Vycm9yLl9hYm92ZSB7IHBhZGRpbmctYm90dG9tOjRweDsgYm90dG9tOjM5cHg7IHJpZ2h0OjA7IH0KICNfZm9ybV8zM18gLl9lcnJvci5fYmVsb3cgeyBwYWRkaW5nLXRvcDo0cHg7IHRvcDoxMDAlOyByaWdodDowOyB9CiAjX2Zvcm1fMzNfIC5fZXJyb3IuX2Fib3ZlIC5fZXJyb3ItYXJyb3cgeyBib3R0b206MDsgcmlnaHQ6MTVweDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItdG9wOjVweCBzb2xpZCAjZjM3YzdiOyB9CiAjX2Zvcm1fMzNfIC5fZXJyb3IuX2JlbG93IC5fZXJyb3ItYXJyb3cgeyB0b3A6MDsgcmlnaHQ6MTVweDsgYm9yZGVyLWxlZnQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItcmlnaHQ6NXB4IHNvbGlkIHRyYW5zcGFyZW50OyBib3JkZXItYm90dG9tOjVweCBzb2xpZCAjZjM3YzdiOyB9CiAjX2Zvcm1fMzNfIC5fZXJyb3ItaW5uZXIgeyBwYWRkaW5nOjhweCAxMnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiNmMzdjN2I7IGZvbnQtc2l6ZToxNHB4OyBmb250LWZhbWlseTphcmlhbCwgc2Fucy1zZXJpZjsgY29sb3I6I2ZmZjsgdGV4dC1hbGlnbjpjZW50ZXI7IHRleHQtZGVjb3JhdGlvbjpub25lOyAtd2Via2l0LWJvcmRlci1yYWRpdXM6NHB4OyAtbW96LWJvcmRlci1yYWRpdXM6NHB4OyBib3JkZXItcmFkaXVzOjRweDsgfQogI19mb3JtXzMzXyAuX2Vycm9yLWlubmVyLl9mb3JtX2Vycm9yIHsgbWFyZ2luLWJvdHRvbTo1cHg7IHRleHQtYWxpZ246bGVmdDsgfQogI19mb3JtXzMzXyAuX2J1dHRvbi13cmFwcGVyIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBwb3NpdGlvbjpzdGF0aWM7IH0KICNfZm9ybV8zM18gLl9lcnJvci1pbm5lci5fbm9fYXJyb3cgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KICNfZm9ybV8zM18gLl9lcnJvci1hcnJvdyB7IHBvc2l0aW9uOmFic29sdXRlOyB3aWR0aDowOyBoZWlnaHQ6MDsgfQogI19mb3JtXzMzXyAuX2Vycm9yLWh0bWwgeyBtYXJnaW4tYm90dG9tOjEwcHg7IH0KIC5waWthLXNpbmdsZSB7IHotaW5kZXg6MTAwMDAwMDEgIWltcG9ydGFudDsgfQogI19mb3JtXzMzXyBpbnB1dFt0eXBlPSJ0ZXh0Il0uZGF0ZXRpbWVfZGF0ZSB7IHdpZHRoOjY5JTsgZGlzcGxheTppbmxpbmU7IH0KICNfZm9ybV8zM18gc2VsZWN0LmRhdGV0aW1lX3RpbWUgeyB3aWR0aDoyOSU7IGRpc3BsYXk6aW5saW5lOyBoZWlnaHQ6MzJweDsgfQogI19mb3JtXzMzXyBpbnB1dFt0eXBlPSJkYXRlIl0uZGF0ZXRpbWVfZGF0ZSB7IHdpZHRoOjY5JTsgZGlzcGxheTppbmxpbmUtZmxleDsgfQogI19mb3JtXzMzXyBpbnB1dFt0eXBlPSJ0aW1lIl0uZGF0ZXRpbWVfdGltZSB7IHdpZHRoOjI5JTsgZGlzcGxheTppbmxpbmUtZmxleDsgfQogQG1lZGlhIGFsbCBhbmQgKG1pbi13aWR0aDozMjBweCkgYW5kIChtYXgtd2lkdGg6NjY3cHgpIHsgOjotd2Via2l0LXNjcm9sbGJhciB7IGRpc3BsYXk6bm9uZTsgfQogI19mb3JtXzMzXyB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyBtaW4td2lkdGg6MTAwJTsgbWF4LXdpZHRoOjEwMCU7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgfQogI19mb3JtXzMzXyAqIHsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IGZvbnQtc2l6ZToxZW07IH0KICNfZm9ybV8zM18gLl9mb3JtLWNvbnRlbnQgeyBtYXJnaW46MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzMzXyAuX2Zvcm0taW5uZXIgeyBkaXNwbGF5OmJsb2NrOyBtaW4td2lkdGg6MTAwJTsgfQogI19mb3JtXzMzXyAuX2Zvcm0tdGl0bGUsI19mb3JtXzMzXyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbi10b3A6MDsgbWFyZ2luLXJpZ2h0OjA7IG1hcmdpbi1sZWZ0OjA7IH0KICNfZm9ybV8zM18gLl9mb3JtLXRpdGxlIHsgZm9udC1zaXplOjEuMmVtOyB9CiAjX2Zvcm1fMzNfIC5fZm9ybV9lbGVtZW50IHsgbWFyZ2luOjAgMCAyMHB4OyBwYWRkaW5nOjA7IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8zM18gLl9mb3JtLWVsZW1lbnQsI19mb3JtXzMzXyAuX2lubGluZS1zdHlsZSwjX2Zvcm1fMzNfIGlucHV0W3R5cGU9InRleHQiXSwjX2Zvcm1fMzNfIGxhYmVsLCNfZm9ybV8zM18gcCwjX2Zvcm1fMzNfIHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZmxvYXQ6bm9uZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzMzXyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzMzXyAuX3JvdywjX2Zvcm1fMzNfIHAsI19mb3JtXzMzXyBsYWJlbCB7IG1hcmdpbi1ib3R0b206MC43ZW07IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8zM18gLl9yb3cgaW5wdXRbdHlwZT0iY2hlY2tib3giXSwjX2Zvcm1fMzNfIC5fcm93IGlucHV0W3R5cGU9InJhZGlvIl0geyBtYXJnaW46MCAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjptaWRkbGUgIWltcG9ydGFudDsgfQogI19mb3JtXzMzXyAuX3JvdyBpbnB1dFt0eXBlPSJjaGVja2JveCJdICsgc3BhbiBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fMzNfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzNfIC5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMzNfIGlucHV0W3R5cGU9InRleHQiXSB7IHBhZGRpbmctbGVmdDoxMHB4OyBwYWRkaW5nLXJpZ2h0OjEwcHg7IGZvbnQtc2l6ZToxNnB4OyBsaW5lLWhlaWdodDoxLjNlbTsgLXdlYmtpdC1hcHBlYXJhbmNlOm5vbmU7IH0KICNfZm9ybV8zM18gaW5wdXRbdHlwZT0icmFkaW8iXSwjX2Zvcm1fMzNfIGlucHV0W3R5cGU9ImNoZWNrYm94Il0geyBkaXNwbGF5OmlubGluZS1ibG9jazsgd2lkdGg6MS4zZW07IGhlaWdodDoxLjNlbTsgZm9udC1zaXplOjFlbTsgbWFyZ2luOjAgMC4zZW0gMCAwOyB2ZXJ0aWNhbC1hbGlnbjpiYXNlbGluZTsgfQogI19mb3JtXzMzXyBidXR0b25bdHlwZT0ic3VibWl0Il0geyBwYWRkaW5nOjIwcHg7IGZvbnQtc2l6ZToxLjVlbTsgfQogI19mb3JtXzMzXyAuX2lubGluZS1zdHlsZSB7IG1hcmdpbjoyMHB4IDAgMCAhaW1wb3J0YW50OyB9CiB9CiAjX2Zvcm1fMzNfIHsgcG9zaXRpb246cmVsYXRpdmU7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luOjI1cHggYXV0byAwOyBwYWRkaW5nOjIwcHg7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyAqem9vbToxOyBiYWNrZ3JvdW5kOiNmZmYgIWltcG9ydGFudDsgYm9yZGVyOjBweCBzb2xpZCAjYjBiMGIwICFpbXBvcnRhbnQ7IG1heC13aWR0aDo1MDBweDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzMzXy5faW5saW5lLWZvcm0sI19mb3JtXzMzXy5faW5saW5lLWZvcm0gLl9mb3JtLWNvbnRlbnQsI19mb3JtXzMzXy5faW5saW5lLWZvcm0gaW5wdXQsI19mb3JtXzMzXy5faW5saW5lLWZvcm0gLl9zdWJtaXQgeyBmb250LWZhbWlseToiSUJNIFBsZXggU2FucyIsIEhlbHZldGljYSwgc2Fucy1zZXJpZiwgJ0lCTSBQbGV4IFNhbnMnLCBhcmlhbCwgc2Fucy1zZXJpZjsgfQogI19mb3JtXzMzXyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV8zM186YmVmb3JlLCNfZm9ybV8zM186YWZ0ZXIgeyBjb250ZW50OiIgIjsgZGlzcGxheTp0YWJsZTsgfQogI19mb3JtXzMzXzphZnRlciB7IGNsZWFyOmJvdGg7IH0KICNfZm9ybV8zM18uX2lubGluZS1zdHlsZSB7IHdpZHRoOmF1dG87IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB9CiAjX2Zvcm1fMzNfLl9pbmxpbmUtc3R5bGUgaW5wdXRbdHlwZT0idGV4dCJdLCNfZm9ybV8zM18uX2lubGluZS1zdHlsZSBpbnB1dFt0eXBlPSJkYXRlIl0geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzMzXy5faW5saW5lLXN0eWxlIGJ1dHRvbi5faW5saW5lLXN0eWxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoyN3B4OyB9CiAjX2Zvcm1fMzNfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMzNfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fMzNfIC5fZm9ybS10aGFuay15b3UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjE4cHg7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7ICNfZm9ybV8zM18uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQo8L3N0eWxlPgo8bGluayBocmVmPSJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUxhdG8mZmFtaWx5PU1vbnRzZXJyYXQmZmFtaWx5PVJvYm90byZkaXNwbGF5PXN3YXAiIHJlbD0ic3R5bGVzaGVldCI+CiAgPGZvcm0gbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHBzOi8va2FyZW5nYXMuYWN0aXZlaG9zdGVkLmNvbS9wcm9jLnBocCIgaWQ9Il9mb3JtXzMzXyIgY2xhc3M9Il9mb3JtIF9mb3JtXzMzIF9pbmxpbmUtZm9ybSAgX2RhcmsiIG5vdmFsaWRhdGU+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ1IiB2YWx1ZT0iMzMiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJmIiB2YWx1ZT0iMzMiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJzIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0iYyIgdmFsdWU9IjAiIC8+CiAgICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJtIiB2YWx1ZT0iMCIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9ImFjdCIgdmFsdWU9InN1YiIgLz4KICAgIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InYiIHZhbHVlPSIyIiAvPgogICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ib3IiIHZhbHVlPSI5OGVmMWQ5ZjAxNTA2YTY0ZjU3ZDQ0ODZmYjIzNjA3ZiIgLz4KICAgIDxkaXYgY2xhc3M9Il9mb3JtLWNvbnRlbnQiPgogICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94MjY5NTM5MDcgX2Z1bGxfd2lkdGggX2NsZWFyIiA+CiAgICAgICAgPGRpdiBjbGFzcz0iX2Zvcm0tdGl0bGUiPgogICAgICAgICAgT3NhbGxpc3R1IGFydm9udGFhbgogICAgICAgIDwvZGl2PgogICAgICA8L2Rpdj4KICAgICAgPGRpdiBjbGFzcz0iX2Zvcm1fZWxlbWVudCBfeDk4MDUxNjc2IF9mdWxsX3dpZHRoIF9jbGVhciIgPgogICAgICAgIDxkaXYgY2xhc3M9Il9odG1sLWNvZGUiPgogICAgICAgICAgPHA+CiAgICAgICAgICAgIEtpcmpvaXRhIG5pbWVzaSBqYSBzw6Roa8O2cG9zdGlzaSBuaWluIG9sZXQgbXVrYW5hIGFydm9ubmFzc2EqLiBBcnZvbnRhIHN1b3JpdGV0YWFuIDkuNS4yMDIyIGphIHZvaXR0YWphbGxlIGlsbW9pdGV0YWFuIGhlbmtpbMO2a29odGFpc2VzdGkgKGlsbW9pdHRhbWFhc2kgc8OkaGvDtnBvc3RpaW4pCiAgICAgICAgICA8L3A+CiAgICAgICAgPC9kaXY+CiAgICAgIDwvZGl2PgogICAgICA8ZGl2IGNsYXNzPSJfZm9ybV9lbGVtZW50IF94NTUyMDU4MTIgX2Z1bGxfd2lkdGggIiA+CiAgICAgICAgPGxhYmVsIGZvcj0iZnVsbG5hbWUiIGNsYXNzPSJfZm9ybS1sYWJlbCI+CiAgICAgICAgICBOaW1lc2kKICAgICAgICA8L2xhYmVsPgogICAgICAgIDxkaXYgY2xhc3M9Il9maWVsZC13cmFwcGVyIj4KICAgICAgICAgIDxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0iZnVsbG5hbWUiIG5hbWU9ImZ1bGxuYW1lIiBwbGFjZWhvbGRlcj0ia2lyam9pdGEgbmltZXNpIHTDpGjDpG4iIC8+CiAgICAgICAgPC9kaXY+CiAgICAgICAgPCEtLSAgVGhpcyBTVEFSVFMgdGhlIEN1c3RvbSBPYmplY3RzIHNlY3Rpb24gIC0tPgogICAgICAgIDwvZGl2PgogICAgICAgIDxkaXYgY2xhc3M9Il9mb3JtX2VsZW1lbnQgX3g4MjQzMTYxMCBfZnVsbF93aWR0aCAiID4KICAgICAgICAgIDxsYWJlbCBmb3I9ImVtYWlsIiBjbGFzcz0iX2Zvcm0tbGFiZWwiPgogICAgICAgICAgICBTw6Roa8O2cHN0aSBvc29pdGUqCiAgICAgICAgICA8L2xhYmVsPgogICAgICAgICAgPGRpdiBjbGFzcz0iX2ZpZWxkLXdyYXBwZXIiPgogICAgICAgICAgICA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9ImVtYWlsIiBuYW1lPSJlbWFpbCIgcGxhY2Vob2xkZXI9IktpcmpvaXRhIHTDpGjDpG4iIHJlcXVpcmVkLz4KICAgICAgICAgIDwvZGl2PgogICAgICAgICAgPCEtLSAgVGhpcyBTVEFSVFMgdGhlIEN1c3RvbSBPYmplY3RzIHNlY3Rpb24gIC0tPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfYnV0dG9uLXdyYXBwZXIgX2Z1bGxfd2lkdGgiPgogICAgICAgICAgICA8YnV0dG9uIGlkPSJfZm9ybV8zM19zdWJtaXQiIGNsYXNzPSJfc3VibWl0IiB0eXBlPSJzdWJtaXQiPgogICAgICAgICAgICAgIEzDpGhldMOkCiAgICAgICAgICAgIDwvYnV0dG9uPgogICAgICAgICAgPC9kaXY+CiAgICAgICAgICA8ZGl2IGNsYXNzPSJfY2xlYXItZWxlbWVudCI+CiAgICAgICAgICA8L2Rpdj4KICAgICAgICA8L2Rpdj4KICAgICAgICA8ZGl2IGNsYXNzPSJfZm9ybS10aGFuay15b3UiIHN0eWxlPSJkaXNwbGF5Om5vbmU7Ij4KICAgICAgICA8L2Rpdj4KICAgICAgPC9mb3JtPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4Kd2luZG93LmNmaWVsZHMgPSBbXTsKd2luZG93Ll9zaG93X3RoYW5rX3lvdSA9IGZ1bmN0aW9uKGlkLCBtZXNzYWdlLCB0cmFja2NtcF91cmwsIGVtYWlsKSB7CiAgdmFyIGZvcm0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fJyArIGlkICsgJ18nKSwgdGhhbmtfeW91ID0gZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tdGhhbmsteW91Jyk7CiAgZm9ybS5xdWVyeVNlbGVjdG9yKCcuX2Zvcm0tY29udGVudCcpLnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7CiAgdGhhbmtfeW91LmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgdGhhbmtfeW91LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snOwogIGNvbnN0IHZnb0FsaWFzID0gdHlwZW9mIHZpc2l0b3JHbG9iYWxPYmplY3RBbGlhcyA9PT0gJ3VuZGVmaW5lZCcgPyAndmdvJyA6IHZpc2l0b3JHbG9iYWxPYmplY3RBbGlhczsKICB2YXIgdmlzaXRvck9iamVjdCA9IHdpbmRvd1t2Z29BbGlhc107CiAgaWYgKGVtYWlsICYmIHR5cGVvZiB2aXNpdG9yT2JqZWN0ICE9PSAndW5kZWZpbmVkJykgewogICAgdmlzaXRvck9iamVjdCgnc2V0RW1haWwnLCBlbWFpbCk7CiAgICB2aXNpdG9yT2JqZWN0KCd1cGRhdGUnKTsKICB9IGVsc2UgaWYgKHR5cGVvZih0cmFja2NtcF91cmwpICE9ICd1bmRlZmluZWQnICYmIHRyYWNrY21wX3VybCkgewogICAgLy8gU2l0ZSB0cmFja2luZyBVUkwgdG8gdXNlIGFmdGVyIGlubGluZSBmb3JtIHN1Ym1pc3Npb24uCiAgICBfbG9hZF9zY3JpcHQodHJhY2tjbXBfdXJsKTsKICB9CiAgaWYgKHR5cGVvZiB3aW5kb3cuX2Zvcm1fY2FsbGJhY2sgIT09ICd1bmRlZmluZWQnKSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXycgKyBpZCArICdfJyksIGVyciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2J1dHRvbicpLCBvbGRfZXJyb3IgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJy5fZm9ybV9lcnJvcicpOwogIGlmIChvbGRfZXJyb3IpIG9sZF9lcnJvci5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKG9sZF9lcnJvcik7CiAgZXJyLmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgZXJyLmNsYXNzTmFtZSA9ICdfZXJyb3ItaW5uZXIgX2Zvcm1fZXJyb3IgX25vX2Fycm93JzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIHdyYXBwZXIuY2xhc3NOYW1lID0gJ19mb3JtLWlubmVyJzsKICB3cmFwcGVyLmFwcGVuZENoaWxkKGVycik7CiAgYnV0dG9uLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHdyYXBwZXIsIGJ1dHRvbik7CiAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignW2lkXj0iX2Zvcm0iXVtpZCQ9Il9zdWJtaXQiXScpLmRpc2FibGVkID0gZmFsc2U7CiAgaWYgKGh0bWwpIHsKICAgIHZhciBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKICAgIGRpdi5jbGFzc05hbWUgPSAnX2Vycm9yLWh0bWwnOwogICAgZGl2LmlubmVySFRNTCA9IGh0bWw7CiAgICBlcnIuYXBwZW5kQ2hpbGQoZGl2KTsKICB9Cn07CndpbmRvdy5fbG9hZF9zY3JpcHQgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKSB7CiAgdmFyIGhlYWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdoZWFkJyksIHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpLCByID0gZmFsc2U7CiAgc2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JzsKICBzY3JpcHQuY2hhcnNldCA9ICd1dGYtOCc7CiAgc2NyaXB0LnNyYyA9IHVybDsKICBpZiAoY2FsbGJhY2spIHsKICAgIHNjcmlwdC5vbmxvYWQgPSBzY3JpcHQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAgICAgIGlmICghciAmJiAoIXRoaXMucmVhZHlTdGF0ZSB8fCB0aGlzLnJlYWR5U3RhdGUgPT0gJ2NvbXBsZXRlJykpIHsKICAgICAgICByID0gdHJ1ZTsKICAgICAgICBjYWxsYmFjaygpOwogICAgICB9CiAgICB9OwogIH0KICBoZWFkLmFwcGVuZENoaWxkKHNjcmlwdCk7Cn07CihmdW5jdGlvbigpIHsKICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJjaC5zZWFyY2goImV4Y2x1ZGVmb3JtIikgIT09IC0xKSByZXR1cm4gZmFsc2U7CiAgdmFyIGdldENvb2tpZSA9IGZ1bmN0aW9uKG5hbWUpIHsKICAgIHZhciBtYXRjaCA9IGRvY3VtZW50LmNvb2tpZS5tYXRjaChuZXcgUmVnRXhwKCcoXnw7ICknICsgbmFtZSArICc9KFteO10rKScpKTsKICAgIHJldHVybiBtYXRjaCA/IG1hdGNoWzJdIDogbnVsbDsKICB9CiAgdmFyIHNldENvb2tpZSA9IGZ1bmN0aW9uKG5hbWUsIHZhbHVlKSB7CiAgICB2YXIgbm93ID0gbmV3IERhdGUoKTsKICAgIHZhciB0aW1lID0gbm93LmdldFRpbWUoKTsKICAgIHZhciBleHBpcmVUaW1lID0gdGltZSArIDEwMDAgKiA2MCAqIDYwICogMjQgKiAzNjU7CiAgICBub3cuc2V0VGltZShleHBpcmVUaW1lKTsKICAgIGRvY3VtZW50LmNvb2tpZSA9IG5hbWUgKyAnPScgKyB2YWx1ZSArICc7IGV4cGlyZXM9JyArIG5vdyArICc7cGF0aD0vJzsKICB9CiAgICAgIHZhciBhZGRFdmVudCA9IGZ1bmN0aW9uKGVsZW1lbnQsIGV2ZW50LCBmdW5jKSB7CiAgICBpZiAoZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKSB7CiAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihldmVudCwgZnVuYyk7CiAgICB9IGVsc2UgewogICAgICB2YXIgb2xkRnVuYyA9IGVsZW1lbnRbJ29uJyArIGV2ZW50XTsKICAgICAgZWxlbWVudFsnb24nICsgZXZlbnRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgb2xkRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0KICB9CiAgdmFyIF9yZW1vdmVkID0gZmFsc2U7CiAgdmFyIGZvcm1fdG9fc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ19mb3JtXzMzXycpOwogIHZhciBhbGxJbnB1dHMgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYScpLCB0b29sdGlwcyA9IFtdLCBzdWJtaXR0ZWQgPSBmYWxzZTsKCiAgdmFyIGdldFVybFBhcmFtID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7CiAgICByZXR1cm4gcGFyYW1zLmdldChuYW1lKSB8fCBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSA8IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gImZpZWxkXFxbKFxcZCspXFxdIjsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0cikuZXhlYyhhbGxJbnB1dHNbaV0ubmFtZSk7CiAgICBpZiAocmVzdWx0cyAhPSB1bmRlZmluZWQpIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IHdpbmRvdy5jZmllbGRzW3Jlc3VsdHNbMV1dOwogICAgfSBlbHNlIHsKICAgICAgYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSA9IGFsbElucHV0c1tpXS5uYW1lOwogICAgfQogICAgdmFyIGZpZWxkVmFsID0gZ2V0VXJsUGFyYW0oYWxsSW5wdXRzW2ldLmRhdGFzZXQubmFtZSk7CgogICAgaWYgKGZpZWxkVmFsKSB7CiAgICAgIGlmIChhbGxJbnB1dHNbaV0uZGF0YXNldC5hdXRvZmlsbCA9PT0gImZhbHNlIikgewogICAgICAgIGNvbnRpbnVlOwogICAgICB9CiAgICAgIGlmIChhbGxJbnB1dHNbaV0udHlwZSA9PSAicmFkaW8iIHx8IGFsbElucHV0c1tpXS50eXBlID09ICJjaGVja2JveCIpIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICB0b29sdGlwcyA9IFtdOwogIH07CiAgdmFyIHJlbW92ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSkgewogICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAodG9vbHRpcHNbaV0uZWxlbSA9PT0gZWxlbSkgewogICAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICAgICAgdG9vbHRpcHMuc3BsaWNlKGksIDEpOwogICAgICAgIHJldHVybjsKICAgICAgfQogICAgfQogIH07CiAgdmFyIGNyZWF0ZV90b29sdGlwID0gZnVuY3Rpb24oZWxlbSwgdGV4dCkgewogICAgdmFyIHRvb2x0aXAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgYXJyb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgaW5uZXIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSwgbmV3X3Rvb2x0aXAgPSB7fTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJ3JhZGlvJyAmJiBlbGVtLnR5cGUgIT0gJ2NoZWNrYm94JykgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICdfZXJyb3InOwogICAgICBhcnJvdy5jbGFzc05hbWUgPSAnX2Vycm9yLWFycm93JzsKICAgICAgaW5uZXIuY2xhc3NOYW1lID0gJ19lcnJvci1pbm5lcic7CiAgICAgIGlubmVyLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoYXJyb3cpOwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGlubmVyKTsKICAgICAgZWxlbS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRvb2x0aXApOwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAnX2Vycm9yLWlubmVyIF9ub19hcnJvdyc7CiAgICAgIHRvb2x0aXAuaW5uZXJIVE1MID0gdGV4dDsKICAgICAgZWxlbS5wYXJlbnROb2RlLmluc2VydEJlZm9yZSh0b29sdGlwLCBlbGVtKTsKICAgICAgbmV3X3Rvb2x0aXAubm9fYXJyb3cgPSB0cnVlOwogICAgfQogICAgbmV3X3Rvb2x0aXAudGlwID0gdG9vbHRpcDsKICAgIG5ld190b29sdGlwLmVsZW0gPSBlbGVtOwogICAgdG9vbHRpcHMucHVzaChuZXdfdG9vbHRpcCk7CiAgICByZXR1cm4gbmV3X3Rvb2x0aXA7CiAgfTsKICB2YXIgcmVzaXplX3Rvb2x0aXAgPSBmdW5jdGlvbih0b29sdGlwKSB7CiAgICB2YXIgcmVjdCA9IHRvb2x0aXAuZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIHZhciBkb2MgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHNjcm9sbFBvc2l0aW9uID0gcmVjdC50b3AgLSAoKHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2Muc2Nyb2xsVG9wKSAgLSAoZG9jLmNsaWVudFRvcCB8fCAwKSk7CiAgICBpZiAoc2Nyb2xsUG9zaXRpb24gPCA0MCkgewogICAgICB0b29sdGlwLnRpcC5jbGFzc05hbWUgPSB0b29sdGlwLnRpcC5jbGFzc05hbWUucmVwbGFjZSgvID8oX2Fib3ZlfF9iZWxvdykgPy9nLCAnJykgKyAnIF9iZWxvdyc7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLnRpcC5jbGFzc05hbWUgPSB0b29sdGlwLnRpcC5jbGFzc05hbWUucmVwbGFjZSgvID8oX2Fib3ZlfF9iZWxvdykgPy9nLCAnJykgKyAnIF9hYm92ZSc7CiAgICB9CiAgfTsKICB2YXIgcmVzaXplX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBpZiAoX3JlbW92ZWQpIHJldHVybjsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9vbHRpcHMubGVuZ3RoOyBpKyspIHsKICAgICAgaWYgKCF0b29sdGlwc1tpXS5ub19hcnJvdykgcmVzaXplX3Rvb2x0aXAodG9vbHRpcHNbaV0pOwogICAgfQogIH07CiAgdmFyIHZhbGlkYXRlX2ZpZWxkID0gZnVuY3Rpb24oZWxlbSwgcmVtb3ZlKSB7CiAgICB2YXIgdG9vbHRpcCA9IG51bGwsIHZhbHVlID0gZWxlbS52YWx1ZSwgbm9fZXJyb3IgPSB0cnVlOwogICAgcmVtb3ZlID8gcmVtb3ZlX3Rvb2x0aXAoZWxlbSkgOiBmYWxzZTsKICAgIGlmIChlbGVtLnR5cGUgIT0gJ2NoZWNrYm94JykgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZS5yZXBsYWNlKC8gP19oYXNfZXJyb3IgPy9nLCAnJyk7CiAgICBpZiAoZWxlbS5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgIT09IG51bGwpIHsKICAgICAgaWYgKGVsZW0udHlwZSA9PSAncmFkaW8nIHx8IChlbGVtLnR5cGUgPT0gJ2NoZWNrYm94JyAmJiAvYW55Ly50ZXN0KGVsZW0uY2xhc3NOYW1lKSkpIHsKICAgICAgICB2YXIgZWxlbXMgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbGVtLm5hbWVdOwogICAgICAgIGlmICghKGVsZW1zIGluc3RhbmNlb2YgTm9kZUxpc3QgfHwgZWxlbXMgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbikgfHwgZWxlbXMubGVuZ3RoIDw9IDEpIHsKICAgICAgICAgIG5vX2Vycm9yID0gZWxlbS5jaGVja2VkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtc1tpXS5jaGVja2VkKSBub19lcnJvciA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghbm9fZXJyb3IpIHsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAiVmFsaXRzZSB5a3NpIHZhaWh0b2VoZG9pc3RhLiIpOwogICAgICAgIH0KICAgICAgfSBlbHNlIGlmIChlbGVtLnR5cGUgPT0nY2hlY2tib3gnKSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXSwgZm91bmQgPSBmYWxzZSwgZXJyID0gW107CiAgICAgICAgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmIChlbGVtc1tpXS5nZXRBdHRyaWJ1dGUoJ3JlcXVpcmVkJykgPT09IG51bGwpIGNvbnRpbnVlOwogICAgICAgICAgaWYgKCFmb3VuZCAmJiBlbGVtc1tpXSAhPT0gZWxlbSkgcmV0dXJuIHRydWU7CiAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJycpOwogICAgICAgICAgaWYgKCFlbGVtc1tpXS5jaGVja2VkKSB7CiAgICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICAgIGVsZW1zW2ldLmNsYXNzTmFtZSA9IGVsZW1zW2ldLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgICAgIGVyci5wdXNoKCJSYXN0aXRhICVzIGpvcyBoYWx1YXQgamF0a2FhIi5yZXBsYWNlKCIlcyIsIGVsZW1zW2ldLnZhbHVlKSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghbm9fZXJyb3IpIHsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCBlcnIuam9pbignPGJyLz4nKSk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGVsZW0udGFnTmFtZSA9PSAnU0VMRUNUJykgewogICAgICAgIHZhciBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgaWYgKGVsZW0ubXVsdGlwbGUpIHsKICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQgJiYgKCFlbGVtLm9wdGlvbnNbaV0udmFsdWUgfHwgKGVsZW0ub3B0aW9uc1tpXS52YWx1ZS5tYXRjaCgvXG4vZykpKSkgewogICAgICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgaWYgKCFzZWxlY3RlZCkgewogICAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICJWYWxpdHNlIHlrc2kgdmFpaHRvZWhkb2lzdGEuIik7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuIik7CiAgICAgIH0KICAgIH0KICAgIGlmIChub19lcnJvciAmJiBlbGVtLm5hbWUgPT0gJ2VtYWlsJykgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eW1wrX2EtejAtOS0nJj1dKyhcLltcK19hLXowLTktJ10rKSpAW2EtejAtOS1dKyhcLlthLXowLTktXSspKihcLlthLXpdezIsfSkkL2kpKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkVudGVyIGEgdmFsaWQgZW1haWwgYWRkcmVzcy4iKTsKICAgICAgfQogICAgfQogICAgaWYgKG5vX2Vycm9yICYmIC9kYXRlX2ZpZWxkLy50ZXN0KGVsZW0uY2xhc3NOYW1lKSkgewogICAgICBpZiAoIXZhbHVlLm1hdGNoKC9eXGRcZFxkXGQtXGRcZC1cZFxkJC8pKSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICcgX2hhc19lcnJvcic7CiAgICAgICAgbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgIkxhaXRhIG9pa2VhIHDDpGl2w6Rtw6TDpHLDpC4iKTsKICAgICAgfQogICAgfQogICAgdG9vbHRpcCA/IHJlc2l6ZV90b29sdGlwKHRvb2x0aXApIDogZmFsc2U7CiAgICByZXR1cm4gbm9fZXJyb3I7CiAgfTsKICB2YXIgbmVlZHNfdmFsaWRhdGUgPSBmdW5jdGlvbihlbCkgewogICAgICAgIGlmKGVsLmdldEF0dHJpYnV0ZSgncmVxdWlyZWQnKSAhPT0gbnVsbCl7CiAgICAgICAgICAgIHJldHVybiB0cnVlCiAgICAgICAgfQogICAgICAgIGlmKGVsLm5hbWUgPT09ICdlbWFpbCcgJiYgZWwudmFsdWUgIT09ICIiKXsKICAgICAgICAgICAgcmV0dXJuIHRydWUKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGZhbHNlCiAgfTsKICB2YXIgdmFsaWRhdGVfZm9ybSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKSwgbm9fZXJyb3IgPSB0cnVlOwogICAgaWYgKCFzdWJtaXR0ZWQpIHsKICAgICAgc3VibWl0dGVkID0gdHJ1ZTsKICAgICAgZm9yICh2YXIgaSA9IDAsIGxlbiA9IGFsbElucHV0cy5sZW5ndGg7IGkgPCBsZW47IGkrKykgewogICAgICAgIHZhciBpbnB1dCA9IGFsbElucHV0c1tpXTsKICAgICAgICBpZiAobmVlZHNfdmFsaWRhdGUoaW5wdXQpKSB7CiAgICAgICAgICBpZiAoaW5wdXQudHlwZSA9PSAndGV4dCcgfHwgaW5wdXQudHlwZSA9PSAnbnVtYmVyJyB8fCBpbnB1dC50eXBlID09ICd0aW1lJykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2JsdXInLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy52YWx1ZS50cmltKCk7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJ2lucHV0JywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfSBlbHNlIGlmIChpbnB1dC50eXBlID09ICdyYWRpbycgfHwgaW5wdXQudHlwZSA9PSAnY2hlY2tib3gnKSB7CiAgICAgICAgICAgIChmdW5jdGlvbihlbCkgewogICAgICAgICAgICAgIHZhciByYWRpb3MgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbC5uYW1lXTsKICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHJhZGlvcy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgYWRkRXZlbnQocmFkaW9zW2ldLCAnY2xpY2snLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQoZWwsIHRydWUpOwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KShpbnB1dCk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnRhZ05hbWUgPT0gJ1NFTEVDVCcpIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICdjaGFuZ2UnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJ3RleHRhcmVhJyl7CiAgICAgICAgICAgIGFkZEV2ZW50KGlucHV0LCAnaW5wdXQnLCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9CiAgICByZW1vdmVfdG9vbHRpcHMoKTsKICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHsKICAgICAgdmFyIGVsZW0gPSBhbGxJbnB1dHNbaV07CiAgICAgIGlmIChuZWVkc192YWxpZGF0ZShlbGVtKSkgewogICAgICAgIGlmIChlbGVtLnRhZ05hbWUudG9Mb3dlckNhc2UoKSAhPT0gInNlbGVjdCIpIHsKICAgICAgICAgIGVsZW0udmFsdWUgPSBlbGVtLnZhbHVlLnRyaW0oKTsKICAgICAgICB9CiAgICAgICAgdmFsaWRhdGVfZmllbGQoZWxlbSkgPyB0cnVlIDogbm9fZXJyb3IgPSBmYWxzZTsKICAgICAgfQogICAgfQogICAgaWYgKCFub19lcnJvciAmJiBlKSB7CiAgICAgIGUucHJldmVudERlZmF1bHQoKTsKICAgIH0KICAgIHJlc2l6ZV90b29sdGlwcygpOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgYWRkRXZlbnQod2luZG93LCAncmVzaXplJywgcmVzaXplX3Rvb2x0aXBzKTsKICBhZGRFdmVudCh3aW5kb3csICdzY3JvbGwnLCByZXNpemVfdG9vbHRpcHMpOwogICAgdmFyIF9mb3JtX3NlcmlhbGl6ZSA9IGZ1bmN0aW9uKGZvcm0pe2lmKCFmb3JtfHxmb3JtLm5vZGVOYW1lIT09IkZPUk0iKXtyZXR1cm4gfXZhciBpLGoscT1bXTtmb3IoaT0wO2k8Zm9ybS5lbGVtZW50cy5sZW5ndGg7aSsrKXtpZihmb3JtLmVsZW1lbnRzW2ldLm5hbWU9PT0iIil7Y29udGludWV9c3dpdGNoKGZvcm0uZWxlbWVudHNbaV0ubm9kZU5hbWUpe2Nhc2UiSU5QVVQiOnN3aXRjaChmb3JtLmVsZW1lbnRzW2ldLnR5cGUpe2Nhc2UidGV4dCI6Y2FzZSJudW1iZXIiOmNhc2UiZGF0ZSI6Y2FzZSJ0aW1lIjpjYXNlImhpZGRlbiI6Y2FzZSJwYXNzd29yZCI6Y2FzZSJidXR0b24iOmNhc2UicmVzZXQiOmNhc2Uic3VibWl0IjpxLnB1c2goZm9ybS5lbGVtZW50c1tpXS5uYW1lKyI9IitlbmNvZGVVUklDb21wb25lbnQoZm9ybS5lbGVtZW50c1tpXS52YWx1ZSkpO2JyZWFrO2Nhc2UiY2hlY2tib3giOmNhc2UicmFkaW8iOmlmKGZvcm0uZWxlbWVudHNbaV0uY2hlY2tlZCl7cS5wdXNoKGZvcm0uZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0uZWxlbWVudHNbaV0udmFsdWUpKX1icmVhaztjYXNlImZpbGUiOmJyZWFrfWJyZWFrO2Nhc2UiVEVYVEFSRUEiOnEucHVzaChmb3JtLmVsZW1lbnRzW2ldLm5hbWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChmb3JtLmVsZW1lbnRzW2ldLnZhbHVlKSk7YnJlYWs7Y2FzZSJTRUxFQ1QiOnN3aXRjaChmb3JtLmVsZW1lbnRzW2ldLnR5cGUpe2Nhc2Uic2VsZWN0LW9uZSI6cS5wdXNoKGZvcm0uZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0uZWxlbWVudHNbaV0udmFsdWUpKTticmVhaztjYXNlInNlbGVjdC1tdWx0aXBsZSI6Zm9yKGo9MDtqPGZvcm0uZWxlbWVudHNbaV0ub3B0aW9ucy5sZW5ndGg7aisrKXtpZihmb3JtLmVsZW1lbnRzW2ldLm9wdGlvbnNbal0uc2VsZWN0ZWQpe3EucHVzaChmb3JtLmVsZW1lbnRzW2ldLm5hbWUrIj0iK2VuY29kZVVSSUNvbXBvbmVudChmb3JtLmVsZW1lbnRzW2ldLm9wdGlvbnNbal0udmFsdWUpKX19YnJlYWt9YnJlYWs7Y2FzZSJCVVRUT04iOnN3aXRjaChmb3JtLmVsZW1lbnRzW2ldLnR5cGUpe2Nhc2UicmVzZXQiOmNhc2Uic3VibWl0IjpjYXNlImJ1dHRvbiI6cS5wdXNoKGZvcm0uZWxlbWVudHNbaV0ubmFtZSsiPSIrZW5jb2RlVVJJQ29tcG9uZW50KGZvcm0uZWxlbWVudHNbaV0udmFsdWUpKTticmVha31icmVha319cmV0dXJuIHEuam9pbigiJiIpfTsKICB2YXIgZm9ybV9zdWJtaXQgPSBmdW5jdGlvbihlKSB7CiAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICBpZiAodmFsaWRhdGVfZm9ybSgpKSB7CiAgICAgIC8vIHVzZSB0aGlzIHRyaWNrIHRvIGdldCB0aGUgc3VibWl0IGJ1dHRvbiAmIGRpc2FibGUgaXQgdXNpbmcgcGxhaW4gamF2YXNjcmlwdAogICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjX2Zvcm1fMzNfc3VibWl0JykuZGlzYWJsZWQgPSB0cnVlOwogICAgICAgICAgICB2YXIgc2VyaWFsaXplZCA9IF9mb3JtX3NlcmlhbGl6ZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnX2Zvcm1fMzNfJykpLnJlcGxhY2UoLyUwQS9nLCAnXFxuJyk7CiAgICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCcuX2Zvcm1fZXJyb3InKTsKICAgICAgZXJyID8gZXJyLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoZXJyKSA6IGZhbHNlOwogICAgICBfbG9hZF9zY3JpcHQoJ2h0dHBzOi8va2FyZW5nYXMuYWN0aXZlaG9zdGVkLmNvbS9wcm9jLnBocD8nICsgc2VyaWFsaXplZCArICcmanNvbnA9dHJ1ZScpOwogICAgfQogICAgcmV0dXJuIGZhbHNlOwogIH07CiAgYWRkRXZlbnQoZm9ybV90b19zdWJtaXQsICdzdWJtaXQnLCBmb3JtX3N1Ym1pdCk7Cn0pKCk7Cgo8L3NjcmlwdD4=[/fusion_code][fusion_button link=”https://pinnoittamo.fi/mallisto-uusi/” title=”” target=”_self” link_attributes=”” alignment_medium=”” alignment_small=”” alignment=”” modal=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” color=”default” button_gradient_top_color=”” button_gradient_bottom_color=”” button_gradient_top_color_hover=”” button_gradient_bottom_color_hover=”” gradient_start_position=”” gradient_end_position=”” gradient_type=”” radial_direction=”” linear_angle=”180″ accent_color=”” accent_hover_color=”” type=”” bevel_color=”” bevel_color_hover=”” border_top=”” border_right=”” border_bottom=”” border_left=”” border_radius_top_left=”” border_radius_top_right=”” border_radius_bottom_right=”” border_radius_bottom_left=”” border_color=”” border_hover_color=”” size=”” padding_top=”” padding_right=”” padding_bottom=”” padding_left=”” font_size=”” line_height=”” fusion_font_family_button_font=”” fusion_font_variant_button_font=”” letter_spacing=”” text_transform=”” stretch=”default” margin_top=”” margin_right=”” margin_bottom=”” margin_left=”” icon=”” icon_position=”left” icon_divider=”no” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]TUTUSTU KA-MALLISTOON[/fusion_button][fusion_text columns=”” column_min_width=”” column_spacing=”” rule_style=”default” rule_size=”” rule_color=”” content_alignment_medium=”” content_alignment_small=”” content_alignment=”” hide_on_mobile=”small-visibility,medium-visibility,large-visibility” sticky_display=”normal,sticky” class=”” id=”” margin_top=”” margin_right=”” margin_bottom=”” margin_left=”” font_size=”” fusion_font_family_text_font=”” fusion_font_variant_text_font=”” line_height=”” letter_spacing=”” text_transform=”none” text_color=”” animation_type=”” animation_direction=”left” animation_speed=”0.3″ animation_offset=””]

*) Osallistumalla arvontaan liityt samalla pinnoittamo.fi uutiskirjelistalle, josta voit halutessasi poistua koska tahansa. Uutiskirjeessä saat sähköpostiisi tiedon uusimmista uutisistamme, sekä kerromme sinulle ajankohtaisista aiheista, kuten tuotteidemme kampanjatarjouksista ja tapahtumistamme. Mekin vihaamme roskapostia, joten emme tule lähettämään sinulle turhia viestejä ja voit aina halutessasi peruuttaa tilauksesi.

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container]

Voinko auttaa?