/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
import java.util.Scanner;
import java.util.Timer;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
{
Scanner abc
= new Scanner
(System.
in); System.
out.
println(" Quiz Part 1 "); System.
out.
println("1. Type in the correct answer for each question."); System.
out.
println("2. If anything else is inputed, it is wrong."); System.
out.
println("Type ok if you want to begin"); int total = 0;
if (a.equalsIgnoreCase("ok")) {
System.
out.
println("Lets Start"); } else {
System.
out.
println("Thats not right,but lets start!");
}
int c = 0;
Scanner scan
= new Scanner
(System.
in); System.
out.
println("1. What's 2 + 2 "); in = scan.nextLine();
if (in.equals("4")) {
System.
out.
println("Correct\n"); c++;
} else {
System.
out.
println("Wrong\n"); }
System.
out.
println("2. What Language Is This Coded IN\n");
in = scan.nextLine();
if (in.equalsIgnoreCase("Java")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("3. What, is the correct symbol for a remark?\n"); in = scan.nextLine();
if (in.equalsIgnoreCase("")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("4. If you want to store a sentence in a variable, what type do you use?\n");
in = scan.nextLine();
if (in.equalsIgnoreCase("String")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("5. Which one is illegal?\n"); System.
out.
println(" String s=”I am”"); System.
out.
println("Double a=45"); System.
out.
println("Double d= 45.5"); System.
out.
println(" Int=56.5");
in = scan.nextLine();
if (in.equalsIgnoreCase(" Int=56.5")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("6. Which of the following can’t be assigned to Character data type?\n"); System.
out.
println(" Letter"); System.
out.
println("Special Character"); in = scan.nextLine();
if (in.equalsIgnoreCase("String")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("7. What identifier sets a variable as true or false?\n"); System.
out.
println("boolean"); in = scan.nextLine();
if (in.equalsIgnoreCase("boolean")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("8. Which of the following is smallest integer data type?\n"); in = scan.nextLine();
if (in.equalsIgnoreCase(" byte")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("9. How would you correctly display, “Hello, how are you?”?\n"); System.
out.
println("System.out.println(Hello, how are you?);"); System.
out.
println("out.print(Hello, how are you?);"); System.
out.
println("System.out.println(\"Hello, how are you?\")"); System.
out.
println(".print(Hello, how are you?);"); in = scan.nextLine();
if (in.equalsIgnoreCase("System.out.println(\"Hello, how are you?\")")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("10. What class expose methods such as power to, Pi, square root, and cube root?\n"); in = scan.nextLine();
if (in.equalsIgnoreCase("Math")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("11. Which package needs to be imported so that you can accept user input?\n"); System.
out.
println("java.awt.event"); System.
out.
println("java.io"); System.
out.
println("java.util"); System.
out.
println("java.awt"); in = scan.nextLine();
if (in.equalsIgnoreCase("java.io")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("12. Which keyword would you use to break out of a loop?\n"); System.
out.
println("continue"); in = scan.nextLine();
if (in.equalsIgnoreCase("break")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("13. What is the name of the process by which two or more strings are joined together?\n"); System.
out.
println(" Method"); System.
out.
println("Concatenation"); System.
out.
println("Association"); in = scan.nextLine();
if (in.equalsIgnoreCase("Concatenation")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("14.Which of the following GUI components can be included in a Java frame?\n"); System.
out.
println("textbox, label, button, images"); in = scan.nextLine();
if (in.equalsIgnoreCase("textbox, label, button, images")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("15. Which loop type would you use to repeat a task a set number of times?\n"); System.
out.
println("do-while"); System.
out.
println(" switch"); in = scan.nextLine();
if (in.equalsIgnoreCase("for")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("16. break statment is usedd to....\n"); System.
out.
println("get out of method "); System.
out.
println("end a program"); System.
out.
println("get out of a loop"); System.
out.
println("get out of the system");
in = scan.nextLine();
if (in.equalsIgnoreCase("get out of a loop")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println("17. Which of the following is a legal name"); System.
out.
println("goldNugget"); System.
out.
println("slow.sally");
in = scan.nextLine();
if (in.equalsIgnoreCase("goldNugget")) {
System.
out.
println("Correct"); c++;
} else {
}
System.
out.
println(c
+ " Correct out of 17"); System.
out.
println(100 * c
/ 17 + "%");
Scanner kbReader
= new Scanner
(System.
in); System.
out.
println(" Quiz Part 2 "); System.
out.
println("1. Write either true and false for each question."); System.
out.
println("2. If anything else is inputed, it is a zero."); System.
out.
println("Type ok if you want to begin"); String b
= kbReader.
nextLine();
if (b.equalsIgnoreCase("ok")) {
System.
out.
println("Lets Start Quiz part 1 "); } else {
System.
out.
println("Thats not right,but lets start!"); System.
out.
println("First Question!");
System.
out.
println("The name abc is a legal name for a variable.");
String i
= kbReader.
nextLine();
if (i.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (i.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Second Question!"); System.
out.
println("The variable int is used for any type of numbers."); String l
= kbReader.
nextLine(); if (l.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (l.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Third Question!"); System.
out.
println("5 = p; is a legal way to assign a value to a variable."); String m
= kbReader.
nextLine(); if (m.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (m.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Fourth Question!"); System.
out.
println("char is a indentifyer that sets a variable as true or false"); String n
= kbReader.
nextLine(); if (n.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (n.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Fifth Question!"); System.
out.
println("x--; means the same as x = x -1;"); String o
= kbReader.
nextLine(); if (o.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (o.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Sixth Question!"); System.
out.
println("Is the output true or false? System.out.println( (jj = = 40) && !false)"); String p
= kbReader.
nextLine(); if (p.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (p.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Seventh Question!"); System.
out.
println("The data type 'double' uses only single quotes. Ex. char ch = 'h';"); String q
= kbReader.
nextLine(); if (q.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (q.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Eighth Question!"); System.
out.
println("Is the output true or false? System.out.println(true && false);"); String r
= kbReader.
nextLine(); if (r.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (r.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Ninth Question!"); System.
out.
println("J = 69 is an example of an initializing expression"); String t
= kbReader.
nextLine(); if (t.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (t.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Tenth Question!"); System.
out.
println("There are only 10 digits in the decimal system.(0,1,2,3,4,5,6,7,8,9)"); String u
= kbReader.
nextLine(); if (u.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println("Eleventh Question!"); System.
out.
println("The Scanner class allows the user to input data from his or her keyboard?"); String j
= kbReader.
nextLine(); if (j.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println(" Twelth Question!"); System.
out.
println("There are 5 variables in java"); String g1
= kbReader.
nextLine(); if (g1.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println(" Thirteeth Question!"); System.
out.
println("The int identifier defines a 32-bit number without a decimal place?"); String g2
= kbReader.
nextLine(); if (g2.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println(" Fourteeth Question!"); System.
out.
println(".Comments should be included to explain the purpose of the program and explain processing steps"); String g3
= kbReader.
nextLine(); if (g3.equalsIgnoreCase("true")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("false")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println(" Fifteenth Question!"); System.
out.
println("GUI stands for gimme Ur Internet"); String g4
= kbReader.
nextLine(); if (g4.equalsIgnoreCase("false")) {
System.
out.
println("Correct!"); total++;
} else if (u.equalsIgnoreCase("true")) {
} else {
System.
out.
println("Zero!(Read the Rules)"); }
System.
out.
println(total
+ " out of 15"); System.
out.
println(total
* 100 / 15 + ("%")); System.
out.
println("Total score"); System.
out.
println(total
+ c
+ "out of 32"); System.
err.
println(total
+ c
* 100/ 30 + ("%")); System.
out.
println("Thank you for doing the quiz and hope you tried your best because your grade depends on it "); }
}
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CmltcG9ydCBqYXZhLnV0aWwuU2Nhbm5lcjsKaW1wb3J0IGphdmEudXRpbC5UaW1lcjsKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewoJcHVibGljIHN0YXRpYyB2b2lkIG1haW4gKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBqYXZhLmxhbmcuRXhjZXB0aW9uCgl7CgkgU2Nhbm5lciBhYmMgPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIFF1aXogUGFydCAxICIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiUnVsZXM6Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIxLiBUeXBlIGluIHRoZSBjb3JyZWN0IGFuc3dlciBmb3IgZWFjaCBxdWVzdGlvbi4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjIuIElmIGFueXRoaW5nIGVsc2UgaXMgaW5wdXRlZCwgaXQgaXMgd3JvbmcuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUeXBlIG9rIGlmIHlvdSB3YW50IHRvIGJlZ2luIik7CiAgICAgICAgU3RyaW5nIGEgPSBhYmMubmV4dExpbmUoKTsKICAgICAgICBpbnQgdG90YWwgPSAwOwoKICAgICAgICBpZiAoYS5lcXVhbHNJZ25vcmVDYXNlKCJvayIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTGV0cyBTdGFydCIpOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhhdHMgbm90IHJpZ2h0LGJ1dCBsZXRzIHN0YXJ0ISIpOwoKICAgICAgICB9CgogICAgICAgIGludCBjID0gMDsKICAgICAgICBTY2FubmVyIHNjYW4gPSBuZXcgU2Nhbm5lcihTeXN0ZW0uaW4pOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMS4gV2hhdCdzIDIgKyAyICIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiNCIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiM1xuIik7CiAgICAgICAgU3RyaW5nIGluOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwoKICAgICAgICBpZiAoaW4uZXF1YWxzKCI0IikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0XG4iKTsKICAgICAgICAgICAgYysrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmdcbiIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjIuIFdoYXQgTGFuZ3VhZ2UgSXMgVGhpcyBDb2RlZCBJTlxuIik7CgogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQyIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQysrIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJKYXZhIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJQQyIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJKYXZhIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMy4gV2hhdCwgaXMgdGhlIGNvcnJlY3Qgc3ltYm9sIGZvciBhIHJlbWFyaz9cbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiLy8iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIl5eIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIhISIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiKioiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCIiKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QiKTsKICAgICAgICAgICAgYysrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmciKTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCI0LiBJZiB5b3Ugd2FudCB0byBzdG9yZSBhIHNlbnRlbmNlIGluIGEgdmFyaWFibGUsIHdoYXQgdHlwZSBkbyB5b3UgdXNlP1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJJbnQiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvdWJsZSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHJpcGxlIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzdHJpbmciKTsKCiAgICAgICAgaW4gPSBzY2FuLm5leHRMaW5lKCk7CiAgICAgICAgaWYgKGluLmVxdWFsc0lnbm9yZUNhc2UoIlN0cmluZyIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjUuIFdoaWNoIG9uZSBpcyBpbGxlZ2FsP1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgU3RyaW5nIHM94oCdSSBhbeKAnSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRG91YmxlIGE9NDUiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkRvdWJsZSBkPSA0NS41Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgSW50PTU2LjUiKTsKCiAgICAgICAgaW4gPSBzY2FuLm5leHRMaW5lKCk7CiAgICAgICAgaWYgKGluLmVxdWFsc0lnbm9yZUNhc2UoIiBJbnQ9NTYuNSIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjYuIFdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgY2Fu4oCZdCBiZSBhc3NpZ25lZCB0byBDaGFyYWN0ZXIgZGF0YSB0eXBlP1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgTGV0dGVyIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJEaWdpdCIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU3BlY2lhbCBDaGFyYWN0ZXIiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN0cmluZyIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CiAgICAgICAgaW4gPSBzY2FuLm5leHRMaW5lKCk7CiAgICAgICAgaWYgKGluLmVxdWFsc0lnbm9yZUNhc2UoIlN0cmluZyIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjcuIFdoYXQgaWRlbnRpZmllciBzZXRzIGEgdmFyaWFibGUgYXMgdHJ1ZSBvciBmYWxzZT9cbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYm9vbGVhbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hhciIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiZG91YmxlIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJpbnQiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJib29sZWFuIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiOC4gV2hpY2ggb2YgdGhlIGZvbGxvd2luZyBpcyBzbWFsbGVzdCBpbnRlZ2VyIGRhdGEgdHlwZT9cbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgYnl0ZSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW50Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJsb25nIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzaG9ydCIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCIgYnl0ZSIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjkuIEhvdyB3b3VsZCB5b3UgY29ycmVjdGx5IGRpc3BsYXksIOKAnEhlbGxvLCBob3cgYXJlIHlvdT/igJ0/XG4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN5c3RlbS5vdXQucHJpbnRsbihIZWxsbywgaG93IGFyZSB5b3U/KTsiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIm91dC5wcmludChIZWxsbywgaG93IGFyZSB5b3U/KTsiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlN5c3RlbS5vdXQucHJpbnRsbihcIkhlbGxvLCBob3cgYXJlIHlvdT9cIikiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi5wcmludChIZWxsbywgaG93IGFyZSB5b3U/KTsiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJTeXN0ZW0ub3V0LnByaW50bG4oXCJIZWxsbywgaG93IGFyZSB5b3U/XCIpIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMTAuIFdoYXQgY2xhc3MgZXhwb3NlIG1ldGhvZHMgc3VjaCBhcyBwb3dlciB0bywgUGksIHNxdWFyZSByb290LCBhbmQgY3ViZSByb290P1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgaW50Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTdHJpbmciKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImNsYXNzIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJNYXRoIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsKICAgICAgICBpbiA9IHNjYW4ubmV4dExpbmUoKTsKICAgICAgICBpZiAoaW4uZXF1YWxzSWdub3JlQ2FzZSgiTWF0aCIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjExLiBXaGljaCBwYWNrYWdlIG5lZWRzIHRvIGJlIGltcG9ydGVkIHNvIHRoYXQgeW91IGNhbiBhY2NlcHQgdXNlciBpbnB1dD9cbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiamF2YS5hd3QuZXZlbnQiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImphdmEuaW8iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImphdmEudXRpbCIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiamF2YS5hd3QiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJqYXZhLmlvIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMTIuIFdoaWNoIGtleXdvcmQgd291bGQgeW91IHVzZSB0byBicmVhayBvdXQgb2YgYSBsb29wP1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ3aGlsZSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY29udGludWUiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImZvciIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYnJlYWsiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJicmVhayIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEzLiBXaGF0IGlzIHRoZSBuYW1lIG9mIHRoZSBwcm9jZXNzIGJ5IHdoaWNoIHR3byBvciBtb3JlIHN0cmluZ3MgYXJlIGpvaW5lZCB0b2dldGhlcj9cbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiY2hhckF0Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgTWV0aG9kIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb25jYXRlbmF0aW9uIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJBc3NvY2lhdGlvbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIik7CiAgICAgICAgaW4gPSBzY2FuLm5leHRMaW5lKCk7CiAgICAgICAgaWYgKGluLmVxdWFsc0lnbm9yZUNhc2UoIkNvbmNhdGVuYXRpb24iKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QiKTsKICAgICAgICAgICAgYysrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmciKTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIxNC5XaGljaCBvZiB0aGUgZm9sbG93aW5nIEdVSSBjb21wb25lbnRzIGNhbiBiZSBpbmNsdWRlZCBpbiBhIEphdmEgZnJhbWU/XG4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImJ1dHRvbiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiYm9yZGVyIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJ0ZXh0Ym94LCBsYWJlbCwgYnV0dG9uLCBpbWFnZXMiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImxhYmVsIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIiKTsKICAgICAgICBpbiA9IHNjYW4ubmV4dExpbmUoKTsKICAgICAgICBpZiAoaW4uZXF1YWxzSWdub3JlQ2FzZSgidGV4dGJveCwgbGFiZWwsIGJ1dHRvbiwgaW1hZ2VzIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMTUuIFdoaWNoIGxvb3AgdHlwZSB3b3VsZCB5b3UgdXNlIHRvIHJlcGVhdCBhIHRhc2sgYSBzZXQgbnVtYmVyIG9mIHRpbWVzP1xuIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJkby13aGlsZSIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiIHN3aXRjaCIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiaW50Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJmb3IiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiIpOwogICAgICAgIGluID0gc2Nhbi5uZXh0TGluZSgpOwogICAgICAgIGlmIChpbi5lcXVhbHNJZ25vcmVDYXNlKCJmb3IiKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QiKTsKICAgICAgICAgICAgYysrOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmciKTsKICAgICAgICB9CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIxNi4gYnJlYWsgc3RhdG1lbnQgaXMgdXNlZGQgdG8uLi4uXG4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImdldCBvdXQgb2YgbWV0aG9kICAiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImVuZCBhIHByb2dyYW0iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImdldCBvdXQgb2YgYSBsb29wIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnZXQgb3V0IG9mIHRoZSBzeXN0ZW0iKTsKCiAgICAgICAgaW4gPSBzY2FuLm5leHRMaW5lKCk7CiAgICAgICAgaWYgKGluLmVxdWFsc0lnbm9yZUNhc2UoImdldCBvdXQgb2YgYSBsb29wIikpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0Iik7CiAgICAgICAgICAgIGMrKzsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nIik7CiAgICAgICAgfQogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiMTcuIFdoaWNoIG9mIHRoZSBmb2xsb3dpbmcgaXMgYSBsZWdhbCBuYW1lIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJnb2xkTnVnZ2V0Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJzbG93LnNhbGx5Iik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgY2xhc3MiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oImRvdWJsZSIpOwoKICAgICAgICBpbiA9IHNjYW4ubmV4dExpbmUoKTsKICAgICAgICBpZiAoaW4uZXF1YWxzSWdub3JlQ2FzZSgiZ29sZE51Z2dldCIpKSB7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCIpOwogICAgICAgICAgICBjKys7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyIpOwogICAgICAgIH0KICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oYyArICIgQ29ycmVjdCBvdXQgb2YgMTciKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oMTAwICogYyAvIDE3ICsgIiUiKTsKCiAgICAgICAgU2Nhbm5lciBrYlJlYWRlciA9IG5ldyBTY2FubmVyKFN5c3RlbS5pbik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgUXVpeiBQYXJ0IDIgIik7CiAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJSdWxlczoiKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjEuIFdyaXRlIGVpdGhlciB0cnVlIGFuZCBmYWxzZSBmb3IgZWFjaCBxdWVzdGlvbi4iKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjIuIElmIGFueXRoaW5nIGVsc2UgaXMgaW5wdXRlZCwgaXQgaXMgYSB6ZXJvLiIpOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVHlwZSBvayBpZiB5b3Ugd2FudCB0byBiZWdpbiIpOwogICAgICAgIFN0cmluZyBiID0ga2JSZWFkZXIubmV4dExpbmUoKTsKCiAgICAgICAgaWYgKGIuZXF1YWxzSWdub3JlQ2FzZSgib2siKSkgewogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkxldHMgU3RhcnQgUXVpeiBwYXJ0IDEgIik7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGF0cyBub3QgcmlnaHQsYnV0IGxldHMgc3RhcnQhIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiRmlyc3QgUXVlc3Rpb24hIik7CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBuYW1lIGFiYyBpcyBhIGxlZ2FsIG5hbWUgZm9yIGEgdmFyaWFibGUuIik7CgogICAgICAgICAgICBTdHJpbmcgaSA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CgogICAgICAgICAgICBpZiAoaS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoaS5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTZWNvbmQgUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIHZhcmlhYmxlIGludCBpcyB1c2VkIGZvciBhbnkgdHlwZSBvZiBudW1iZXJzLiIpOwogICAgICAgICAgICBTdHJpbmcgbCA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmIChsLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobC5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmchIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlplcm8hKFJlYWQgdGhlIFJ1bGVzKSIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoaXJkIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIjUgPSBwOyBpcyBhIGxlZ2FsIHdheSB0byBhc3NpZ24gYSB2YWx1ZSB0byBhIHZhcmlhYmxlLiIpOwogICAgICAgICAgICBTdHJpbmcgbSA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmIChtLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmchIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlplcm8hKFJlYWQgdGhlIFJ1bGVzKSIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZvdXJ0aCBRdWVzdGlvbiEiKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJjaGFyIGlzIGEgaW5kZW50aWZ5ZXIgdGhhdCBzZXRzIGEgdmFyaWFibGUgYXMgdHJ1ZSBvciBmYWxzZSIpOwogICAgICAgICAgICBTdHJpbmcgbiA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmIChuLmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAobi5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmchIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlplcm8hKFJlYWQgdGhlIFJ1bGVzKSIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkZpZnRoIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIngtLTsgbWVhbnMgdGhlIHNhbWUgYXMgeCA9IHggLTE7Iik7CiAgICAgICAgICAgIFN0cmluZyBvID0ga2JSZWFkZXIubmV4dExpbmUoKTsKICAgICAgICAgICAgaWYgKG8uZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QhIik7CiAgICAgICAgICAgICAgICB0b3RhbCsrOwogICAgICAgICAgICB9IGVsc2UgaWYgKG8uZXF1YWxzSWdub3JlQ2FzZSgiZmFsc2UiKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyEiKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWmVybyEoUmVhZCB0aGUgUnVsZXMpIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiU2l4dGggUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSXMgdGhlIG91dHB1dCB0cnVlIG9yIGZhbHNlPyBTeXN0ZW0ub3V0LnByaW50bG4oIChqaiA9ID0gNDApICYmICFmYWxzZSkiKTsKICAgICAgICAgICAgU3RyaW5nIHAgPSBrYlJlYWRlci5uZXh0TGluZSgpOwogICAgICAgICAgICBpZiAocC5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAocC5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJTZXZlbnRoIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGUgZGF0YSB0eXBlICdkb3VibGUnIHVzZXMgb25seSBzaW5nbGUgcXVvdGVzLiBFeC4gY2hhciBjaCA9ICdoJzsiKTsKICAgICAgICAgICAgU3RyaW5nIHEgPSBrYlJlYWRlci5uZXh0TGluZSgpOwogICAgICAgICAgICBpZiAocS5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QhIik7CiAgICAgICAgICAgICAgICB0b3RhbCsrOwogICAgICAgICAgICB9IGVsc2UgaWYgKHEuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJFaWdodGggUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSXMgdGhlIG91dHB1dCB0cnVlIG9yIGZhbHNlPyBTeXN0ZW0ub3V0LnByaW50bG4odHJ1ZSAmJiBmYWxzZSk7Iik7CiAgICAgICAgICAgIFN0cmluZyByID0ga2JSZWFkZXIubmV4dExpbmUoKTsKICAgICAgICAgICAgaWYgKHIuZXF1YWxzSWdub3JlQ2FzZSgiZmFsc2UiKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0ISIpOwogICAgICAgICAgICAgICAgdG90YWwrKzsKICAgICAgICAgICAgfSBlbHNlIGlmIChyLmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyEiKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWmVybyEoUmVhZCB0aGUgUnVsZXMpIik7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmludGggUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiSiA9IDY5IGlzIGFuIGV4YW1wbGUgb2YgYW4gaW5pdGlhbGl6aW5nIGV4cHJlc3Npb24iKTsKICAgICAgICAgICAgU3RyaW5nIHQgPSBrYlJlYWRlci5uZXh0TGluZSgpOwogICAgICAgICAgICBpZiAodC5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodC5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUZW50aCBRdWVzdGlvbiEiKTsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJUaGVyZSBhcmUgb25seSAxMCBkaWdpdHMgaW4gdGhlIGRlY2ltYWwgc3lzdGVtLigwLDEsMiwzLDQsNSw2LDcsOCw5KSIpOwogICAgICAgICAgICBTdHJpbmcgdSA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmICh1LmVxdWFsc0lnbm9yZUNhc2UoInRydWUiKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJDb3JyZWN0ISIpOwogICAgICAgICAgICAgICAgdG90YWwrKzsKICAgICAgICAgICAgfSBlbHNlIGlmICh1LmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmchIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlplcm8hKFJlYWQgdGhlIFJ1bGVzKSIpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkVsZXZlbnRoIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZSBTY2FubmVyIGNsYXNzIGFsbG93cyB0aGUgdXNlciB0byBpbnB1dCBkYXRhIGZyb20gaGlzIG9yIGhlciBrZXlib2FyZD8iKTsKICAgICAgICAgICAgU3RyaW5nIGogPSBrYlJlYWRlci5uZXh0TGluZSgpOwogICAgICAgICAgICBpZiAoai5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodS5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgVHdlbHRoIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoZXJlIGFyZSA1IHZhcmlhYmxlcyBpbiBqYXZhIik7CiAgICAgICAgICAgIFN0cmluZyBnMSA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmIChnMS5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QhIik7CiAgICAgICAgICAgICAgICB0b3RhbCsrOwogICAgICAgICAgICB9IGVsc2UgaWYgKHUuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBUaGlydGVldGggUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiVGhlIGludCBpZGVudGlmaWVyIGRlZmluZXMgYSAzMi1iaXQgbnVtYmVyIHdpdGhvdXQgYSBkZWNpbWFsIHBsYWNlPyIpOwogICAgICAgICAgICBTdHJpbmcgZzIgPSBrYlJlYWRlci5uZXh0TGluZSgpOwogICAgICAgICAgICBpZiAoZzIuZXF1YWxzSWdub3JlQ2FzZSgidHJ1ZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIkNvcnJlY3QhIik7CiAgICAgICAgICAgICAgICB0b3RhbCsrOwogICAgICAgICAgICB9IGVsc2UgaWYgKHUuZXF1YWxzSWdub3JlQ2FzZSgiZmFsc2UiKSkgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJXcm9uZyEiKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiWmVybyEoUmVhZCB0aGUgUnVsZXMpIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCIgRm91cnRlZXRoIFF1ZXN0aW9uISIpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIi5Db21tZW50cyBzaG91bGQgYmUgaW5jbHVkZWQgdG8gZXhwbGFpbiB0aGUgcHVycG9zZSBvZiB0aGUgcHJvZ3JhbSBhbmQgZXhwbGFpbiBwcm9jZXNzaW5nIHN0ZXBzIik7CiAgICAgICAgICAgIFN0cmluZyBnMyA9IGtiUmVhZGVyLm5leHRMaW5lKCk7CiAgICAgICAgICAgIGlmIChnMy5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodS5lcXVhbHNJZ25vcmVDYXNlKCJmYWxzZSIpKSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIldyb25nISIpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKCJaZXJvIShSZWFkIHRoZSBSdWxlcykiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIiBGaWZ0ZWVudGggUXVlc3Rpb24hIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiR1VJIHN0YW5kcyBmb3IgZ2ltbWUgVXIgSW50ZXJuZXQiKTsKICAgICAgICAgICAgU3RyaW5nIGc0ID0ga2JSZWFkZXIubmV4dExpbmUoKTsKICAgICAgICAgICAgaWYgKGc0LmVxdWFsc0lnbm9yZUNhc2UoImZhbHNlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiQ29ycmVjdCEiKTsKICAgICAgICAgICAgICAgIHRvdGFsKys7CiAgICAgICAgICAgIH0gZWxzZSBpZiAodS5lcXVhbHNJZ25vcmVDYXNlKCJ0cnVlIikpIHsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiV3JvbmchIik7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlplcm8hKFJlYWQgdGhlIFJ1bGVzKSIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b3RhbCArICIgb3V0IG9mIDE1Iik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b3RhbCAqIDEwMCAvIDE1ICsgKCIlIikpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRvdGFsIHNjb3JlIik7CiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbih0b3RhbCArIGMgKyAib3V0IG9mIDMyIik7CiAgICAgICAgICAgIFN5c3RlbS5lcnIucHJpbnRsbih0b3RhbCArIGMgKiAxMDAvIDMwICsgKCIlIikpOwogICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlRoYW5rIHlvdSBmb3IgZG9pbmcgdGhlIHF1aXogYW5kIGhvcGUgeW91IHRyaWVkIHlvdXIgYmVzdCBiZWNhdXNlIHlvdXIgZ3JhZGUgZGVwZW5kcyBvbiBpdCAiKTsKICAgICAgICB9CiAgICB9CgoJfQp9