[fusion_builder_container hundred_percent=»no» hundred_percent_height=»no» hundred_percent_height_scroll=»no» hundred_percent_height_center_content=»yes» equal_height_columns=»no» menu_anchor=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»about-main» background_color=»» background_image=»https://www.monicacustodio.com/wp-content/uploads/2019/03/Taller-Flor-Acuarela-121.jpg» background_position=»center center» background_repeat=»no-repeat» fade=»no» background_parallax=»none» enable_mobile=»no» parallax_speed=»0.3″ video_mp4=»» video_webm=»» video_ogv=»» video_url=»» video_aspect_ratio=»16:9″ video_loop=»yes» video_mute=»yes» video_preview_image=»» border_size=»» border_color=»» border_style=»solid» margin_top=»» margin_bottom=»» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»»][fusion_builder_row][fusion_builder_column type=»1_1″ layout=»1_1″ spacing=»» center_content=»no» link=»» target=»_self» min_height=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»left top» background_repeat=»no-repeat» hover_type=»none» border_size=»0″ border_color=»» border_style=»solid» border_position=»all» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» dimension_margin=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»» last=»no»][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=»no» hundred_percent_height=»no» hundred_percent_height_scroll=»no» hundred_percent_height_center_content=»yes» equal_height_columns=»no» menu_anchor=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»center center» background_repeat=»no-repeat» fade=»no» background_parallax=»none» enable_mobile=»no» parallax_speed=»0.3″ video_mp4=»» video_webm=»» video_ogv=»» video_url=»» video_aspect_ratio=»16:9″ video_loop=»yes» video_mute=»yes» video_preview_image=»» border_size=»» border_color=»» border_style=»solid» margin_top=»» margin_bottom=»» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»»][fusion_builder_row][fusion_builder_column type=»1_1″ layout=»1_1″ spacing=»» center_content=»no» link=»» target=»_self» min_height=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»left top» undefined=»» background_repeat=»no-repeat» hover_type=»none» border_size=»0″ border_color=»» border_style=»solid» border_position=»all» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» margin_top=»60″ margin_bottom=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»» last=»no»][fusion_text]

FAQ

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=»no» hundred_percent_height=»no» hundred_percent_height_scroll=»no» hundred_percent_height_center_content=»yes» equal_height_columns=»no» menu_anchor=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»max-width-900″ id=»» background_color=»» background_image=»» background_position=»center center» background_repeat=»no-repeat» fade=»no» background_parallax=»none» enable_mobile=»no» parallax_speed=»0.3″ video_mp4=»» video_webm=»» video_ogv=»» video_url=»» video_aspect_ratio=»16:9″ video_loop=»yes» video_mute=»yes» video_preview_image=»» border_size=»» border_color=»» border_style=»solid» margin_top=»» margin_bottom=»» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»»][fusion_builder_row][fusion_builder_column type=»1_2″ layout=»1_2″ spacing=»» center_content=»no» link=»» target=»_self» min_height=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»left top» background_repeat=»no-repeat» hover_type=»none» border_size=»0″ border_color=»» border_style=»solid» border_position=»all» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» dimension_margin=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»» last=»no»][fusion_text]

¿Cuál es tu proceso de trabajo?
Cuando un cliente contacta conmigo lo primero que hago es recopilar toda la información posible hasta hacerme una idea visual de la historia y de cómo quiero realizar la obra. A esta fase la llamo ENCONTRAR LA ESENCIA.

Realizo varios bocetos hasta escoger una PRE-OBRA y decidimos juntos si vamos bien encaminados o es necesario modificar algún detalle o realizar alguna adaptación. Esta parte es la más creativa  y la disfrutamos mucho juntos porque nos implicamos todos en el proceso.

Cuando ya hemos decidido que está todo correcto entonces ya añado detalles, fondos, colores y ¡VOILÀ! se produce la magia.

¿Qué cosas te inspiran?
La naturaleza es mi máxima inspiración, sus colores, pigmentos, texturas, luces y sombras. Soy amante de la frondosidad de los bosques del Pirineo y de la sensualidad del desierto marroquí. La literatura. Momentos que vivo o historias que me explican. Amigos con los que colaboro en proyectos creativos. El Wabisabi oriental. El elogio de la sombra y muchas situaciones cotidianas que me rodean dia a dia.

¿Cómo definirías tu estilo?
Diría que es un estilo ORGÁNICO,  DELICADO, ÍNTIMO y EMOCIONAL. Me gusta buscar la belleza y cuidar cada detalle que hace cada obra 100% auténtica.

¿Cuál es tu entorno ideal para trabajar?
No es tan importante el entorno como el estado mental y anímico en el que me encuentro en el momento de ponerme a trabajar. Para mi es importante el momento de conexión previo y para eso dependiendo del momento necesito cosas diferentes: silencio o música tranquila, orden a mi alrededor, calmar la respiración … y un gran vaso de té verde con jengibre, menta y limón.

[/fusion_text][/fusion_builder_column][fusion_builder_column type=»1_2″ layout=»1_2″ spacing=»» center_content=»no» link=»» target=»_self» min_height=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»left top» background_repeat=»no-repeat» hover_type=»none» border_size=»0″ border_color=»» border_style=»solid» border_position=»all» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» dimension_margin=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»» last=»no»][fusion_text]

¿Cómo puedo adquirir tus obras artísticas?
Si te interesa una obra personalizada puedes escribirme a través de CONTACTO.

Si lo que te interesa es comprar un original o lámina puedes  visitar mi SHOP que mantengo completamente actualizada.

¿Cuáles son tus materiales favoritos?
Dependiendo del tipo de resultado que busco o de lo que me pida el cliente escojo entre realizar el proyecto manualmente o digitalmente.

En este momento nada supera el tacto del lápiz sobre el papel y las transparencias de la acuarela o los preciosas texturas del gouache. En otras ocasiones he buscado la comodidad de los rotuladores acuarelables y en otras la pintura acrílica. A donde la creatividad me lleve.

¿Cuál es tu marca favorita de acuarela?
Actualmente trabajo con Winsor & Newton, Schminke y Holbein..

¿Cuál es tu sketchbook favorito?
Mis libreta preferida es sin duda una libreta de la marca Dolça Llibreta que renuevo constantemente.

¿Haces exposiciones?
Sí, a través de mi NEWSLETTER te mantendré puntualmente informada de todas mis novedades.

[/fusion_text][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container hundred_percent=»no» hundred_percent_height=»no» hundred_percent_height_scroll=»no» hundred_percent_height_center_content=»yes» equal_height_columns=»no» menu_anchor=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»center center» background_repeat=»no-repeat» fade=»no» background_parallax=»none» enable_mobile=»no» parallax_speed=»0.3″ video_mp4=»» video_webm=»» video_ogv=»» video_url=»» video_aspect_ratio=»16:9″ video_loop=»yes» video_mute=»yes» video_preview_image=»» border_size=»» border_color=»» border_style=»solid» margin_top=»» margin_bottom=»» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»»][fusion_builder_row][fusion_builder_column type=»1_1″ layout=»1_1″ spacing=»» center_content=»no» link=»» target=»_self» min_height=»» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» background_color=»» background_image=»» background_position=»left top» background_repeat=»no-repeat» hover_type=»none» border_size=»0″ border_color=»» border_style=»solid» border_position=»all» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» dimension_margin=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»» last=»no»][fusion_imageframe image_id=»15376″ style_type=»none» stylecolor=»» hover_type=»none» bordersize=»» bordercolor=»» borderradius=»» align=»center» lightbox=»no» gallery_id=»» lightbox_image=»» alt=»» link=»» linktarget=»_self» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»width-70″ id=»» animation_type=»» animation_direction=»left» animation_speed=»0.3″ animation_offset=»»]https://www.monicacustodio.com/wp-content/uploads/2018/07/sobre-mi.jpg[/fusion_imageframe][fusion_separator style_type=»none» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» sep_color=»» top_margin=»30″ bottom_margin=»» border_size=»» icon=»» icon_circle=»» icon_circle_color=»» width=»» alignment=»center» /][/fusion_builder_column][/fusion_builder_row][/fusion_builder_container][fusion_builder_container 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=»no» class=»» id=»» background_color=»» background_image=»https://www.monicacustodio.com/wp-content/uploads/2018/07/home-pattern-2.jpg» background_position=»left top» 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=»0px» border_color=»» border_style=»solid» margin_top=»» margin_bottom=»» padding_top=»20″ padding_right=»0px» padding_bottom=»20″ padding_left=»0px»][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» 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=»no» center_content=»no» min_height=»none» last=»no» hover_type=»none» link=»» border_position=»all»][fusion_text]

NEWSLETTER

[/fusion_text][fusion_text]

[/fusion_text][/fusion_builder_column][fusion_builder_column type=»1_1″ layout=»1_1″ last=»yes» spacing=»yes» center_content=»no» hide_on_mobile=»no» background_color=»» background_image=»» background_repeat=»no-repeat» background_position=»left top» hover_type=»none» link=»» border_position=»all» border_size=»0px» border_color=»» border_style=»solid» padding_top=»» padding_right=»» padding_bottom=»» padding_left=»» margin_top=»» margin_bottom=»» animation_type=»0″ animation_direction=»down» animation_speed=»0.1″ animation_offset=»» class=»» id=»» min_height=»»][fusion_code]Jmx0O3N0eWxlJmd0OwogI19mb3JtXzE3XyB7IGZvbnQtc2l6ZToxNHB4OyBsaW5lLWhlaWdodDoxLjY7IGZvbnQtZmFtaWx5OmFyaWFsLCBoZWx2ZXRpY2EsIHNhbnMtc2VyaWY7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMTdfICogeyBvdXRsaW5lOjA7IH0KIC5fZm9ybV9oaWRlIHsgZGlzcGxheTpub25lOyB2aXNpYmlsaXR5OmhpZGRlbjsgfQogLl9mb3JtX3Nob3cgeyBkaXNwbGF5OmJsb2NrOyB2aXNpYmlsaXR5OnZpc2libGU7IH0KICNfZm9ybV8xN18uX2Zvcm0tdG9wIHsgdG9wOjA7IH0KICNfZm9ybV8xN18uX2Zvcm0tYm90dG9tIHsgYm90dG9tOjA7IH0KICNfZm9ybV8xN18uX2Zvcm0tbGVmdCB7IGxlZnQ6MDsgfQogI19mb3JtXzE3Xy5fZm9ybS1yaWdodCB7IHJpZ2h0OjA7IH0KICNfZm9ybV8xN18gaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMTdfIGlucHV0W3R5cGU9JnF1b3Q7ZGF0ZSZxdW90O10sI19mb3JtXzE3XyB0ZXh0YXJlYSB7IHBhZGRpbmc6NnB4OyBoZWlnaHQ6YXV0bzsgY29sb3I6IzAwMCAhaW1wb3J0YW50OyBmb250LXNpemU6MTNweDsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV8xN18gdGV4dGFyZWEgeyByZXNpemU6bm9uZTsgfQogI19mb3JtXzE3XyAuX3N1Ym1pdCB7IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyBjdXJzb3I6cG9pbnRlcjsgZm9udC1mYW1pbHk6YXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtc2l6ZToxNHB4OyB0ZXh0LWFsaWduOmNlbnRlcjsgYmFja2dyb3VuZDojNjU4YzdhICFpbXBvcnRhbnQ7IGJvcmRlcjowICFpbXBvcnRhbnQ7IGNvbG9yOiNmZmYgIWltcG9ydGFudDsgcGFkZGluZzoxMHB4ICFpbXBvcnRhbnQ7IHdpZHRoOjE4MHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO30KICNfZm9ybV8xN18gLl9jbG9zZS1pY29uIHsgY3Vyc29yOnBvaW50ZXI7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCYjeDI3O2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvZXNma3lqaDF1X2Zvcm1zLWNsb3NlLWRhcmsucG5nJiN4Mjc7KTsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyBiYWNrZ3JvdW5kLXNpemU6MTQuMnB4IDE0LjJweDsgcG9zaXRpb246YWJzb2x1dGU7IGRpc3BsYXk6YmxvY2s7IHRvcDoxMXB4OyByaWdodDo5cHg7IG92ZXJmbG93OmhpZGRlbjsgd2lkdGg6MTYuMnB4OyBoZWlnaHQ6MTYuMnB4OyB9CiAjX2Zvcm1fMTdfIC5fY2xvc2UtaWNvbjpiZWZvcmUgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgfQogI19mb3JtXzE3XyAuX2Zvcm0tYm9keSB7IG1hcmdpbi1ib3R0b206MzBweDsgfQogI19mb3JtXzE3XyAuX2Zvcm0taW1hZ2UtbGVmdCB7IHdpZHRoOjE1MHB4OyBmbG9hdDpsZWZ0OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS1jb250ZW50LXJpZ2h0IHsgbWFyZ2luLWxlZnQ6MTY0cHg7IH0KICNfZm9ybV8xN18gLl9mb3JtLWJyYW5kaW5nIHsgY29sb3I6I2ZmZjsgZm9udC1zaXplOjEwcHg7IGNsZWFyOmJvdGg7IHRleHQtYWxpZ246bGVmdDsgbWFyZ2luLXRvcDozMHB4OyBmb250LXdlaWdodDoxMDA7IH0KICNfZm9ybV8xN18gLl9mb3JtLWJyYW5kaW5nIC5fbG9nbyB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEzMHB4OyBoZWlnaHQ6MTRweDsgbWFyZ2luLXRvcDo2cHg7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCYjeDI3O2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvaGg5dWpxZ3Y1X2FjbG9nb19saS5wbmcmI3gyNzspOyBiYWNrZ3JvdW5kLXNpemU6MTMwcHggYXV0bzsgYmFja2dyb3VuZC1yZXBlYXQ6bm8tcmVwZWF0OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS1sYWJlbCwjX2Zvcm1fMTdfIC5fZm9ybV9lbGVtZW50IC5fZm9ybS1sYWJlbCB7IGZvbnQtd2VpZ2h0OmJvbGQ7IG1hcmdpbi1ib3R0b206NXB4OyBkaXNwbGF5OmJsb2NrOyB9CiAjX2Zvcm1fMTdfLl9kYXJrIC5fZm9ybS1icmFuZGluZyB7IGNvbG9yOiMzMzM7IH0KICNfZm9ybV8xN18uX2RhcmsgLl9mb3JtLWJyYW5kaW5nIC5fbG9nbyB7IGJhY2tncm91bmQtaW1hZ2U6dXJsKCYjeDI3O2h0dHBzOi8vZDIyNmFqNGFvMXQ2MXEuY2xvdWRmcm9udC5uZXQvamZ0cTJjOHNfYWNsb2dvX2RrLnBuZyYjeDI3Oyk7IH0KICNfZm9ybV8xN18gLl9mb3JtX2VsZW1lbnQgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbWFyZ2luLWJvdHRvbToxMHB4OyBmb250LXNpemU6MDsgbWF4LXdpZHRoOjEwMCU7IH0KICNfZm9ybV8xN18gLl9mb3JtX2VsZW1lbnQgKiB7IGZvbnQtc2l6ZToxNHB4OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybV9lbGVtZW50Ll9jbGVhciB7IGNsZWFyOmJvdGg7IHdpZHRoOjEwMCU7IGZsb2F0Om5vbmU7IH0KICNfZm9ybV8xN18gLl9mb3JtX2VsZW1lbnQuX2NsZWFyOmFmdGVyIHsgY2xlYXI6bGVmdDsgfQogI19mb3JtXzE3XyAuX2Zvcm1fZWxlbWVudCBpbnB1dFt0eXBlPSZxdW90O3RleHQmcXVvdDtdLCNfZm9ybV8xN18gLl9mb3JtX2VsZW1lbnQgaW5wdXRbdHlwZT0mcXVvdDtkYXRlJnF1b3Q7XSwjX2Zvcm1fMTdfIC5fZm9ybV9lbGVtZW50IHNlbGVjdCwjX2Zvcm1fMTdfIC5fZm9ybV9lbGVtZW50IHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgLXdlYmtpdC1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IC1tb3otYm94LXNpemluZzpib3JkZXItYm94OyBib3gtc2l6aW5nOmJvcmRlci1ib3g7IH0KICNfZm9ybV8xN18gLl9maWVsZC13cmFwcGVyIHsgcG9zaXRpb246cmVsYXRpdmU7IH0KICNfZm9ybV8xN18gLl9pbmxpbmUtc3R5bGUgeyBmbG9hdDpsZWZ0OyB9CiAjX2Zvcm1fMTdfIC5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9JnF1b3Q7dGV4dCZxdW90O10geyB3aWR0aDoyNTBweDsgfQogI19mb3JtXzE3XyAuX2lubGluZS1zdHlsZTpub3QoLl9jbGVhcikgKyAuX2lubGluZS1zdHlsZTpub3QoLl9jbGVhcikgeyBtYXJnaW4tbGVmdDoyMHB4OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybV9lbGVtZW50IGltZy5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMTdfIC5fY2xlYXItZWxlbWVudCB7IGNsZWFyOmxlZnQ7IH0KICNfZm9ybV8xN18gLl9mdWxsX3dpZHRoIHsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzE3XyAuX2Zvcm1fZnVsbF9maWVsZCB7IGRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzE3XyBpbnB1dFt0eXBlPSZxdW90O3RleHQmcXVvdDtdLl9oYXNfZXJyb3IsI19mb3JtXzE3XyB0ZXh0YXJlYS5faGFzX2Vycm9yIHsgYm9yZGVyOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fMTdfIGlucHV0W3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDtdLl9oYXNfZXJyb3IgeyBvdXRsaW5lOiNmMzdjN2IgMXB4IHNvbGlkOyB9CiAjX2Zvcm1fMTdfIC5fZXJyb3IgeyBkaXNwbGF5OmJsb2NrOyBwb3NpdGlvbjphYnNvbHV0ZTsgZm9udC1zaXplOjEzcHg7IHotaW5kZXg6MTAwMDAwMDE7IH0KICNfZm9ybV8xN18gLl9lcnJvci5fYWJvdmUgeyBwYWRkaW5nLWJvdHRvbTo0cHg7IHRvcDotNDFweDsgcmlnaHQ6MDsgfQogI19mb3JtXzE3XyAuX2Vycm9yLl9iZWxvdyB7IHBhZGRpbmctdG9wOjRweDsgdG9wOjEwMCU7IHJpZ2h0OjA7IH0KICNfZm9ybV8xN18gLl9lcnJvci5fYWJvdmUgLl9lcnJvci1hcnJvdyB7IGJvdHRvbTowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci10b3A6NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV8xN18gLl9lcnJvci5fYmVsb3cgLl9lcnJvci1hcnJvdyB7IHRvcDowOyByaWdodDoxNXB4OyBib3JkZXItbGVmdDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1yaWdodDo1cHggc29saWQgdHJhbnNwYXJlbnQ7IGJvcmRlci1ib3R0b206NXB4IHNvbGlkICNmMzdjN2I7IH0KICNfZm9ybV8xN18gLl9lcnJvci1pbm5lciB7IHBhZGRpbmc6OHB4IDEycHg7IGJhY2tncm91bmQtY29sb3I6I2YzN2M3YjsgZm9udC1zaXplOjEzcHg7IGZvbnQtZmFtaWx5OmFyaWFsLCBzYW5zLXNlcmlmOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgdGV4dC1kZWNvcmF0aW9uOm5vbmU7IC13ZWJraXQtYm9yZGVyLXJhZGl1czo0cHg7IC1tb3otYm9yZGVyLXJhZGl1czo0cHg7IGJvcmRlci1yYWRpdXM6NHB4OyB9CiAjX2Zvcm1fMTdfIC5fZXJyb3ItaW5uZXIuX2Zvcm1fZXJyb3IgeyBtYXJnaW4tYm90dG9tOjVweDsgdGV4dC1hbGlnbjpsZWZ0OyB9CiAjX2Zvcm1fMTdfIC5fYnV0dG9uLXdyYXBwZXIgLl9lcnJvci1pbm5lci5fZm9ybV9lcnJvciB7IHBvc2l0aW9uOnN0YXRpYzsgfQogI19mb3JtXzE3XyAuX2Vycm9yLWlubmVyLl9ub19hcnJvdyB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogI19mb3JtXzE3XyAuX2Vycm9yLWFycm93IHsgcG9zaXRpb246YWJzb2x1dGU7IHdpZHRoOjA7IGhlaWdodDowOyB9CiAjX2Zvcm1fMTdfIC5fZXJyb3ItaHRtbCB7IG1hcmdpbi1ib3R0b206MTBweDsgfQogLnBpa2Etc2luZ2xlIHsgei1pbmRleDoxMDAwMDAwMSAhaW1wb3J0YW50OyB9CiBAbWVkaWEgYWxsIGFuZCAobWluLXdpZHRoOjMyMHB4KSBhbmQgKG1heC13aWR0aDo2NjdweCkgeyA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsgZGlzcGxheTpub25lOyB9CiAjX2Zvcm1fMTdfIHsgbWFyZ2luOjA7IHdpZHRoOjEwMCU7IG1pbi13aWR0aDoxMDAlOyBtYXgtd2lkdGg6MTAwJTsgYm94LXNpemluZzpib3JkZXItYm94OyB9CiAjX2Zvcm1fMTdfICogeyAtd2Via2l0LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgLW1vei1ib3gtc2l6aW5nOmJvcmRlci1ib3g7IGJveC1zaXppbmc6Ym9yZGVyLWJveDsgZm9udC1zaXplOjFlbTsgfQogI19mb3JtXzE3XyAuX2Zvcm0tY29udGVudCB7IG1hcmdpbjowOyB3aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS1pbm5lciB7IGRpc3BsYXk6YmxvY2s7IG1pbi13aWR0aDoxMDAlOyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS10aXRsZSwjX2Zvcm1fMTdfIC5faW5saW5lLXN0eWxlIHsgbWFyZ2luLXRvcDowOyBtYXJnaW4tcmlnaHQ6MDsgbWFyZ2luLWxlZnQ6MDsgfQogI19mb3JtXzE3XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MS4yZW07IH0KICNfZm9ybV8xN18gLl9mb3JtX2VsZW1lbnQgeyBtYXJnaW46MCAwIDIwcHg7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzE3XyAuX2Zvcm0tZWxlbWVudCwjX2Zvcm1fMTdfIC5faW5saW5lLXN0eWxlLCNfZm9ybV8xN18gaW5wdXRbdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7XSwjX2Zvcm1fMTdfIGxhYmVsLCNfZm9ybV8xN18gcCwjX2Zvcm1fMTdfIHRleHRhcmVhOm5vdCguZy1yZWNhcHRjaGEtcmVzcG9uc2UpIHsgZmxvYXQ6bm9uZTsgZGlzcGxheTpibG9jazsgd2lkdGg6MTAwJTsgfQogI19mb3JtXzE3XyAuX3Jvdy5fY2hlY2tib3gtcmFkaW8gbGFiZWwgeyBkaXNwbGF5OmlubGluZTsgfQogI19mb3JtXzE3XyAuX3JvdywjX2Zvcm1fMTdfIHAsI19mb3JtXzE3XyBsYWJlbCB7IG1hcmdpbi1ib3R0b206MC43ZW07IHdpZHRoOjEwMCU7IH0KICNfZm9ybV8xN18gLl9yb3cgaW5wdXRbdHlwZT0mcXVvdDtjaGVja2JveCZxdW90O10sI19mb3JtXzE3XyAuX3JvdyBpbnB1dFt0eXBlPSZxdW90O3JhZGlvJnF1b3Q7XSB7IG1hcmdpbjowICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMTdfIC5fcm93IGlucHV0W3R5cGU9JnF1b3Q7Y2hlY2tib3gmcXVvdDtdICsgc3BhbiBsYWJlbCB7IGRpc3BsYXk6aW5saW5lOyB9CiAjX2Zvcm1fMTdfIC5fcm93IHNwYW4gbGFiZWwgeyBtYXJnaW46MCAhaW1wb3J0YW50OyB3aWR0aDppbml0aWFsICFpbXBvcnRhbnQ7IHZlcnRpY2FsLWFsaWduOm1pZGRsZSAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS1pbWFnZSB7IG1heC13aWR0aDoxMDAlOyBoZWlnaHQ6YXV0byAhaW1wb3J0YW50OyB9CiAjX2Zvcm1fMTdfIGlucHV0W3R5cGU9JnF1b3Q7dGV4dCZxdW90O10geyBwYWRkaW5nLWxlZnQ6MTBweDsgcGFkZGluZy1yaWdodDoxMHB4OyBmb250LXNpemU6MTZweDsgbGluZS1oZWlnaHQ6MS4zZW07IC13ZWJraXQtYXBwZWFyYW5jZTpub25lOyB3aWR0aDogMjUwcHg7ICAgIHBhZGRpbmc6IDEwcHg7IH0KICNfZm9ybV8xN18gaW5wdXRbdHlwZT0mcXVvdDtyYWRpbyZxdW90O10sI19mb3JtXzE3XyBpbnB1dFt0eXBlPSZxdW90O2NoZWNrYm94JnF1b3Q7XSB7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyB3aWR0aDoxLjNlbTsgaGVpZ2h0OjEuM2VtOyBmb250LXNpemU6MWVtOyBtYXJnaW46MCAwLjNlbSAwIDA7IHZlcnRpY2FsLWFsaWduOmJhc2VsaW5lOyB9CiAjX2Zvcm1fMTdfIGJ1dHRvblt0eXBlPSZxdW90O3N1Ym1pdCZxdW90O10geyBwYWRkaW5nOjIwcHg7IGZvbnQtc2l6ZToxLjVlbTsgd2lkdGg6IDE4MHB4OyB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyBsZXR0ZXItc3BhY2luZzogNXB4OyBmb250LXdlaWdodDogMzAwOyBwYWRkaW5nOiAxNXB4IDBweCAhaW1wb3J0YW50O30KICNfZm9ybV8xN18gLl9pbmxpbmUtc3R5bGUgeyBtYXJnaW46MjBweCAwIDAgIWltcG9ydGFudDsgfQogfQogI19mb3JtXzE3XyB7IHBvc2l0aW9uOnJlbGF0aXZlOyB0ZXh0LWFsaWduOmxlZnQ7IC13ZWJraXQtYm94LXNpemluZzpib3JkZXItYm94OyAtbW96LWJveC1zaXppbmc6Ym9yZGVyLWJveDsgYm94LXNpemluZzpib3JkZXItYm94OyAqem9vbToxOyBib3JkZXI6MHB4IHNvbGlkICNiMGIwYjAgIWltcG9ydGFudDsgLW1vei1ib3JkZXItcmFkaXVzOjBweCAhaW1wb3J0YW50OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGJvcmRlci1yYWRpdXM6MHB4ICFpbXBvcnRhbnQ7IGNvbG9yOiMwMDAgIWltcG9ydGFudDsgfQogI19mb3JtXzE3XyAuX2Zvcm0tdGl0bGUgeyBmb250LXNpemU6MjJweDsgbGluZS1oZWlnaHQ6MjJweDsgZm9udC13ZWlnaHQ6NjAwOyBtYXJnaW4tYm90dG9tOjA7IH0KICNfZm9ybV8xN186YmVmb3JlLCNfZm9ybV8xN186YWZ0ZXIgeyBjb250ZW50OiZxdW90OyAmcXVvdDs7IGRpc3BsYXk6dGFibGU7IH0KICNfZm9ybV8xN186YWZ0ZXIgeyBjbGVhcjpib3RoOyB9CiAjX2Zvcm1fMTdfLl9pbmxpbmUtc3R5bGUgeyB3aWR0aDphdXRvOyBkaXNwbGF5OmlubGluZS1ibG9jazsgfQogI19mb3JtXzE3Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9JnF1b3Q7dGV4dCZxdW90O10sI19mb3JtXzE3Xy5faW5saW5lLXN0eWxlIGlucHV0W3R5cGU9JnF1b3Q7ZGF0ZSZxdW90O10geyBwYWRkaW5nOjEwcHggMTJweDsgfQogI19mb3JtXzE3Xy5faW5saW5lLXN0eWxlIGJ1dHRvbi5faW5saW5lLXN0eWxlIHsgcG9zaXRpb246cmVsYXRpdmU7IHRvcDoyN3B4OyB9CiAjX2Zvcm1fMTdfLl9pbmxpbmUtc3R5bGUgcCB7IG1hcmdpbjowOyB9CiAjX2Zvcm1fMTdfLl9pbmxpbmUtc3R5bGUgLl9idXR0b24td3JhcHBlciB7IHBvc2l0aW9uOnJlbGF0aXZlOyBtYXJnaW46MjdweCAxMi41cHggMCAyMHB4OyB9CiAjX2Zvcm1fMTdfIC5fZm9ybS10aGFuay15b3UgeyBwb3NpdGlvbjpyZWxhdGl2ZTsgbGVmdDowOyByaWdodDowOyB0ZXh0LWFsaWduOmNlbnRlcjsgZm9udC1zaXplOjE4cHg7IH0KIEBtZWRpYSBhbGwgYW5kIChtaW4td2lkdGg6MzIwcHgpIGFuZCAobWF4LXdpZHRoOjY2N3B4KSB7ICNfZm9ybV8xN18uX2lubGluZS1mb3JtLl9pbmxpbmUtc3R5bGUgLl9pbmxpbmUtc3R5bGUuX2J1dHRvbi13cmFwcGVyIHsgbWFyZ2luLXRvcDoyMHB4ICFpbXBvcnRhbnQ7IG1hcmdpbi1sZWZ0OjAgIWltcG9ydGFudDsgfQogfQoKJmx0Oy9zdHlsZSZndDsKJmx0O2RpdiBzdHlsZT0mcXVvdDt0ZXh0LWFsaWduOiBjZW50ZXI7JnF1b3Q7Jmd0OwogICZsdDtmb3JtIG1ldGhvZD0mcXVvdDtQT1NUJnF1b3Q7IGFjdGlvbj0mcXVvdDtodHRwczovL21vbmljYWN1c3RvZGlvLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHAmcXVvdDsgaWQ9JnF1b3Q7X2Zvcm1fMTdfJnF1b3Q7IGNsYXNzPSZxdW90O19mb3JtIF9mb3JtXzE3IF9pbmxpbmUtZm9ybSBfaW5saW5lLXN0eWxlIF9kYXJrJnF1b3Q7IG5vdmFsaWRhdGUmZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDt1JnF1b3Q7IHZhbHVlPSZxdW90OzE3JnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtmJnF1b3Q7IHZhbHVlPSZxdW90OzE3JnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtzJnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDtoaWRkZW4mcXVvdDsgbmFtZT0mcXVvdDtjJnF1b3Q7IHZhbHVlPSZxdW90OzAmcXVvdDsgLyZndDsKICAgICZsdDtpbnB1dCB0eXBlPSZxdW90O2hpZGRlbiZxdW90OyBuYW1lPSZxdW90O20mcXVvdDsgdmFsdWU9JnF1b3Q7MCZxdW90OyAvJmd0OwogICAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7YWN0JnF1b3Q7IHZhbHVlPSZxdW90O3N1YiZxdW90OyAvJmd0OwogICAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7diZxdW90OyB2YWx1ZT0mcXVvdDsyJnF1b3Q7IC8mZ3Q7CiAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O19mb3JtLWNvbnRlbnQmcXVvdDsmZ3Q7CiAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7X2Zvcm1fZWxlbWVudCBfeDc0OTQxNDcwIF9pbmxpbmUtc3R5bGUgJnF1b3Q7ICZndDsKICAgICAgICAmbHQ7bGFiZWwgY2xhc3M9JnF1b3Q7X2Zvcm0tbGFiZWwmcXVvdDsmZ3Q7CiAgICAgICAgICAmYW1wO25ic3A7CiAgICAgICAgJmx0Oy9sYWJlbCZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O19maWVsZC13cmFwcGVyJnF1b3Q7Jmd0OwogICAgICAgICAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7dGV4dCZxdW90OyBuYW1lPSZxdW90O2Z1bGxuYW1lJnF1b3Q7IHBsYWNlaG9sZGVyPSZxdW90O05vbWJyZSZxdW90OyAvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZm9ybV9lbGVtZW50IF94NjAzNjM5OTIgX2lubGluZS1zdHlsZSAmcXVvdDsgJmd0OwogICAgICAgICZsdDtsYWJlbCBjbGFzcz0mcXVvdDtfZm9ybS1sYWJlbCZxdW90OyZndDsKICAgICAgICAgICZhbXA7bmJzcDsKICAgICAgICAmbHQ7L2xhYmVsJmd0OwogICAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7X2ZpZWxkLXdyYXBwZXImcXVvdDsmZ3Q7CiAgICAgICAgICAmbHQ7aW5wdXQgdHlwZT0mcXVvdDt0ZXh0JnF1b3Q7IG5hbWU9JnF1b3Q7ZW1haWwmcXVvdDsgcGxhY2Vob2xkZXI9JnF1b3Q7RW1haWwmcXVvdDsgcmVxdWlyZWQvJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICAgCiAgICAgICZsdDtkaXYgY2xhc3M9JnF1b3Q7X2J1dHRvbi13cmFwcGVyIF9pbmxpbmUtc3R5bGUmcXVvdDsmZ3Q7CiAgICAgICAgJmx0O2J1dHRvbiBpZD0mcXVvdDtfZm9ybV8xN19zdWJtaXQmcXVvdDsgY2xhc3M9JnF1b3Q7X3N1Ym1pdCZxdW90OyB0eXBlPSZxdW90O3N1Ym1pdCZxdW90OyZndDsKICAgICAgICAgIEVudmlhcgogICAgICAgICZsdDsvYnV0dG9uJmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfY2xlYXItZWxlbWVudCZxdW90OyZndDsKICAgICAgJmx0Oy9kaXYmZ3Q7CiAgICAgICZsdDtkaXYmZ3Q7CiAgICAgICAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7aGlkZGVuJnF1b3Q7IG5hbWU9JnF1b3Q7ZmllbGRbNl1bXSZxdW90OyB2YWx1ZT0mcXVvdDt+fCZxdW90OyZndDsKICAgICAgICAmbHQ7ZGl2IGNsYXNzPSZxdW90O19yb3cgX2NoZWNrYm94LXJhZGlvJnF1b3Q7Jmd0OwogICAgICAgICAgJmx0O2lucHV0IGlkPSZxdW90O2ZpZWxkXzZBY2VwdG8gbGEgcG9sw610aWNhIGRlIHByaXZhY2lkYWQmcXVvdDsgdHlwZT0mcXVvdDtjaGVja2JveCZxdW90OyBuYW1lPSZxdW90O2ZpZWxkWzZdW10mcXVvdDsgdmFsdWU9JnF1b3Q7QWNlcHRvIGxhIHBvbMOtdGljYSBkZSBwcml2YWNpZGFkJnF1b3Q7IGNsYXNzPSZxdW90O2FueSZxdW90OyAgcmVxdWlyZWQmZ3Q7CiAgICAgICAgICAmbHQ7c3BhbiZndDsKICAgICAgICAgICAgJmx0O2xhYmVsIGZvcj0mcXVvdDtmaWVsZF82QWNlcHRvIGxhIHBvbMOtdGljYSBkZSBwcml2YWNpZGFkJnF1b3Q7Jmd0OwogICAgICAgICAgICAgIEFjZXB0byBsYSAmbHQ7YSBocmVmPSZxdW90O2h0dHA6Ly93d3cubW9uaWNhY3VzdG9kaW8uY29tL3BvbGl0aWNhLWRlLXByaXZhY2lkYWQvJnF1b3Q7Jmd0O3BvbMOtdGljYSBkZSBwcml2YWNpZGFkJmx0Oy9hJmd0OwogICAgICAgICAgICAmbHQ7L2xhYmVsJmd0OwogICAgICAgICAgJmx0Oy9zcGFuJmd0OwogICAgICAgICZsdDsvZGl2Jmd0OwogICAgICAmbHQ7L2RpdiZndDsKICAgICZsdDsvZGl2Jmd0OwogICAgJmx0O2RpdiBjbGFzcz0mcXVvdDtfZm9ybS10aGFuay15b3UmcXVvdDsgc3R5bGU9JnF1b3Q7ZGlzcGxheTpub25lOyZxdW90OyZndDsKICAgICZsdDsvZGl2Jmd0OwogICZsdDsvZm9ybSZndDsKJmx0Oy9kaXYmZ3Q7Jmx0O3NjcmlwdCB0eXBlPSZxdW90O3RleHQvamF2YXNjcmlwdCZxdW90OyZndDsKd2luZG93LmNmaWVsZHMgPSB7JnF1b3Q7NiZxdW90OzomcXVvdDtwb2x0aWNhX2RlX3ByaXZhY2lkYWQmcXVvdDt9Owp3aW5kb3cuX3Nob3dfdGhhbmtfeW91ID0gZnVuY3Rpb24oaWQsIG1lc3NhZ2UsIHRyYWNrY21wX3VybCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJiN4Mjc7X2Zvcm1fJiN4Mjc7ICsgaWQgKyAmI3gyNztfJiN4Mjc7KSwgdGhhbmtfeW91ID0gZm9ybS5xdWVyeVNlbGVjdG9yKCYjeDI3Oy5fZm9ybS10aGFuay15b3UmI3gyNzspOwogIGZvcm0ucXVlcnlTZWxlY3RvcigmI3gyNzsuX2Zvcm0tY29udGVudCYjeDI3Oykuc3R5bGUuZGlzcGxheSA9ICYjeDI3O25vbmUmI3gyNzs7CiAgdGhhbmtfeW91LmlubmVySFRNTCA9IG1lc3NhZ2U7CiAgdGhhbmtfeW91LnN0eWxlLmRpc3BsYXkgPSAmI3gyNztibG9jayYjeDI3OzsKICBpZiAodHlwZW9mKHRyYWNrY21wX3VybCkgIT0gJiN4Mjc7dW5kZWZpbmVkJiN4Mjc7ICZhbXA7JmFtcDsgdHJhY2tjbXBfdXJsKSB7CiAgICAvLyBTaXRlIHRyYWNraW5nIFVSTCB0byB1c2UgYWZ0ZXIgaW5saW5lIGZvcm0gc3VibWlzc2lvbi4KICAgIF9sb2FkX3NjcmlwdCh0cmFja2NtcF91cmwpOwogIH0KICBpZiAodHlwZW9mIHdpbmRvdy5fZm9ybV9jYWxsYmFjayAhPT0gJiN4Mjc7dW5kZWZpbmVkJiN4Mjc7KSB3aW5kb3cuX2Zvcm1fY2FsbGJhY2soaWQpOwp9Owp3aW5kb3cuX3Nob3dfZXJyb3IgPSBmdW5jdGlvbihpZCwgbWVzc2FnZSwgaHRtbCkgewogIHZhciBmb3JtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJiN4Mjc7X2Zvcm1fJiN4Mjc7ICsgaWQgKyAmI3gyNztfJiN4Mjc7KSwgZXJyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgmI3gyNztkaXYmI3gyNzspLCBidXR0b24gPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJiN4Mjc7YnV0dG9uJiN4Mjc7KSwgb2xkX2Vycm9yID0gZm9ybS5xdWVyeVNlbGVjdG9yKCYjeDI3Oy5fZm9ybV9lcnJvciYjeDI3Oyk7CiAgaWYgKG9sZF9lcnJvcikgb2xkX2Vycm9yLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQob2xkX2Vycm9yKTsKICBlcnIuaW5uZXJIVE1MID0gbWVzc2FnZTsKICBlcnIuY2xhc3NOYW1lID0gJiN4Mjc7X2Vycm9yLWlubmVyIF9mb3JtX2Vycm9yIF9ub19hcnJvdyYjeDI3OzsKICB2YXIgd3JhcHBlciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJiN4Mjc7ZGl2JiN4Mjc7KTsKICB3cmFwcGVyLmNsYXNzTmFtZSA9ICYjeDI3O19mb3JtLWlubmVyJiN4Mjc7OwogIHdyYXBwZXIuYXBwZW5kQ2hpbGQoZXJyKTsKICBidXR0b24ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUod3JhcHBlciwgYnV0dG9uKTsKICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCYjeDI3O1tpZF49JnF1b3Q7X2Zvcm0mcXVvdDtdW2lkJD0mcXVvdDtfc3VibWl0JnF1b3Q7XSYjeDI3OykuZGlzYWJsZWQgPSBmYWxzZTsKICBpZiAoaHRtbCkgewogICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJiN4Mjc7ZGl2JiN4Mjc7KTsKICAgIGRpdi5jbGFzc05hbWUgPSAmI3gyNztfZXJyb3ItaHRtbCYjeDI3OzsKICAgIGRpdi5pbm5lckhUTUwgPSBodG1sOwogICAgZXJyLmFwcGVuZENoaWxkKGRpdik7CiAgfQp9Owp3aW5kb3cuX2xvYWRfc2NyaXB0ID0gZnVuY3Rpb24odXJsLCBjYWxsYmFjaykgewogICAgdmFyIGhlYWQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCYjeDI3O2hlYWQmI3gyNzspLCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCYjeDI3O3NjcmlwdCYjeDI3OyksIHIgPSBmYWxzZTsKICAgIHNjcmlwdC50eXBlID0gJiN4Mjc7dGV4dC9qYXZhc2NyaXB0JiN4Mjc7OwogICAgc2NyaXB0LmNoYXJzZXQgPSAmI3gyNzt1dGYtOCYjeDI3OzsKICAgIHNjcmlwdC5zcmMgPSB1cmw7CiAgICBpZiAoY2FsbGJhY2spIHsKICAgICAgc2NyaXB0Lm9ubG9hZCA9IHNjcmlwdC5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbigpIHsKICAgICAgaWYgKCFyICZhbXA7JmFtcDsgKCF0aGlzLnJlYWR5U3RhdGUgfHwgdGhpcy5yZWFkeVN0YXRlID09ICYjeDI3O2NvbXBsZXRlJiN4Mjc7KSkgewogICAgICAgIHIgPSB0cnVlOwogICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgfQogICAgICB9OwogICAgfQogICAgaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpOwp9OwooZnVuY3Rpb24oKSB7CiAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2guc2VhcmNoKCZxdW90O2V4Y2x1ZGVmb3JtJnF1b3Q7KSAhPT0gLTEpIHJldHVybiBmYWxzZTsKICB2YXIgZ2V0Q29va2llID0gZnVuY3Rpb24obmFtZSkgewogICAgdmFyIG1hdGNoID0gZG9jdW1lbnQuY29va2llLm1hdGNoKG5ldyBSZWdFeHAoJiN4Mjc7KF58OyApJiN4Mjc7ICsgbmFtZSArICYjeDI3Oz0oW147XSspJiN4Mjc7KSk7CiAgICByZXR1cm4gbWF0Y2ggPyBtYXRjaFsyXSA6IG51bGw7CiAgfQogIHZhciBzZXRDb29raWUgPSBmdW5jdGlvbihuYW1lLCB2YWx1ZSkgewogICAgdmFyIG5vdyA9IG5ldyBEYXRlKCk7CiAgICB2YXIgdGltZSA9IG5vdy5nZXRUaW1lKCk7CiAgICB2YXIgZXhwaXJlVGltZSA9IHRpbWUgKyAxMDAwICogNjAgKiA2MCAqIDI0ICogMzY1OwogICAgbm93LnNldFRpbWUoZXhwaXJlVGltZSk7CiAgICBkb2N1bWVudC5jb29raWUgPSBuYW1lICsgJiN4Mjc7PSYjeDI3OyArIHZhbHVlICsgJiN4Mjc7OyBleHBpcmVzPSYjeDI3OyArIG5vdyArICYjeDI3OztwYXRoPS8mI3gyNzs7CiAgfQogICAgICB2YXIgYWRkRXZlbnQgPSBmdW5jdGlvbihlbGVtZW50LCBldmVudCwgZnVuYykgewogICAgaWYgKGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcikgewogICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoZXZlbnQsIGZ1bmMpOwogICAgfSBlbHNlIHsKICAgICAgdmFyIG9sZEZ1bmMgPSBlbGVtZW50WyYjeDI3O29uJiN4Mjc7ICsgZXZlbnRdOwogICAgICBlbGVtZW50WyYjeDI3O29uJiN4Mjc7ICsgZXZlbnRdID0gZnVuY3Rpb24oKSB7CiAgICAgICAgb2xkRnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogICAgICAgIGZ1bmMuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKICAgICAgfTsKICAgIH0KICB9CiAgdmFyIF9yZW1vdmVkID0gZmFsc2U7CiAgdmFyIGZvcm1fdG9fc3VibWl0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJiN4Mjc7X2Zvcm1fMTdfJiN4Mjc7KTsKICB2YXIgYWxsSW5wdXRzID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvckFsbCgmI3gyNztpbnB1dCwgc2VsZWN0LCB0ZXh0YXJlYSYjeDI3OyksIHRvb2x0aXBzID0gW10sIHN1Ym1pdHRlZCA9IGZhbHNlOwoKICB2YXIgZ2V0VXJsUGFyYW0gPSBmdW5jdGlvbihuYW1lKSB7CiAgICB2YXIgcmVnZXhTdHIgPSAmI3gyNztbXD8mYW1wO10mI3gyNzsgKyBuYW1lICsgJiN4Mjc7PShbXiZhbXA7I10qKSYjeDI3OzsKICAgIHZhciByZXN1bHRzID0gbmV3IFJlZ0V4cChyZWdleFN0ciwgJiN4Mjc7aSYjeDI3OykuZXhlYyh3aW5kb3cubG9jYXRpb24uaHJlZik7CiAgICByZXR1cm4gcmVzdWx0cyAhPSB1bmRlZmluZWQgPyBkZWNvZGVVUklDb21wb25lbnQocmVzdWx0c1sxXSkgOiBmYWxzZTsKICB9OwoKICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IGFsbElucHV0cy5sZW5ndGg7IGkrKykgewogICAgdmFyIHJlZ2V4U3RyID0gJnF1b3Q7ZmllbGRcXFsoXFxkKylcXF0mcXVvdDs7CiAgICB2YXIgcmVzdWx0cyA9IG5ldyBSZWdFeHAocmVnZXhTdHIpLmV4ZWMoYWxsSW5wdXRzW2ldLm5hbWUpOwogICAgaWYgKHJlc3VsdHMgIT0gdW5kZWZpbmVkKSB7CiAgICAgIGFsbElucHV0c1tpXS5kYXRhc2V0Lm5hbWUgPSB3aW5kb3cuY2ZpZWxkc1tyZXN1bHRzWzFdXTsKICAgIH0gZWxzZSB7CiAgICAgIGFsbElucHV0c1tpXS5kYXRhc2V0Lm5hbWUgPSBhbGxJbnB1dHNbaV0ubmFtZTsKICAgIH0KICAgIHZhciBmaWVsZFZhbCA9IGdldFVybFBhcmFtKGFsbElucHV0c1tpXS5kYXRhc2V0Lm5hbWUpOwoKICAgIGlmIChmaWVsZFZhbCkgewogICAgICBpZiAoYWxsSW5wdXRzW2ldLnR5cGUgPT0gJnF1b3Q7cmFkaW8mcXVvdDsgfHwgYWxsSW5wdXRzW2ldLnR5cGUgPT0gJnF1b3Q7Y2hlY2tib3gmcXVvdDspIHsKICAgICAgICBpZiAoYWxsSW5wdXRzW2ldLnZhbHVlID09IGZpZWxkVmFsKSB7CiAgICAgICAgICBhbGxJbnB1dHNbaV0uY2hlY2tlZCA9IHRydWU7CiAgICAgICAgfQogICAgICB9IGVsc2UgewogICAgICAgIGFsbElucHV0c1tpXS52YWx1ZSA9IGZpZWxkVmFsOwogICAgICB9CiAgICB9CiAgfQoKICB2YXIgcmVtb3ZlX3Rvb2x0aXBzID0gZnVuY3Rpb24oKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIHRvb2x0aXBzW2ldLnRpcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKHRvb2x0aXBzW2ldLnRpcCk7CiAgICB9CiAgICAgIHRvb2x0aXBzID0gW107CiAgfTsKICB2YXIgcmVtb3ZlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtKSB7CiAgICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IHRvb2x0aXBzLmxlbmd0aDsgaSsrKSB7CiAgICAgIGlmICh0b29sdGlwc1tpXS5lbGVtID09PSBlbGVtKSB7CiAgICAgICAgdG9vbHRpcHNbaV0udGlwLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQodG9vbHRpcHNbaV0udGlwKTsKICAgICAgICB0b29sdGlwcy5zcGxpY2UoaSwgMSk7CiAgICAgICAgcmV0dXJuOwogICAgICB9CiAgICB9CiAgfTsKICB2YXIgY3JlYXRlX3Rvb2x0aXAgPSBmdW5jdGlvbihlbGVtLCB0ZXh0KSB7CiAgICB2YXIgdG9vbHRpcCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJiN4Mjc7ZGl2JiN4Mjc7KSwgYXJyb3cgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCYjeDI3O2RpdiYjeDI3OyksIGlubmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgmI3gyNztkaXYmI3gyNzspLCBuZXdfdG9vbHRpcCA9IHt9OwogICAgaWYgKGVsZW0udHlwZSAhPSAmI3gyNztyYWRpbyYjeDI3OyAmYW1wOyZhbXA7IGVsZW0udHlwZSAhPSAmI3gyNztjaGVja2JveCYjeDI3OykgewogICAgICB0b29sdGlwLmNsYXNzTmFtZSA9ICYjeDI3O19lcnJvciYjeDI3OzsKICAgICAgYXJyb3cuY2xhc3NOYW1lID0gJiN4Mjc7X2Vycm9yLWFycm93JiN4Mjc7OwogICAgICBpbm5lci5jbGFzc05hbWUgPSAmI3gyNztfZXJyb3ItaW5uZXImI3gyNzs7CiAgICAgIGlubmVyLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIHRvb2x0aXAuYXBwZW5kQ2hpbGQoYXJyb3cpOwogICAgICB0b29sdGlwLmFwcGVuZENoaWxkKGlubmVyKTsKICAgICAgZWxlbS5wYXJlbnROb2RlLmFwcGVuZENoaWxkKHRvb2x0aXApOwogICAgfSBlbHNlIHsKICAgICAgdG9vbHRpcC5jbGFzc05hbWUgPSAmI3gyNztfZXJyb3ItaW5uZXIgX25vX2Fycm93JiN4Mjc7OwogICAgICB0b29sdGlwLmlubmVySFRNTCA9IHRleHQ7CiAgICAgIGVsZW0ucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUodG9vbHRpcCwgZWxlbSk7CiAgICAgIG5ld190b29sdGlwLm5vX2Fycm93ID0gdHJ1ZTsKICAgIH0KICAgIG5ld190b29sdGlwLnRpcCA9IHRvb2x0aXA7CiAgICBuZXdfdG9vbHRpcC5lbGVtID0gZWxlbTsKICAgIHRvb2x0aXBzLnB1c2gobmV3X3Rvb2x0aXApOwogICAgcmV0dXJuIG5ld190b29sdGlwOwogIH07CiAgdmFyIHJlc2l6ZV90b29sdGlwID0gZnVuY3Rpb24odG9vbHRpcCkgewogICAgdmFyIHJlY3QgPSB0b29sdGlwLmVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICB2YXIgZG9jID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBzY3JvbGxQb3NpdGlvbiA9IHJlY3QudG9wIC0gKCh3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jLnNjcm9sbFRvcCkgIC0gKGRvYy5jbGllbnRUb3AgfHwgMCkpOwogICAgaWYgKHNjcm9sbFBvc2l0aW9uICZsdDsgNDApIHsKICAgICAgdG9vbHRpcC50aXAuY2xhc3NOYW1lID0gdG9vbHRpcC50aXAuY2xhc3NOYW1lLnJlcGxhY2UoLyA/KF9hYm92ZXxfYmVsb3cpID8vZywgJiN4Mjc7JiN4Mjc7KSArICYjeDI3OyBfYmVsb3cmI3gyNzs7CiAgICB9IGVsc2UgewogICAgICB0b29sdGlwLnRpcC5jbGFzc05hbWUgPSB0b29sdGlwLnRpcC5jbGFzc05hbWUucmVwbGFjZSgvID8oX2Fib3ZlfF9iZWxvdykgPy9nLCAmI3gyNzsmI3gyNzspICsgJiN4Mjc7IF9hYm92ZSYjeDI3OzsKICAgIH0KICB9OwogIHZhciByZXNpemVfdG9vbHRpcHMgPSBmdW5jdGlvbigpIHsKICAgIGlmIChfcmVtb3ZlZCkgcmV0dXJuOwogICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyB0b29sdGlwcy5sZW5ndGg7IGkrKykgewogICAgICBpZiAoIXRvb2x0aXBzW2ldLm5vX2Fycm93KSByZXNpemVfdG9vbHRpcCh0b29sdGlwc1tpXSk7CiAgICB9CiAgfTsKICB2YXIgdmFsaWRhdGVfZmllbGQgPSBmdW5jdGlvbihlbGVtLCByZW1vdmUpIHsKICAgIHZhciB0b29sdGlwID0gbnVsbCwgdmFsdWUgPSBlbGVtLnZhbHVlLCBub19lcnJvciA9IHRydWU7CiAgICByZW1vdmUgPyByZW1vdmVfdG9vbHRpcChlbGVtKSA6IGZhbHNlOwogICAgaWYgKGVsZW0udHlwZSAhPSAmI3gyNztjaGVja2JveCYjeDI3OykgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZS5yZXBsYWNlKC8gP19oYXNfZXJyb3IgPy9nLCAmI3gyNzsmI3gyNzspOwogICAgaWYgKGVsZW0uZ2V0QXR0cmlidXRlKCYjeDI3O3JlcXVpcmVkJiN4Mjc7KSAhPT0gbnVsbCkgewogICAgICBpZiAoZWxlbS50eXBlID09ICYjeDI3O3JhZGlvJiN4Mjc7IHx8IChlbGVtLnR5cGUgPT0gJiN4Mjc7Y2hlY2tib3gmI3gyNzsgJmFtcDsmYW1wOyAvYW55Ly50ZXN0KGVsZW0uY2xhc3NOYW1lKSkpIHsKICAgICAgICB2YXIgZWxlbXMgPSBmb3JtX3RvX3N1Ym1pdC5lbGVtZW50c1tlbGVtLm5hbWVdOwogICAgICAgIGlmICghKGVsZW1zIGluc3RhbmNlb2YgTm9kZUxpc3QgfHwgZWxlbXMgaW5zdGFuY2VvZiBIVE1MQ29sbGVjdGlvbikgfHwgZWxlbXMubGVuZ3RoICZsdDs9IDEpIHsKICAgICAgICAgIG5vX2Vycm9yID0gZWxlbS5jaGVja2VkOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IGVsZW1zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtc1tpXS5jaGVja2VkKSBub19lcnJvciA9IHRydWU7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGlmICghbm9fZXJyb3IpIHsKICAgICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAmcXVvdDtTZWxlY2Npb25lIHVuYSBvcGNpw7NuLiZxdW90Oyk7CiAgICAgICAgfQogICAgICB9IGVsc2UgaWYgKGVsZW0udHlwZSA9PSYjeDI3O2NoZWNrYm94JiN4Mjc7KSB7CiAgICAgICAgdmFyIGVsZW1zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWxlbS5uYW1lXSwgZm91bmQgPSBmYWxzZSwgZXJyID0gW107CiAgICAgICAgbm9fZXJyb3IgPSB0cnVlOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgZWxlbXMubGVuZ3RoOyBpKyspIHsKICAgICAgICAgIGlmIChlbGVtc1tpXS5nZXRBdHRyaWJ1dGUoJiN4Mjc7cmVxdWlyZWQmI3gyNzspID09PSBudWxsKSBjb250aW51ZTsKICAgICAgICAgIGlmICghZm91bmQgJmFtcDsmYW1wOyBlbGVtc1tpXSAhPT0gZWxlbSkgcmV0dXJuIHRydWU7CiAgICAgICAgICBmb3VuZCA9IHRydWU7CiAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUucmVwbGFjZSgvID9faGFzX2Vycm9yID8vZywgJiN4Mjc7JiN4Mjc7KTsKICAgICAgICAgIGlmICghZWxlbXNbaV0uY2hlY2tlZCkgewogICAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgICBlbGVtc1tpXS5jbGFzc05hbWUgPSBlbGVtc1tpXS5jbGFzc05hbWUgKyAmI3gyNzsgX2hhc19lcnJvciYjeDI3OzsKICAgICAgICAgICAgZXJyLnB1c2goJnF1b3Q7RXMgbmVjZXNhcmlvIHZlcmlmaWNhciAlcyZxdW90Oy5yZXBsYWNlKCZxdW90OyVzJnF1b3Q7LCBlbGVtc1tpXS52YWx1ZSkpOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIW5vX2Vycm9yKSB7CiAgICAgICAgICB0b29sdGlwID0gY3JlYXRlX3Rvb2x0aXAoZWxlbSwgZXJyLmpvaW4oJiN4Mjc7Jmx0O2JyLyZndDsmI3gyNzspKTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAoZWxlbS50YWdOYW1lID09ICYjeDI3O1NFTEVDVCYjeDI3OykgewogICAgICAgIHZhciBzZWxlY3RlZCA9IHRydWU7CiAgICAgICAgaWYgKGVsZW0ubXVsdGlwbGUpIHsKICAgICAgICAgIHNlbGVjdGVkID0gZmFsc2U7CiAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSAmbHQ7IGVsZW0ub3B0aW9ucy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICBpZiAoZWxlbS5vcHRpb25zW2ldLnNlbGVjdGVkKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSB0cnVlOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CiAgICAgICAgICB9CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpICZsdDsgZWxlbS5vcHRpb25zLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIGlmIChlbGVtLm9wdGlvbnNbaV0uc2VsZWN0ZWQgJmFtcDsmYW1wOyAhZWxlbS5vcHRpb25zW2ldLnZhbHVlKSB7CiAgICAgICAgICAgICAgc2VsZWN0ZWQgPSBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIXNlbGVjdGVkKSB7CiAgICAgICAgICBlbGVtLmNsYXNzTmFtZSA9IGVsZW0uY2xhc3NOYW1lICsgJiN4Mjc7IF9oYXNfZXJyb3ImI3gyNzs7CiAgICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICZxdW90O1NlbGVjY2lvbmUgdW5hIG9wY2nDs24uJnF1b3Q7KTsKICAgICAgICB9CiAgICAgIH0gZWxzZSBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCB8fCB2YWx1ZSA9PT0gJiN4Mjc7JiN4Mjc7KSB7CiAgICAgICAgZWxlbS5jbGFzc05hbWUgPSBlbGVtLmNsYXNzTmFtZSArICYjeDI3OyBfaGFzX2Vycm9yJiN4Mjc7OwogICAgICAgIG5vX2Vycm9yID0gZmFsc2U7CiAgICAgICAgdG9vbHRpcCA9IGNyZWF0ZV90b29sdGlwKGVsZW0sICZxdW90O0VzdGUgY2FtcG8gZXMgb2JsaWdhdG9yaW8uJnF1b3Q7KTsKICAgICAgfQogICAgfQogICAgaWYgKG5vX2Vycm9yICZhbXA7JmFtcDsgZWxlbS5uYW1lID09ICYjeDI3O2VtYWlsJiN4Mjc7KSB7CiAgICAgIGlmICghdmFsdWUubWF0Y2goL15bXCtfYS16MC05LSYjeDI3OyZhbXA7PV0rKFwuW1wrX2EtejAtOS0mI3gyNztdKykqQFthLXowLTktXSsoXC5bYS16MC05LV0rKSooXC5bYS16XXsyLH0pJC9pKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAmI3gyNzsgX2hhc19lcnJvciYjeDI3OzsKICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAmcXVvdDtJbnRyb2R1emNhIHVuYSBkaXJlY2Npw7NuIGRlIGNvcnJlbyBlbGVjdHLDs25pY28gdsOhbGlkYS4mcXVvdDspOwogICAgICB9CiAgICB9CiAgICBpZiAobm9fZXJyb3IgJmFtcDsmYW1wOyAvZGF0ZV9maWVsZC8udGVzdChlbGVtLmNsYXNzTmFtZSkpIHsKICAgICAgaWYgKCF2YWx1ZS5tYXRjaCgvXlxkXGRcZFxkLVxkXGQtXGRcZCQvKSkgewogICAgICAgIGVsZW0uY2xhc3NOYW1lID0gZWxlbS5jbGFzc05hbWUgKyAmI3gyNzsgX2hhc19lcnJvciYjeDI3OzsKICAgICAgICBub19lcnJvciA9IGZhbHNlOwogICAgICAgIHRvb2x0aXAgPSBjcmVhdGVfdG9vbHRpcChlbGVtLCAmcXVvdDtJbnRyb2R1emNhIHVuYSBmZWNoYSB2w6FsaWRhLiZxdW90Oyk7CiAgICAgIH0KICAgIH0KICAgIHRvb2x0aXAgPyByZXNpemVfdG9vbHRpcCh0b29sdGlwKSA6IGZhbHNlOwogICAgcmV0dXJuIG5vX2Vycm9yOwogIH07CiAgdmFyIG5lZWRzX3ZhbGlkYXRlID0gZnVuY3Rpb24oZWwpIHsKICAgIHJldHVybiBlbC5uYW1lID09ICYjeDI3O2VtYWlsJiN4Mjc7IHx8IGVsLmdldEF0dHJpYnV0ZSgmI3gyNztyZXF1aXJlZCYjeDI3OykgIT09IG51bGw7CiAgfTsKICB2YXIgdmFsaWRhdGVfZm9ybSA9IGZ1bmN0aW9uKGUpIHsKICAgIHZhciBlcnIgPSBmb3JtX3RvX3N1Ym1pdC5xdWVyeVNlbGVjdG9yKCYjeDI3Oy5fZm9ybV9lcnJvciYjeDI3OyksIG5vX2Vycm9yID0gdHJ1ZTsKICAgIGlmICghc3VibWl0dGVkKSB7CiAgICAgIHN1Ym1pdHRlZCA9IHRydWU7CiAgICAgIGZvciAodmFyIGkgPSAwLCBsZW4gPSBhbGxJbnB1dHMubGVuZ3RoOyBpICZsdDsgbGVuOyBpKyspIHsKICAgICAgICB2YXIgaW5wdXQgPSBhbGxJbnB1dHNbaV07CiAgICAgICAgaWYgKG5lZWRzX3ZhbGlkYXRlKGlucHV0KSkgewogICAgICAgICAgaWYgKGlucHV0LnR5cGUgPT0gJiN4Mjc7dGV4dCYjeDI3OykgewogICAgICAgICAgICBhZGRFdmVudChpbnB1dCwgJiN4Mjc7Ymx1ciYjeDI3OywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUudHJpbSgpOwogICAgICAgICAgICAgIHZhbGlkYXRlX2ZpZWxkKHRoaXMsIHRydWUpOwogICAgICAgICAgICB9KTsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICYjeDI3O2lucHV0JiN4Mjc7LCBmdW5jdGlvbigpIHsKICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZCh0aGlzLCB0cnVlKTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9IGVsc2UgaWYgKGlucHV0LnR5cGUgPT0gJiN4Mjc7cmFkaW8mI3gyNzsgfHwgaW5wdXQudHlwZSA9PSAmI3gyNztjaGVja2JveCYjeDI3OykgewogICAgICAgICAgICAoZnVuY3Rpb24oZWwpIHsKICAgICAgICAgICAgICB2YXIgcmFkaW9zID0gZm9ybV90b19zdWJtaXQuZWxlbWVudHNbZWwubmFtZV07CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgJmx0OyByYWRpb3MubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGFkZEV2ZW50KHJhZGlvc1tpXSwgJiN4Mjc7Y2xpY2smI3gyNzssIGZ1bmN0aW9uKCkgewogICAgICAgICAgICAgICAgICB2YWxpZGF0ZV9maWVsZChlbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pKGlucHV0KTsKICAgICAgICAgIH0gZWxzZSBpZiAoaW5wdXQudGFnTmFtZSA9PSAmI3gyNztTRUxFQ1QmI3gyNzspIHsKICAgICAgICAgICAgYWRkRXZlbnQoaW5wdXQsICYjeDI3O2NoYW5nZSYjeDI3OywgZnVuY3Rpb24oKSB7CiAgICAgICAgICAgICAgdmFsaWRhdGVfZmllbGQodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgIH0pOwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgfQogICAgfQogICAgcmVtb3ZlX3Rvb2x0aXBzKCk7CiAgICBmb3IgKHZhciBpID0gMCwgbGVuID0gYWxsSW5wdXRzLmxlbmd0aDsgaSAmbHQ7IGxlbjsgaSsrKSB7CiAgICAgIHZhciBlbGVtID0gYWxsSW5wdXRzW2ldOwogICAgICBpZiAobmVlZHNfdmFsaWRhdGUoZWxlbSkpIHsKICAgICAgICBpZiAoZWxlbS50YWdOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICZxdW90O3NlbGVjdCZxdW90OykgewogICAgICAgICAgZWxlbS52YWx1ZSA9IGVsZW0udmFsdWUudHJpbSgpOwogICAgICAgIH0KICAgICAgICB2YWxpZGF0ZV9maWVsZChlbGVtKSA/IHRydWUgOiBub19lcnJvciA9IGZhbHNlOwogICAgICB9CiAgICB9CiAgICBpZiAoIW5vX2Vycm9yICZhbXA7JmFtcDsgZSkgewogICAgICBlLnByZXZlbnREZWZhdWx0KCk7CiAgICB9CiAgICByZXNpemVfdG9vbHRpcHMoKTsKICAgIHJldHVybiBub19lcnJvcjsKICB9OwogIGFkZEV2ZW50KHdpbmRvdywgJiN4Mjc7cmVzaXplJiN4Mjc7LCByZXNpemVfdG9vbHRpcHMpOwogIGFkZEV2ZW50KHdpbmRvdywgJiN4Mjc7c2Nyb2xsJiN4Mjc7LCByZXNpemVfdG9vbHRpcHMpOwogIHdpbmRvdy5fb2xkX3NlcmlhbGl6ZSA9IG51bGw7CiAgaWYgKHR5cGVvZiBzZXJpYWxpemUgIT09ICYjeDI3O3VuZGVmaW5lZCYjeDI3Oykgd2luZG93Ll9vbGRfc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICBfbG9hZF9zY3JpcHQoJnF1b3Q7Ly9kM3J4YWlqNTZ2amVnZS5jbG91ZGZyb250Lm5ldC9mb3JtLXNlcmlhbGl6ZS8wLjMvc2VyaWFsaXplLm1pbi5qcyZxdW90OywgZnVuY3Rpb24oKSB7CiAgICB3aW5kb3cuX2Zvcm1fc2VyaWFsaXplID0gd2luZG93LnNlcmlhbGl6ZTsKICAgIGlmICh3aW5kb3cuX29sZF9zZXJpYWxpemUpIHdpbmRvdy5zZXJpYWxpemUgPSB3aW5kb3cuX29sZF9zZXJpYWxpemU7CiAgfSk7CiAgdmFyIGZvcm1fc3VibWl0ID0gZnVuY3Rpb24oZSkgewogICAgZS5wcmV2ZW50RGVmYXVsdCgpOwogICAgaWYgKHZhbGlkYXRlX2Zvcm0oKSkgewogICAgICAvLyB1c2UgdGhpcyB0cmljayB0byBnZXQgdGhlIHN1Ym1pdCBidXR0b24gJmFtcDsgZGlzYWJsZSBpdCB1c2luZyBwbGFpbiBqYXZhc2NyaXB0CiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJiN4Mjc7W2lkXj0mcXVvdDtfZm9ybSZxdW90O11baWQkPSZxdW90O19zdWJtaXQmcXVvdDtdJiN4Mjc7KS5kaXNhYmxlZCA9IHRydWU7CiAgICAgICAgICAgIHZhciBzZXJpYWxpemVkID0gX2Zvcm1fc2VyaWFsaXplKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCYjeDI3O19mb3JtXzE3XyYjeDI3OykpOwogICAgICB2YXIgZXJyID0gZm9ybV90b19zdWJtaXQucXVlcnlTZWxlY3RvcigmI3gyNzsuX2Zvcm1fZXJyb3ImI3gyNzspOwogICAgICBlcnIgPyBlcnIucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlcnIpIDogZmFsc2U7CiAgICAgIF9sb2FkX3NjcmlwdCgmI3gyNztodHRwczovL21vbmljYWN1c3RvZGlvLmFjdGl2ZWhvc3RlZC5jb20vcHJvYy5waHA/JiN4Mjc7ICsgc2VyaWFsaXplZCArICYjeDI3OyZhbXA7anNvbnA9dHJ1ZSYjeDI3Oyk7CiAgICB9CiAgICByZXR1cm4gZmFsc2U7CiAgfTsKICBhZGRFdmVudChmb3JtX3RvX3N1Ym1pdCwgJiN4Mjc7c3VibWl0JiN4Mjc7LCBmb3JtX3N1Ym1pdCk7Cn0pKCk7CgombHQ7L3NjcmlwdCZndDs=[/fusion_code][fusion_separator style_type=»none» hide_on_mobile=»small-visibility,medium-visibility,large-visibility» class=»» id=»» sep_color=»» top_margin=»30px» bottom_margin=»» border_size=»» icon=»» icon_circle=»» icon_circle_color=»» width=»» alignment=»center» /][fusion_text]

El responsable de tus datos será Mónica Custodio Brentano, y serán enviados Active Campaign, quienes me aseguran cuidar tus datos personales, no cederlos a nadie, y respetar todos tus derechos, tienen sus servidores en Estados Unidos. Podrás darte de baja en cualquier momento y ejercer tus derechos de acceso, rectificación, oposición, portabilidad, olvido, cancelación o cualquier otro que poseas según se describe en la política de privacidad.

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