PCFET0NUWVBFIEhUTUw+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sO2NoYXJzZXQ9Y2hhcnNldD1JU08tODg1OS05Ij4KPHA+VGVzdDoKPHByZT4mbHQ7IURPQ1RZUEUgSFRNTD4KJmx0O21ldGEgaHR0cC1lcXVpdj0iQ29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7Y2hhcnNldD1jaGFyc2V0PUlTTy04ODU5LTkiPjwvcHJlPgo8cD5FeHBlY3RlZCByZXN1bHQ6IDxzcGFuIGlkPSJleHBlY3RlZCI+V2luZG93cy0xMjUyPC9zcGFuPgo8ZGl2PgogPHN0eWxlIHNjb3BlZD4KICAucGFzcyB7IGJhY2tncm91bmQ6IGdyZWVuOyBjb2xvcjogd2hpdGU7IHBhZGRpbmc6IDAuNWVtOyBmb250LXdlaWdodDogYm9sZDsgfQogIC5mYWlsIHsgYmFja2dyb3VuZDogcmVkOyBjb2xvcjogeWVsbG93OyBwYWRkaW5nOiAwLjVlbTsgZm9udC13ZWlnaHQ6IGJvbGQ7IH0KIDwvc3R5bGU+CiA8cD5FbmNvZGluZyB1c2VkIGJ5IGJyb3dzZXIgaXM6IDxzcGFuIGlkPSJlbmNvZGluZyI+U2NyaXB0IGRpZCBub3QgcnVuLjwvc3Bhbj4KIDxwPlJlc3VsdDogPHNwYW4gaWQ9InJlc3VsdCI+U2NyaXB0IGRpZCBub3QgcnVuLjwvc3Bhbj4KIDxzY3JpcHQ+CiAgIHZhciBlbmNvZGluZyA9ICd1bmtub3duJzsKICAgaWYgKCfgJyA9PSAnXHUwMEUwJykgeyAvLyAweEUwCiAgICAgaWYgKCeZJyA9PSAnXHUyMTIyJykgeyAvLyAweDk5CiAgICAgICBpZiAoJ/4nID09ICdcdTAwRkUnKSAvLyAweEZFCiAgICAgICAgIGVuY29kaW5nID0gJ1dpbmRvd3MtMTI1Mic7CiAgICAgICBlbHNlIGlmICgn/icgPT0gJ1x1MDE1RicpCiAgICAgICAgIGVuY29kaW5nID0gJ1dpbmRvd3MtMTI1NCc7CiAgICAgICBlbHNlIGlmICgn/icgPT0gJ1x1MjAwRicpCiAgICAgICAgIGVuY29kaW5nID0gJ1dpbmRvd3MtMTI1Nic7CiAgICAgICBlbHNlIGlmICgn/icgPT0gJ1x1MjBBQicpCiAgICAgICAgIGVuY29kaW5nID0gJ1dpbmRvd3MtMTI1OCc7CiAgICAgICBlbHNlCiAgICAgICAgIGVuY29kaW5nID0gJ3Vua25vd24gd2l0aCAweEUwID0gVSswMEUwIGFuZCAweDk5ID0gVSsyMTIyJzsKICAgICB9IGVsc2UgaWYgKCf/JyA9PSAnXHUwMkQ5JykgLy8gMHhGRgogICAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktMyc7CiAgICAgZWxzZSBpZiAoJ/4nID09ICdcdTAxNzcnKSAvLyAweEZFCiAgICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0xNCc7CiAgICAgZWxzZSBpZiAoJ/4nID09ICdcdTAyMUInKQogICAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktMTYnOwogICAgIGVsc2UgaWYgKCf+JyA9PSAnXHUwMTVGJykKICAgICAgIGVuY29kaW5nID0gJ0lTTy04ODU5LTknOwogICAgIGVsc2UgaWYgKCe+JyA9PSAnXHUwMEJFJykgLy8gMHhCRQogICAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktMSc7CiAgICAgZWxzZSBpZiAoJ74nID09ICdcdTAxNzgnKQogICAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktMTUnOwogICAgIGVsc2UKICAgICAgIGVuY29kaW5nID0gJ3Vua25vd24gd2l0aCAweEUwID0gVSswMEUwJzsKICAgfSBlbHNlIGlmICgn4CcgPT0gJ1x1MDEwMScpIC8vIDB4RTAKICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0xMCc7CiAgIGVsc2UgaWYgKCfgJyA9PSAnXHUwRTQwJykgLy8gMHhFMAogICAgIGVuY29kaW5nID0gJ0lTTy04ODU5LTExJzsKICAgZWxzZSBpZiAoJ+AnID09ICdcdUZGRkQnKSB7IC8vIDB4RTAKICAgICBpZiAoJ+KYuicgPT0gJ1x1MjYzQScpIC8vIDB4RTIgMHg5OCAweEJBCiAgICAgICBlbmNvZGluZyA9ICdVVEYtOCc7CiAgICAgZWxzZQogICAgICAgZW5jb2RpbmcgPSAndW5rbm93biAoYnV0IEFTQ0lJLWNvbXBhdGlibGUpJzsKICAgfQogICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZW5jb2RpbmcnKS5maXJzdENoaWxkLmRhdGEgPSBlbmNvZGluZzsKICAgdmFyIGV4cGVjdGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdGVkJykuZmlyc3RDaGlsZC5kYXRhOwogICBpZiAoZXhwZWN0ZWQgPT0gJyhkZW1vIC0gbm8gZXhwZWN0ZWQgcmVzdWx0KScpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5kYXRhID0gJ2RlbW8nOwogICB9IGVsc2UgaWYgKGVuY29kaW5nID09IGV4cGVjdGVkKSB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmZpcnN0Q2hpbGQuZGF0YSA9ICdQQVNTJzsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuY2xhc3NOYW1lID0gJ3Bhc3MnOwogICB9IGVsc2UgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJzdENoaWxkLmRhdGEgPSAnRkFJTCc7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmNsYXNzTmFtZSA9ICdmYWlsJzsKICAgfQogICBpZiAocGFyZW50LnJlY2VpdmVkUmVzdWx0cykKICAgICBwYXJlbnQucmVjZWl2ZWRSZXN1bHRzKCk7CiA8L3NjcmlwdD4KPC9kaXY+Cg==