I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CnZvaWQgbWFpbigpCnsKCiAgICBwcmludGYoJnF1b3Q7XG4mcXVvdDspOwogICAgcHJpbnRmKCZxdW90OyoqKioqKioqKioqKioqKioqKioqIFdlbGNvbWUgdG8gQ09GRkVFIFBSSU5DRSAqKioqKioqKioqKioqKioqKioqKiZxdW90Oyk7CiAgICBwcmludGYoJnF1b3Q7XG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDsgX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX1xuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7fF9fX19fX19fX19fTUVOVSBDT0ZGRUUgUFJJTkNFX19fX19fX19fX198XG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDt8ICAgICAgTWVudSAgICAgIEhvdCgxKSBJY2VkKDIpIEZyYXBwZSgzKXxcblxuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7fCAxLk1vY2NhICAgICAgICAgIDQ1ICAgICA1MCAgICAgIDYwICAgICB8XG5cbiZxdW90Oyk7CiAgICAgcHJpbnRmKCZxdW90O3wgMi5MYXR0ZSAgICAgICAgICA0NSAgICAgNTAgICAgICA2MCAgICAgfFxuXG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDt8IDMuQ2FwcHVjY2lubyAgICAgNTUgICAgIDYwICAgICAgNzAgICAgIHxcblxuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7fCA0LkFtZXJpY2FubyAgICAgIDM1ICAgICA1NSAgICAgIC0tICAgICB8XG5cbiZxdW90Oyk7CiAgICAgcHJpbnRmKCZxdW90O3wgNS5Fc3ByZXNzbyAgICAgICAzNSAgICAgNTAgICAgICA2MCAgICAgfFxuXG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDt8IDYuTWFjY2hpYXRvICAgICAgNTAgICAgIDYwICAgICAgNzAgICAgIHxcblxuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7fCA3LkNob2NvbGF0ZSAgICAgIDQwICAgICA1MCAgICAgIDYwICAgICB8XG5cbiZxdW90Oyk7CiAgICAgcHJpbnRmKCZxdW90O3wgOC5GcmVzaCBNaWxrICAgICAzNSAgICAgNDAgICAgICA1MCAgICAgfFxuXG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDt8IDkuVGVhIHdpdGggbWlsayAgMzUgICAgIDQwICAgICAgNTAgICAgIHxcblxuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7fCAxMC5HcmVlbiBUZWEgICAgIDM1ICAgICA0MCAgICAgIDUwICAgICB8XG4mcXVvdDspOwogICAgIHByaW50ZigmcXVvdDt8X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX3xcbiZxdW90Oyk7CgogICAgIGludCBtZW51PTAsdHlwZT0wLGxldmVsPTAsbnVtPTAsc3VtPTAscHJpY2U9MDsKCiAgICAgcHJpbnRmKCZxdW90O1xuJnF1b3Q7KTsKICAgICBwcmludGYoJnF1b3Q7KioqKiogUGxlYXNlIGlucHV0IG51bWJlciBvbmx5ICoqKioqXG4mcXVvdDspOwogICAgIGRvCiAgICAgewogICAgIHByaW50ZigmcXVvdDtJbnB1dCB5b3VyIG9yZGVyIDogJnF1b3Q7KTsKICAgICBzY2FuZigmcXVvdDslZCZxdW90OywmYW1wO21lbnUpOwogICAgIGlmKG1lbnUmbHQ7MXx8bWVudSZndDsxMCl7CiAgICAgICAgcHJpbnRmKCZxdW90O1BsZWFzZSBjaG9vc2UuLi5NZW51Li4uIDEgMiAzIDQgNSA2IDcgOCA5IDEwIG9ubHlcbiZxdW90Oyk7CiAgICAgfWVsc2UgaWYobWVudT09MSl7CiAgICAgICAgcHJpbnRmKCZxdW90O01vY2NhLi5cbiZxdW90Oyk7CgogICAgIH1lbHNlIGlmKG1lbnU9PTIpewogICAgICAgIHByaW50ZigmcXVvdDtMYXR0ZS4uXG4mcXVvdDspOwoKICAgICB9ZWxzZSBpZihtZW51PT0zKXsKICAgICAgICBwcmludGYoJnF1b3Q7Q2FwcHVjY2luby4uXG4mcXVvdDspOwoKICAgICB9ZWxzZSBpZihtZW51PT00KXsKICAgICAgICBwcmludGYoJnF1b3Q7QW1lcmljYW5vLi5cbiZxdW90Oyk7CgogICAgIH1lbHNlIGlmKG1lbnU9PTUpewogICAgICAgIHByaW50ZigmcXVvdDtFc3ByZXNzby4uXG4mcXVvdDspOwoKICAgICB9ZWxzZSBpZihtZW51PT02KXsKICAgICAgICBwcmludGYoJnF1b3Q7TWFjY2hpYXRvLi5cbiZxdW90Oyk7CgogICAgIH1lbHNlIGlmKG1lbnU9PTcpewogICAgICAgIHByaW50ZigmcXVvdDtDaG9jb2xhdGUuLlxuJnF1b3Q7KTsKCiAgICAgfWVsc2UgaWYobWVudT09OCl7CiAgICAgICAgcHJpbnRmKCZxdW90O0ZyZXNoIE1pbGsuLlxuJnF1b3Q7KTsKCiAgICAgfWVsc2UgaWYobWVudT09OSl7CiAgICAgICAgcHJpbnRmKCZxdW90O1RlYSB3aXRoIG1pbGsuLlxuJnF1b3Q7KTsKCiAgICAgfWVsc2UgaWYobWVudT09MTApewogICAgICAgIHByaW50ZigmcXVvdDtHcmVlbiBUZWEuLlxuJnF1b3Q7KTsKICAgICB9Cn0gICAgd2hpbGUobWVudSZsdDsxfHxtZW51Jmd0OzEwKTsKICAgICBkbwogICAgIHsKICAgICAgICBwcmludGYoJnF1b3Q7SW5wdXQgeW91ciB0eXBlIDogJnF1b3Q7KTsKICAgICAgICBzY2FuZigmcXVvdDslZCZxdW90OywmYW1wO3R5cGUpOwogICAgICAgIGlmKHR5cGUmbHQ7MXx8dHlwZSZndDszKXsKICAgICAgICBwcmludGYoJnF1b3Q7UGxlYXNlIGNob29zZS4udHlwZS4uMSBvciAyIG9yIDMgb25seVxuJnF1b3Q7KTsKICAgICAgICB9ZWxzZSBpZih0eXBlPT0xKXsKICAgICAgICAgICBwcmludGYoJnF1b3Q7SG90Li5cbiZxdW90Oyk7CiAgICAgICAgfWVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgcHJpbnRmKCZxdW90O0ljZWQuLlxuJnF1b3Q7KTsKICAgICAgICB9ZWxzZSBpZih0eXBlPT0zKXsKICAgICAgICAgICBpZihtZW51PT00KXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O1NvcnJ5ISBUaGlzIG1lbnUgZG9uJ3QgaGF2ZSBGcmFwcGVcbiZxdW90Oyk7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtQbGVhc2UgY2hvb3NlLi50eXBlLi4xIG9yIDIgb25seVxuJnF1b3Q7KTsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0lucHV0IHlvdXIgdHlwZSA6ICZxdW90Oyk7CiAgICAgICAgICAgIHNjYW5mKCZxdW90OyVkJnF1b3Q7LCZhbXA7dHlwZSk7CiAgICAgICAgfWlmKHR5cGU9PTEpewogICAgICAgICAgIHByaW50ZigmcXVvdDtIb3QuLlxuJnF1b3Q7KTsKICAgICAgICB9ZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICBwcmludGYoJnF1b3Q7SWNlZC4uXG4mcXVvdDspOwogICAgICAgIH1lbHNlCiAgICAgICAgICAgIHByaW50ZigmcXVvdDtGcmFwcGUuLlxuJnF1b3Q7KTsKICAgICAgICB9Cgp9ICAgIHdoaWxlKHR5cGUmbHQ7MXx8dHlwZSZndDszKTsKICAgICBkbwogICAgIHsKICAgICAgICBwcmludGYoJnF1b3Q7SW5wdXQgeW91ciBzd2VldG5lc3MgbGV2ZWwgOiAmcXVvdDspOwogICAgICAgIHNjYW5mKCZxdW90OyVkJnF1b3Q7LCZhbXA7bGV2ZWwpOwogICAgICAgIGlmKGxldmVsIT0wJmFtcDsmYW1wO2xldmVsIT0yNSZhbXA7JmFtcDtsZXZlbCE9NTAmYW1wOyZhbXA7bGV2ZWwhPTEwMCl7CiAgICAgICAgICAgcHJpbnRmKCZxdW90O1BsZWFzZSBjaG9vc2UuLnN3ZWV0bmVzcyBsZXZlbCA9IDAgb3IgMjUgb3IgNTAgb3IgMTAwIG9ubHlcbiZxdW90Oyk7CiAgICAgICAgfWVsc2UgaWYobGV2ZWw9PTApewogICAgICAgICAgIHByaW50ZigmcXVvdDswIFBlcmNlbnQuLk5vdCBTd2VldFxuJnF1b3Q7KTsKICAgICAgICB9ZWxzZSBpZihsZXZlbD09MjUpewogICAgICAgICAgIHByaW50ZigmcXVvdDsyNSBQZXJjZW50Li5MZXNzIExlc3MgU3dlZXRcbiZxdW90Oyk7CiAgICAgICAgfWVsc2UgaWYobGV2ZWw9PTI1KXsKICAgICAgICAgICBwcmludGYoJnF1b3Q7MjUgUGVyY2VudC4uTGVzcyBMZXNzIFN3ZWV0XG4mcXVvdDspOwogICAgICAgIH1lbHNlIGlmKGxldmVsPT01MCl7CiAgICAgICAgICAgcHJpbnRmKCZxdW90OzUwIFBlcmNlbnQuLkxlc3MgU3dlZXRcbiZxdW90Oyk7CiAgICAgICAgfWVsc2UgaWYobGV2ZWw9PTEwMCl7CiAgICAgICAgICAgcHJpbnRmKCZxdW90OzEwMCBQZXJjZW50Li5Ob3JtYWwgU3dlZXRcbiZxdW90Oyk7CiAgICAgICAgfQp9ICAgIHdoaWxlKGxldmVsIT0wJmFtcDsmYW1wO2xldmVsIT0yNSZhbXA7JmFtcDtsZXZlbCE9NTAmYW1wOyZhbXA7bGV2ZWwhPTEwMCk7CiAgICAgZG8KICAgICB7CiAgICAgICAgcHJpbnRmKCZxdW90O051bWJlciB5b3Ugd2FudCA6ICZxdW90Oyk7CiAgICAgICAgc2NhbmYoJnF1b3Q7JWQmcXVvdDssJmFtcDtudW0pOwogICAgICAgIGlmKG51bSZsdDs9MCl7CiAgICAgICAgICAgcHJpbnRmKCZxdW90O1BsZWFzZSBjaG9vc2UgYWdhaW5cbiZxdW90Oyk7CiAgICAgICAgfQp9ICAgd2hpbGUgKG51bSZsdDs9MCk7CiAgICBwcmludGYoJnF1b3Q7XG4mcXVvdDspOwogICAgcHJpbnRmKCZxdW90O19fX19fX19fX19ZT1VSIE9SREVSX19fX19fX19fX1xuJnF1b3Q7KTsKICAgIHByaW50ZigmcXVvdDtcbiZxdW90Oyk7CiAgICBzd2l0Y2gobWVudSkKICAgIHsKICAgIGNhc2UgMToKICAgICAgICAgeyAgaWYodHlwZT09MSl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtIb3QgTW9jY2EuLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz00NTsKICAgICAgfWVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtJY2VkIE1vY2NhLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NTA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTMpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7RnJhcHBlIE1vY2NhLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NjA7CiAgICAgIH0gICAgIHByaWNlPW51bSpzdW07CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtUb3RhbCBwcmljZXMgICAgOiAlZCBCYWh0LlxuJnF1b3Q7LHByaWNlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgIGNhc2UgMjoKICAgICAgICAgeyAgaWYodHlwZT09MSl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtIb3QgTGF0dGUuLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz00NTsKICAgICAgfWVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtJY2VkIExhdHRlLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NTA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTMpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7RnJhcHBlIExhdHRlLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NjA7CiAgICAgIH0gICAgIHByaWNlPW51bSpzdW07CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtUb3RhbCBwcmljZXMgICAgOiAlZCBCYWh0LlxuJnF1b3Q7LHByaWNlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICBjYXNlIDM6CiAgICAgICAgIHsgIGlmKHR5cGU9PTEpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7SG90IENhcHB1Y2Npbm8uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz01NTsKICAgICAgfWVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtJY2VkIENhcHB1Y2Npbm8uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz02MDsKICAgICAgfWVsc2UgaWYodHlwZT09Myl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtGcmFwcGUgQ2FwcHVjY2luby4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTcwOwogICAgICB9ICAgICBwcmljZT1udW0qc3VtOwogICAgICAgICAgICBwcmludGYoJnF1b3Q7VG90YWwgcHJpY2VzICAgIDogJWQgQmFodC5cbiZxdW90OyxwcmljZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgY2FzZSA0OgogICAgICAgICB7ICBpZih0eXBlPT0xKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0hvdCBBbWVyaWNhbm8uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz0zNTsKICAgICAgfWVsc2UgaWYodHlwZT09Mil7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtJY2VkIEFtZXJpY2Fuby4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTU1OwogICAgICB9ICAgICBwcmljZT1udW0qc3VtOwogICAgICAgICAgICBwcmludGYoJnF1b3Q7VG90YWwgcHJpY2VzICAgIDogJWQgQmFodC5cbiZxdW90OyxwcmljZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgY2FzZSA1OgogICAgICAgICB7ICBpZih0eXBlPT0xKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0hvdCBFc3ByZXNzby4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTM1OwogICAgICB9ZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0ljZWQgRXNwcmVzc28uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz01MDsKICAgICAgfWVsc2UgaWYodHlwZT09Myl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtGcmFwcGUgRXNwcmVzc28uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz02MDsKICAgICAgfSAgICAgcHJpY2U9bnVtKnN1bTsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O1RvdGFsIHByaWNlcyAgICA6ICVkIEJhaHQuXG4mcXVvdDsscHJpY2UpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIGNhc2UgNjoKICAgICAgICAgeyAgaWYodHlwZT09MSl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtIb3QgTWFjY2hpYXRvLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NTA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTIpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7SWNlZCBNYWNjaGlhdG8uLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz02MDsKICAgICAgfWVsc2UgaWYodHlwZT09Myl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtGcmFwcGUgTWFjY2hpYXRvLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NzA7CiAgICAgIH0gICAgIHByaWNlPW51bSpzdW07CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtUb3RhbCBwcmljZXMgICAgOiAlZCBCYWh0LlxuJnF1b3Q7LHByaWNlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICBjYXNlIDc6CiAgICAgICAgIHsgIGlmKHR5cGU9PTEpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7SG90IENob2NvbGF0ZS4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTQwOwogICAgICB9ZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0ljZWQgQ2hvY29sYXRlLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NTA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTMpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7RnJhcHBlIENob2NvbGF0ZS4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTYwOwogICAgICB9ICAgICBwcmljZT1udW0qc3VtOwogICAgICAgICAgICBwcmludGYoJnF1b3Q7VG90YWwgcHJpY2VzICAgIDogJWQgQmFodC5cbiZxdW90OyxwcmljZSk7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgY2FzZSA4OgogICAgICAgICB7ICBpZih0eXBlPT0xKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0hvdCBGcmVzaCBNaWxrLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9MzU7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTIpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7SWNlZCBGcmVzaCBNaWxrLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NDA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTMpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7RnJhcHBlIEZyZXNoIE1pbGsuLlxuJnF1b3Q7KTsKICAgICAgICAgICAgc3VtKz01MDsKICAgICAgfSAgICAgcHJpY2U9bnVtKnN1bTsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O1RvdGFsIHByaWNlcyAgICA6ICVkIEJhaHQuXG4mcXVvdDsscHJpY2UpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIGNhc2UgOToKICAgICAgICAgeyAgaWYodHlwZT09MSl7CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtIb3QgVGVhIHdpdGggbWlsay4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTM1OwogICAgICB9ZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0ljZWQgVGVhIHdpdGggbWlsay4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTQwOwogICAgICB9ZWxzZSBpZih0eXBlPT0zKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0ZyYXBwZSBUZWEgd2l0aCBtaWxrLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NTA7CiAgICAgIH0gICAgIHByaWNlPW51bSpzdW07CiAgICAgICAgICAgIHByaW50ZigmcXVvdDtUb3RhbCBwcmljZXMgICA6ICVkIEJhaHQuXG4mcXVvdDsscHJpY2UpOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIGNhc2UgMTA6CiAgICAgICAgIHsgIGlmKHR5cGU9PTEpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7SG90IEdyZWVuIFRlYS4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTM1OwogICAgICB9ZWxzZSBpZih0eXBlPT0yKXsKICAgICAgICAgICAgcHJpbnRmKCZxdW90O0ljZWQgR3JlZW4gVGVhLi5cbiZxdW90Oyk7CiAgICAgICAgICAgIHN1bSs9NDA7CiAgICAgIH1lbHNlIGlmKHR5cGU9PTMpewogICAgICAgICAgICBwcmludGYoJnF1b3Q7RnJhcHBlIEdyZWVuIFRlYS4uXG4mcXVvdDspOwogICAgICAgICAgICBzdW0rPTUwOwogICAgICB9ICAgICBwcmljZT1udW0qc3VtOwogICAgICAgICAgICBwcmludGYoJnF1b3Q7VG90YWwgcHJpY2VzICAgOiAlZCBCYWh0LlxuJnF1b3Q7LHByaWNlKTsKICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgIH0KICAgIHByaW50ZigmcXVvdDtNZW51IE51bWJlciAgICAgOiAlNGQuXG4mcXVvdDssbWVudSk7CiAgICBwcmludGYoJnF1b3Q7VHlwZSBOdW1iZXIgICAgIDogJTRkLlxuJnF1b3Q7LHR5cGUpOwogICAgcHJpbnRmKCZxdW90O1N3ZWV0bmVzcyBsZXZlbCA6ICU0ZC5cbiZxdW90OyxsZXZlbCk7CiAgICBwcmludGYoJnF1b3Q7TnVtYmVyIG9mIGN1cCAgIDogJTRkLlxuJnF1b3Q7LG51bSk7CiAgICBwcmludGYoJnF1b3Q7XG4mcXVvdDspOwogICAgcHJpbnRmKCZxdW90O1RoYW5rIHlvdS4uLkhhdmUgYSBuaWNlIGRheSFcbiZxdW90Oyk7CiAgICBwcmludGYoJnF1b3Q7X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyZxdW90Oyk7CiAgICByZXR1cm4gMDsKfQo=
#include <stdio.h>
void main()
{
printf("\n");
printf("******************** Welcome to COFFEE PRINCE ********************");
printf("\n");
printf(" ________________________________________\n");
printf("|___________MENU COFFEE PRINCE___________|\n");
printf("| Menu Hot(1) Iced(2) Frappe(3)|\n\n");
printf("| 1.Mocca 45 50 60 |\n\n");
printf("| 2.Latte 45 50 60 |\n\n");
printf("| 3.Cappuccino 55 60 70 |\n\n");
printf("| 4.Americano 35 55 -- |\n\n");
printf("| 5.Espresso 35 50 60 |\n\n");
printf("| 6.Macchiato 50 60 70 |\n\n");
printf("| 7.Chocolate 40 50 60 |\n\n");
printf("| 8.Fresh Milk 35 40 50 |\n\n");
printf("| 9.Tea with milk 35 40 50 |\n\n");
printf("| 10.Green Tea 35 40 50 |\n");
printf("|________________________________________|\n");
int menu=0,type=0,level=0,num=0,sum=0,price=0;
printf("\n");
printf("***** Please input number only *****\n");
do
{
printf("Input your order : ");
scanf("%d",&menu);
if(menu<1||menu>10){
printf("Please choose...Menu... 1 2 3 4 5 6 7 8 9 10 only\n");
}else if(menu==1){
printf("Mocca..\n");
}else if(menu==2){
printf("Latte..\n");
}else if(menu==3){
printf("Cappuccino..\n");
}else if(menu==4){
printf("Americano..\n");
}else if(menu==5){
printf("Espresso..\n");
}else if(menu==6){
printf("Macchiato..\n");
}else if(menu==7){
printf("Chocolate..\n");
}else if(menu==8){
printf("Fresh Milk..\n");
}else if(menu==9){
printf("Tea with milk..\n");
}else if(menu==10){
printf("Green Tea..\n");
}
} while(menu<1||menu>10);
do
{
printf("Input your type : ");
scanf("%d",&type);
if(type<1||type>3){
printf("Please choose..type..1 or 2 or 3 only\n");
}else if(type==1){
printf("Hot..\n");
}else if(type==2){
printf("Iced..\n");
}else if(type==3){
if(menu==4){
printf("Sorry! This menu don't have Frappe\n");
printf("Please choose..type..1 or 2 only\n");
printf("Input your type : ");
scanf("%d",&type);
}if(type==1){
printf("Hot..\n");
}else if(type==2){
printf("Iced..\n");
}else
printf("Frappe..\n");
}
} while(type<1||type>3);
do
{
printf("Input your sweetness level : ");
scanf("%d",&level);
if(level!=0&&level!=25&&level!=50&&level!=100){
printf("Please choose..sweetness level = 0 or 25 or 50 or 100 only\n");
}else if(level==0){
printf("0 Percent..Not Sweet\n");
}else if(level==25){
printf("25 Percent..Less Less Sweet\n");
}else if(level==25){
printf("25 Percent..Less Less Sweet\n");
}else if(level==50){
printf("50 Percent..Less Sweet\n");
}else if(level==100){
printf("100 Percent..Normal Sweet\n");
}
} while(level!=0&&level!=25&&level!=50&&level!=100);
do
{
printf("Number you want : ");
scanf("%d",&num);
if(num<=0){
printf("Please choose again\n");
}
} while (num<=0);
printf("\n");
printf("__________YOUR ORDER__________\n");
printf("\n");
switch(menu)
{
case 1:
{ if(type==1){
printf("Hot Mocca..\n");
sum+=45;
}else if(type==2){
printf("Iced Mocca..\n");
sum+=50;
}else if(type==3){
printf("Frappe Mocca..\n");
sum+=60;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 2:
{ if(type==1){
printf("Hot Latte..\n");
sum+=45;
}else if(type==2){
printf("Iced Latte..\n");
sum+=50;
}else if(type==3){
printf("Frappe Latte..\n");
sum+=60;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 3:
{ if(type==1){
printf("Hot Cappuccino..\n");
sum+=55;
}else if(type==2){
printf("Iced Cappuccino..\n");
sum+=60;
}else if(type==3){
printf("Frappe Cappuccino..\n");
sum+=70;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 4:
{ if(type==1){
printf("Hot Americano..\n");
sum+=35;
}else if(type==2){
printf("Iced Americano..\n");
sum+=55;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 5:
{ if(type==1){
printf("Hot Espresso..\n");
sum+=35;
}else if(type==2){
printf("Iced Espresso..\n");
sum+=50;
}else if(type==3){
printf("Frappe Espresso..\n");
sum+=60;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 6:
{ if(type==1){
printf("Hot Macchiato..\n");
sum+=50;
}else if(type==2){
printf("Iced Macchiato..\n");
sum+=60;
}else if(type==3){
printf("Frappe Macchiato..\n");
sum+=70;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 7:
{ if(type==1){
printf("Hot Chocolate..\n");
sum+=40;
}else if(type==2){
printf("Iced Chocolate..\n");
sum+=50;
}else if(type==3){
printf("Frappe Chocolate..\n");
sum+=60;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 8:
{ if(type==1){
printf("Hot Fresh Milk..\n");
sum+=35;
}else if(type==2){
printf("Iced Fresh Milk..\n");
sum+=40;
}else if(type==3){
printf("Frappe Fresh Milk..\n");
sum+=50;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 9:
{ if(type==1){
printf("Hot Tea with milk..\n");
sum+=35;
}else if(type==2){
printf("Iced Tea with milk..\n");
sum+=40;
}else if(type==3){
printf("Frappe Tea with milk..\n");
sum+=50;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
case 10:
{ if(type==1){
printf("Hot Green Tea..\n");
sum+=35;
}else if(type==2){
printf("Iced Green Tea..\n");
sum+=40;
}else if(type==3){
printf("Frappe Green Tea..\n");
sum+=50;
} price=num*sum;
printf("Total prices : %d Baht.\n",price);
break;
}
}
printf("Menu Number : %4d.\n",menu);
printf("Type Number : %4d.\n",type);
printf("Sweetness level : %4d.\n",level);
printf("Number of cup : %4d.\n",num);
printf("\n");
printf("Thank you...Have a nice day!\n");
printf("_______________________________");
return 0;
}