PCFET0NUWVBFIEhUTUw+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIGNoYXJzZXQ9SVNPLTg4NTktOSI+CjxwPlRlc3Q6CjxwcmU+Jmx0OyFET0NUWVBFIEhUTUw+CiZsdDttZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sIGNoYXJzZXQ9SVNPLTg4NTktOSI+PC9wcmU+CjxwPkV4cGVjdGVkIHJlc3VsdDogPHNwYW4gaWQ9ImV4cGVjdGVkIj5XaW5kb3dzLTEyNTQ8L3NwYW4+CjxkaXY+CiA8c3R5bGUgc2NvcGVkPgogIC5wYXNzIHsgYmFja2dyb3VuZDogZ3JlZW47IGNvbG9yOiB3aGl0ZTsgcGFkZGluZzogMC41ZW07IGZvbnQtd2VpZ2h0OiBib2xkOyB9CiAgLmZhaWwgeyBiYWNrZ3JvdW5kOiByZWQ7IGNvbG9yOiB5ZWxsb3c7IHBhZGRpbmc6IDAuNWVtOyBmb250LXdlaWdodDogYm9sZDsgfQogPC9zdHlsZT4KIDxwPkVuY29kaW5nIHVzZWQgYnkgYnJvd3NlciBpczogPHNwYW4gaWQ9ImVuY29kaW5nIj5TY3JpcHQgZGlkIG5vdCBydW4uPC9zcGFuPgogPHA+UmVzdWx0OiA8c3BhbiBpZD0icmVzdWx0Ij5TY3JpcHQgZGlkIG5vdCBydW4uPC9zcGFuPgogPHNjcmlwdD4KICAgdmFyIGVuY29kaW5nID0gJ3Vua25vd24nOwogICBpZiAoJ+AnID09ICdcdTAwRTAnKSB7IC8vIDB4RTAKICAgICBpZiAoJ5knID09ICdcdTIxMjInKSB7IC8vIDB4OTkKICAgICAgIGlmICgn/icgPT0gJ1x1MDBGRScpIC8vIDB4RkUKICAgICAgICAgZW5jb2RpbmcgPSAnV2luZG93cy0xMjUyJzsKICAgICAgIGVsc2UgaWYgKCf+JyA9PSAnXHUwMTVGJykKICAgICAgICAgZW5jb2RpbmcgPSAnV2luZG93cy0xMjU0JzsKICAgICAgIGVsc2UgaWYgKCf+JyA9PSAnXHUyMDBGJykKICAgICAgICAgZW5jb2RpbmcgPSAnV2luZG93cy0xMjU2JzsKICAgICAgIGVsc2UgaWYgKCf+JyA9PSAnXHUyMEFCJykKICAgICAgICAgZW5jb2RpbmcgPSAnV2luZG93cy0xMjU4JzsKICAgICAgIGVsc2UKICAgICAgICAgZW5jb2RpbmcgPSAndW5rbm93biB3aXRoIDB4RTAgPSBVKzAwRTAgYW5kIDB4OTkgPSBVKzIxMjInOwogICAgIH0gZWxzZSBpZiAoJ/8nID09ICdcdTAyRDknKSAvLyAweEZGCiAgICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0zJzsKICAgICBlbHNlIGlmICgn/icgPT0gJ1x1MDE3NycpIC8vIDB4RkUKICAgICAgIGVuY29kaW5nID0gJ0lTTy04ODU5LTE0JzsKICAgICBlbHNlIGlmICgn/icgPT0gJ1x1MDIxQicpCiAgICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0xNic7CiAgICAgZWxzZSBpZiAoJ/4nID09ICdcdTAxNUYnKQogICAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktOSc7CiAgICAgZWxzZSBpZiAoJ74nID09ICdcdTAwQkUnKSAvLyAweEJFCiAgICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0xJzsKICAgICBlbHNlIGlmICgnvicgPT0gJ1x1MDE3OCcpCiAgICAgICBlbmNvZGluZyA9ICdJU08tODg1OS0xNSc7CiAgICAgZWxzZQogICAgICAgZW5jb2RpbmcgPSAndW5rbm93biB3aXRoIDB4RTAgPSBVKzAwRTAnOwogICB9IGVsc2UgaWYgKCfgJyA9PSAnXHUwMTAxJykgLy8gMHhFMAogICAgIGVuY29kaW5nID0gJ0lTTy04ODU5LTEwJzsKICAgZWxzZSBpZiAoJ+AnID09ICdcdTBFNDAnKSAvLyAweEUwCiAgICAgZW5jb2RpbmcgPSAnSVNPLTg4NTktMTEnOwogICBlbHNlIGlmICgn4CcgPT0gJ1x1RkZGRCcpIHsgLy8gMHhFMAogICAgIGlmICgn4pi6JyA9PSAnXHUyNjNBJykgLy8gMHhFMiAweDk4IDB4QkEKICAgICAgIGVuY29kaW5nID0gJ1VURi04JzsKICAgICBlbHNlCiAgICAgICBlbmNvZGluZyA9ICd1bmtub3duIChidXQgQVNDSUktY29tcGF0aWJsZSknOwogICB9CiAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdlbmNvZGluZycpLmZpcnN0Q2hpbGQuZGF0YSA9IGVuY29kaW5nOwogICB2YXIgZXhwZWN0ZWQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0ZWQnKS5maXJzdENoaWxkLmRhdGE7CiAgIGlmIChleHBlY3RlZCA9PSAnKGRlbW8gLSBubyBleHBlY3RlZCByZXN1bHQpJykgewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5maXJzdENoaWxkLmRhdGEgPSAnZGVtbyc7CiAgIH0gZWxzZSBpZiAoZW5jb2RpbmcgPT0gZXhwZWN0ZWQpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5kYXRhID0gJ1BBU1MnOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5jbGFzc05hbWUgPSAncGFzcyc7CiAgIH0gZWxzZSB7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmZpcnN0Q2hpbGQuZGF0YSA9ICdGQUlMJzsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuY2xhc3NOYW1lID0gJ2ZhaWwnOwogICB9CiAgIGlmIChwYXJlbnQucmVjZWl2ZWRSZXN1bHRzKQogICAgIHBhcmVudC5yZWNlaXZlZFJlc3VsdHMoKTsKIDwvc2NyaXB0Pgo8L2Rpdj4K