From e3a2b6a3b8328c86506fb881d48b0ac2571b7a7c Mon Sep 17 00:00:00 2001 From: Yadunand Prem Date: Thu, 29 Sep 2022 17:29:07 +0800 Subject: [PATCH] add lab5 --- Lab5/CS2030STest.java | 76 +++++++++++ Lab5/Lab5.java | 216 +++++++++++++++++++++++++++++++ Lab5/Lab5.pdf | Bin 0 -> 169098 bytes Lab5/Lab5.sh | 17 +++ Lab5/Test0.java | 24 ++++ Lab5/Test1.java | 73 +++++++++++ Lab5/Test2.java | 72 +++++++++++ Lab5/Test3.java | 71 ++++++++++ Lab5/Test4.java | 45 +++++++ Lab5/Test5.java | 55 ++++++++ Lab5/cs2030s/fp/Actually.java | 0 Lab5/cs2030s/fp/Constant.java | 0 Lab5/cs2030s/fp/Transformer.java | 0 13 files changed, 649 insertions(+) create mode 100644 Lab5/CS2030STest.java create mode 100644 Lab5/Lab5.java create mode 100644 Lab5/Lab5.pdf create mode 100644 Lab5/Lab5.sh create mode 100644 Lab5/Test0.java create mode 100644 Lab5/Test1.java create mode 100644 Lab5/Test2.java create mode 100644 Lab5/Test3.java create mode 100644 Lab5/Test4.java create mode 100644 Lab5/Test5.java create mode 100644 Lab5/cs2030s/fp/Actually.java create mode 100644 Lab5/cs2030s/fp/Constant.java create mode 100644 Lab5/cs2030s/fp/Transformer.java diff --git a/Lab5/CS2030STest.java b/Lab5/CS2030STest.java new file mode 100644 index 0000000..76d14a5 --- /dev/null +++ b/Lab5/CS2030STest.java @@ -0,0 +1,76 @@ +import java.net.URI; +import java.util.List; +import java.util.ArrayList; +import javax.tools.DiagnosticCollector; +import javax.tools.SimpleJavaFileObject; +import javax.tools.ToolProvider; +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class CS2030STest { + + private static final String ANSI_RESET = "\u001B[0m"; + private static final String ANSI_RED = "\u001B[31m"; + private static final String ANSI_GREEN = "\u001B[32m"; + + public void expect(String test, Object output, Object expect) { + System.out.print(test); + if ((expect == null && output == null) || output.equals(expect)) { + System.out.println(".. " + ANSI_GREEN + "ok" + ANSI_RESET); + } else { + System.out.println(".. " + ANSI_RED + "failed" + ANSI_RESET); + System.out.println(" expected: " + expect); + System.out.println(" got this: " + output); + } + } + + public static String clean(String txt) { + String res = ""; + for (int i=0; i(), null, null, + List.of(new JavaSourceFromString(statement))) + .call(); + + if (noError != success) { + System.out.println(".. " + ANSI_RED + "failed" + ANSI_RESET); + if (!success) { + System.out.println(" expected compilation error but it compiles fine."); + } else { + System.out.println(" expected the statement to compile without errors but it does not."); + } + } else { + System.out.println(".. " + ANSI_GREEN + "ok" + ANSI_RESET); + } + } +} diff --git a/Lab5/Lab5.java b/Lab5/Lab5.java new file mode 100644 index 0000000..8a06e2e --- /dev/null +++ b/Lab5/Lab5.java @@ -0,0 +1,216 @@ +import cs2030s.fp.Actually; +import cs2030s.fp.Immutator; +import cs2030s.fp.Constant; +import cs2030s.fp.Action; +import cs2030s.fp.Transformer; +import java.util.Map; +import java.util.HashMap; +import java.util.Scanner; + +class Lab5 { + public static String getGrade(String module, String student, String assessment, + Map>> db) { + try { + return db.get(module).get(student).get(assessment).toString(); + } catch(Exception e) { + return "No such entry"; + } + } + public static void main(String[] args) { + // Create a scanner to read from standard input. + Scanner sc = new Scanner(System.in); + + // Read a single integer from the test file + // and then run the appropriate test case + switch (sc.nextInt()) { + case 1: + test1(); + break; + case 2: + test2(); + break; + case 3: + test3(); + break; + case 4: + test4(); + break; + case 5: + test5(); + break; + case 6: + test6(); + break; + } + } + + public static void test1() { + String none = null; + + System.out.println(Actually.err(new ArithmeticException("Err")).equals(Actually.err(new Exception("Err")))); + System.out.println(Actually.err(new ArithmeticException("Err")).equals(Actually.err(new Exception("Error")))); + System.out.println(Actually.err(new ArithmeticException("Err")).equals(Actually.err(new Exception(none)))); + System.out.println(Actually.err(new ArithmeticException(none)).equals(Actually.err(new Exception(none)))); + System.out.println(Actually.err(new ArithmeticException("Err")).equals(Actually.ok("Err"))); + System.out.println(Actually.ok("Err").equals(Actually.ok("Err"))); + System.out.println(Actually.ok("Err").equals(Actually.err(new Exception("Error")))); + System.out.println(Actually.ok("Err").equals("Err")); + System.out.println(Actually.ok(null).equals(Actually.ok("Err"))); + System.out.println(Actually.ok(null).equals(Actually.ok(null))); + System.out.println(Actually.ok(null).equals("Err")); + System.out.println(Actually.ok(null).equals(null)); + } + + public static void test2() { + Constant zero = new Constant<>() { + public Integer init() { + return 0; + } + }; + Action print = new Action<>() { + public void call(Integer i) { + System.out.println(i); + } + }; + + try { + Actually.ok(0).unwrap().toString(); + } catch(Exception e) { + System.out.println(e.getMessage()); + } + + Actually.ok(9).finish(print); + Actually.err(new Exception("Err")).finish(print); + System.out.println(Actually.ok(9).except(zero).toString()); + System.out.println(Actually.err(new ArithmeticException("div by 0")).except(zero).toString()); + System.out.println(Actually.err(new ArithmeticException("div by 0")).unless(4).toString()); + System.out.println(Actually.ok(0).unless(4).toString()); + } + + public static void test3() { + Immutator inc = new Immutator<>() { + public Integer invoke(Integer p) { + return p+1; + } + }; + Immutator inv = new Immutator<>() { + public Integer invoke(Integer p) { + return 1/p; + } + }; + Immutator incNum = new Immutator<>() { + public Number invoke(Integer p) { + return p+1; + } + }; + Immutator invNum = new Immutator<>() { + public Number invoke(Integer p) { + return 1/p; + } + }; + + System.out.println(Actually.ok(0).transform(inc).toString()); + System.out.println(Actually.ok(0).transform(inv).toString()); + System.out.println(Actually.ok(0).transform(inc).toString()); + System.out.println(Actually.ok(0).transform(inv).toString()); + System.out.println(Actually.ok(0).transform(incNum).toString()); + System.out.println(Actually.ok(0).transform(invNum).toString()); + System.out.println(Actually.ok(0).transform(incNum).toString()); + System.out.println(Actually.ok(0).transform(invNum).toString()); + } + + public static void test4() { + Transformer inc = new Transformer<>() { + public Integer invoke(Integer p) { + return p+1; + } + }; + Transformer sqr = new Transformer<>() { + public Integer invoke(Integer p) { + return p*p; + } + }; + + Transformer sqrPlusOneA = sqr.before(inc); + Transformer sqrPlusOneB = inc.after(sqr); + Transformer plusOneSqrA = sqr.after(inc); + Transformer plusOneSqrB = inc.before(sqr); + + System.out.println(sqrPlusOneA.invoke(2).toString()); + System.out.println(sqrPlusOneA.invoke(2).toString()); + System.out.println(plusOneSqrA.invoke(2).toString()); + System.out.println(plusOneSqrB.invoke(2).toString()); + } + + public static void test5() { + Immutator,Integer> half = new Immutator<>() { + public Actually invoke(Integer p) { + if (p%2 == 0) { + return Actually.ok(p/2); + } else { + return Actually.err(new Exception("odd number")); + } + } + }; + Immutator,Integer> inc = new Immutator<>() { + public Actually invoke(Integer p) { + return Actually.ok(p+1); + } + }; + Immutator,Integer> make = new Immutator<>() { + public Actually invoke(Integer p) { + return Actually.ok(p); + } + }; + Constant zero = new Constant<>() { + public Integer init() { + return 0; + } + }; + + System.out.println(make.invoke(0).next(inc).next(inc).next(half).toString()); + System.out.println(make.invoke(0).next(inc).next(half).next(inc).toString()); + System.out.println(make.invoke(0).next(inc).next(inc).next(half).except(zero).toString()); + System.out.println(make.invoke(0).next(inc).next(half).next(inc).except(zero).toString()); + } + + public static void test6() { + Map>> nus = + Map.of( + "CS2030S", Map.of( + "Steve", Map.of( + "lab1", "A", + "lab2", "A-", + "lab3", "A+", + "lab4", "B", + "pe1", "C" + ), + "Tony", Map.of( + "lab1", "C", + "lab2", "C", + "lab3", "B-", + "lab4", "B+", + "pe1", "A" + ) + ), + "CS2040S", Map.of( + "Steve", Map.of( + "lab1", "A", + "lab2", "A+", + "lab3", "A+", + "lab4", "A", + "midterm", "A+" + ) + ) + ); + + System.out.println(getGrade("CS2030S", "Steve", "lab1", nus)); + System.out.println(getGrade("CS2030S", "Steve", "lab2", nus)); + System.out.println(getGrade("CS2040S", "Steve", "lab3", nus)); + System.out.println(getGrade("CS2040S", "Steve", "lab4", nus)); + System.out.println(getGrade("CS2030S", "Tony", "lab1", nus)); + System.out.println(getGrade("CS2030S", "Tony", "midterm", nus)); + System.out.println(getGrade("CS2040S", "Tony", "lab4", nus)); + System.out.println(getGrade("CS2040S", "Bruce", "lab4", nus)); + } +} diff --git a/Lab5/Lab5.pdf b/Lab5/Lab5.pdf new file mode 100644 index 0000000000000000000000000000000000000000..79fef47668697d4a991a8856afbd00d6361dcc76 GIT binary patch literal 169098 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 `ke^2;0h8LDKc>B!bxRT>e#Q?QSeJD-Oft;GBSz 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�*>GRfL-X5ZFO`~GsKcV9_v-666S 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%0D|Q0dU11 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

  • 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�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 literal 0 HcmV?d00001 diff --git a/Lab5/Lab5.sh b/Lab5/Lab5.sh new file mode 100644 index 0000000..780b43a --- /dev/null +++ b/Lab5/Lab5.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +mkdir cs2030s +cd cs2030s +mkdir fp +cd .. + +mv Action.java cs2030s/fp/Action.java +mv Actionable.java cs2030s/fp/Actionable.java +mv Actually.java cs2030s/fp/Actually.java +mv Constant.java cs2030s/fp/Constant.java +mv Immutator.java cs2030s/fp/Immutator.java +mv Immutatorable.java cs2030s/fp/Immutatorable.java +mv Transformer.java cs2030s/fp/Transformer.java + +javac cs2030s/fp/*.java +javac *.java \ No newline at end of file diff --git a/Lab5/Test0.java b/Lab5/Test0.java new file mode 100644 index 0000000..f236436 --- /dev/null +++ b/Lab5/Test0.java @@ -0,0 +1,24 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test0 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + + we.expectCompile("Actually a = new Actually<>() should not compile", + "cs2030s.fp.Actually a = new cs2030s.fp.Actually<>();", false); + we.expectCompile("Actually.Success s should not compile", + "cs2030s.fp.Actually.Success s;", false); + we.expectCompile("Actually.Failure f should not compile", + "cs2030s.fp.Actually.Failure f;", false); + + we.expectCompile("Actually success = Actually.ok(\"success\") should compile", + "cs2030s.fp.Actually success = cs2030s.fp.Actually.ok(\"success\");", true); + we.expectCompile("Actually none = Actually.ok(null) should compile", + "cs2030s.fp.Actually none = cs2030s.fp.Actually.ok(null);", true); + we.expectCompile("Actually four = Actually.ok(4) should compile", + "cs2030s.fp.Actually four = cs2030s.fp.Actually.ok(4);", true); + we.expectCompile("Actually div0 = Actually.err(new ArithmeticException(\"Divide by 0\")) should compile", + "cs2030s.fp.Actually div0 = cs2030s.fp.Actually.err(new ArithmeticException(\"Divide by 0\"));", true); + } +} \ No newline at end of file diff --git a/Lab5/Test1.java b/Lab5/Test1.java new file mode 100644 index 0000000..460da0b --- /dev/null +++ b/Lab5/Test1.java @@ -0,0 +1,73 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test1 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + + String none = null; + + we.expect( + "Actually.err(new ArithmeticException(\"Err\")).equals(Actually.err(new Exception(\"Err\")))", + cs2030s.fp.Actually.err(new ArithmeticException("Err")).equals(cs2030s.fp.Actually.err(new Exception("Err"))), + true + ); + we.expect( + "Actually.err(new ArithmeticException(\"Err\")).equals(Actually.err(new Exception(\"Error\")))", + cs2030s.fp.Actually.err(new ArithmeticException("Err")).equals(cs2030s.fp.Actually.err(new Exception("Error"))), + false + ); + we.expect( + "Actually.err(new ArithmeticException(\"Err\")).equals(Actually.err(new Exception(null)))", + cs2030s.fp.Actually.err(new ArithmeticException("Err")).equals(cs2030s.fp.Actually.err(new Exception(none))), + false + ); + we.expect( + "Actually.err(new ArithmeticException(null)).equals(Actually.err(new Exception(null)))", + cs2030s.fp.Actually.err(new ArithmeticException(none)).equals(cs2030s.fp.Actually.err(new Exception(none))), + false + ); + we.expect( + "Actually.err(new ArithmeticException(\"Err\")).equals(Actually.ok(\"Err\"))", + cs2030s.fp.Actually.err(new ArithmeticException("Err")).equals(cs2030s.fp.Actually.ok("Err")), + false + ); + + we.expect( + "Actually.ok(\"Err\").equals(Actually.ok(\"Err\"))", + cs2030s.fp.Actually.ok("Err").equals(cs2030s.fp.Actually.ok("Err")), + true + ); + we.expect( + "Actually.ok(\"Err\").equals(Actually.err(new Exception(\"Error\")))", + cs2030s.fp.Actually.ok("Err").equals(cs2030s.fp.Actually.err(new Exception("Error"))), + false + ); + we.expect( + "Actually.ok(\"Err\").equals(\"Err\")", + cs2030s.fp.Actually.ok("Err").equals("Err"), + false + ); + + we.expect( + "Actually.ok(null).equals(Actually.ok(\"Err\"))", + cs2030s.fp.Actually.ok(null).equals(cs2030s.fp.Actually.ok("Err")), + false + ); + we.expect( + "Actually.ok(null).equals(Actually.ok(null))", + cs2030s.fp.Actually.ok(null).equals(cs2030s.fp.Actually.ok(null)), + true + ); + we.expect( + "Actually.ok(null).equals(\"Err\")", + cs2030s.fp.Actually.ok(null).equals("Err"), + false + ); + we.expect( + "Actually.ok(null).equals(null)", + cs2030s.fp.Actually.ok(null).equals(null), + false + ); + } +} \ No newline at end of file diff --git a/Lab5/Test2.java b/Lab5/Test2.java new file mode 100644 index 0000000..7edf703 --- /dev/null +++ b/Lab5/Test2.java @@ -0,0 +1,72 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test2 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + PrintStream old = System.out; + ByteArrayOutputStream baos; + PrintStream ps; + + cs2030s.fp.Constant zero = new cs2030s.fp.Constant<>() { + public Integer init() { + return 0; + } + }; + cs2030s.fp.Action print = new cs2030s.fp.Action<>() { + public void call(Integer i) { + System.out.println(i); + } + }; + + try { + we.expect( + "Actually.ok(0).unwrap()", + cs2030s.fp.Actually.ok(0).unwrap().toString(), + "0" + ); + } catch(Exception e) { + System.out.println("Unexpected error occurs"); + } + + baos = new ByteArrayOutputStream(); + ps = new PrintStream(baos); + System.setOut(ps); + cs2030s.fp.Actually.ok(9).finish(print); + we.expectPrint("Actually.ok(9).finish(print)", + "9", + baos, + old); + + baos = new ByteArrayOutputStream(); + ps = new PrintStream(baos); + System.setOut(ps); + cs2030s.fp.Actually.err(new Exception("Err")).finish(print); + we.expectPrint("Actually.err(new Exception(\"Err\")).finish(print)", + "", + baos, + old); + + we.expect( + "Actually.ok(9).except(zero)", + cs2030s.fp.Actually.ok(9).except(zero).toString(), + "9" + ); + we.expect( + "Actually.err(new ArithmeticException(\"div by 0\")).except(zero)", + cs2030s.fp.Actually.err(new ArithmeticException("div by 0")).except(zero).toString(), + "0" + ); + + we.expect( + "Actually.err(new ArithmeticException(\"div by 0\")).unless(4)", + cs2030s.fp.Actually.err(new ArithmeticException("div by 0")).unless(4).toString(), + "4" + ); + we.expect( + "Actually.ok(0).unless(4)", + cs2030s.fp.Actually.ok(0).unless(4).toString(), + "0" + ); + } +} \ No newline at end of file diff --git a/Lab5/Test3.java b/Lab5/Test3.java new file mode 100644 index 0000000..04eb766 --- /dev/null +++ b/Lab5/Test3.java @@ -0,0 +1,71 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test3 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + + cs2030s.fp.Immutator inc = new cs2030s.fp.Immutator<>() { + public Integer invoke(Integer p) { + return p+1; + } + }; + cs2030s.fp.Immutator inv = new cs2030s.fp.Immutator<>() { + public Integer invoke(Integer p) { + return 1/p; + } + }; + cs2030s.fp.Immutator incNum = new cs2030s.fp.Immutator<>() { + public Number invoke(Integer p) { + return p+1; + } + }; + cs2030s.fp.Immutator invNum = new cs2030s.fp.Immutator<>() { + public Number invoke(Integer p) { + return 1/p; + } + }; + + we.expect( + "Actually.ok(0).transform(inc)", + cs2030s.fp.Actually.ok(0).transform(inc).toString(), + "<1>" + ); + we.expect( + "Actually.ok(0).transform(inv)", + cs2030s.fp.Actually.ok(0).transform(inv).toString(), + "[java.lang.ArithmeticException] / by zero" + ); + we.expect( + "Actually.ok(0).transform(inc)", + cs2030s.fp.Actually.ok(0).transform(inc).toString(), + "<1>" + ); + we.expect( + "Actually.ok(0).transform(inv)", + cs2030s.fp.Actually.ok(0).transform(inv).toString(), + "[java.lang.ArithmeticException] / by zero" + ); + + we.expect( + "Actually.ok(0).transform(incNum)", + cs2030s.fp.Actually.ok(0).transform(incNum).toString(), + "<1>" + ); + we.expect( + "Actually.ok(0).transform(invNum)", + cs2030s.fp.Actually.ok(0).transform(invNum).toString(), + "[java.lang.ArithmeticException] / by zero" + ); + we.expect( + "Actually.ok(0).transform(incNum)", + cs2030s.fp.Actually.ok(0).transform(incNum).toString(), + "<1>" + ); + we.expect( + "Actually.ok(0).transform(invNum)", + cs2030s.fp.Actually.ok(0).transform(invNum).toString(), + "[java.lang.ArithmeticException] / by zero" + ); + } +} \ No newline at end of file diff --git a/Lab5/Test4.java b/Lab5/Test4.java new file mode 100644 index 0000000..b0df25a --- /dev/null +++ b/Lab5/Test4.java @@ -0,0 +1,45 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test4 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + + cs2030s.fp.Transformer inc = new cs2030s.fp.Transformer<>() { + public Integer invoke(Integer p) { + return p+1; + } + }; + cs2030s.fp.Transformer sqr = new cs2030s.fp.Transformer<>() { + public Integer invoke(Integer p) { + return p*p; + } + }; + + cs2030s.fp.Transformer sqrPlusOneA = sqr.before(inc); + cs2030s.fp.Transformer sqrPlusOneB = inc.after(sqr); + cs2030s.fp.Transformer plusOneSqrA = sqr.after(inc); + cs2030s.fp.Transformer plusOneSqrB = inc.before(sqr); + + we.expect( + "sqrPlusOneA.invoke(2)", + sqrPlusOneA.invoke(2).toString(), + "5" + ); + we.expect( + "sqrPlusOneB.invoke(2)", + sqrPlusOneA.invoke(2).toString(), + "5" + ); + we.expect( + "plusOneSqrA.invoke(2)", + plusOneSqrA.invoke(2).toString(), + "9" + ); + we.expect( + "plusOneSqrB.invoke(2)", + plusOneSqrB.invoke(2).toString(), + "9" + ); + } +} \ No newline at end of file diff --git a/Lab5/Test5.java b/Lab5/Test5.java new file mode 100644 index 0000000..b6acaa7 --- /dev/null +++ b/Lab5/Test5.java @@ -0,0 +1,55 @@ +import java.io.PrintStream; +import java.io.ByteArrayOutputStream; + +public class Test5 { + public static void main(String[] args) { + CS2030STest we = new CS2030STest(); + + cs2030s.fp.Immutator,Integer> half = new cs2030s.fp.Immutator<>() { + public cs2030s.fp.Actually invoke(Integer p) { + if (p%2 == 0) { + return cs2030s.fp.Actually.ok(p/2); + } else { + return cs2030s.fp.Actually.err(new Exception("odd number")); + } + } + }; + cs2030s.fp.Immutator,Integer> inc = new cs2030s.fp.Immutator<>() { + public cs2030s.fp.Actually invoke(Integer p) { + return cs2030s.fp.Actually.ok(p+1); + } + }; + cs2030s.fp.Immutator,Integer> make = new cs2030s.fp.Immutator<>() { + public cs2030s.fp.Actually invoke(Integer p) { + return cs2030s.fp.Actually.ok(p); + } + }; + cs2030s.fp.Constant zero = new cs2030s.fp.Constant<>() { + public Integer init() { + return 0; + } + }; + + we.expect( + "make.invoke(0).next(inc).next(inc).next(half)", + make.invoke(0).next(inc).next(inc).next(half).toString(), + "<1>" + ); + we.expect( + "make.invoke(0).next(inc).next(half).next(inc)", + make.invoke(0).next(inc).next(half).next(inc).toString(), + "[java.lang.Exception] odd number" + ); + + we.expect( + "make.invoke(0).next(inc).next(inc).next(half).except(zero)", + make.invoke(0).next(inc).next(inc).next(half).except(zero).toString(), + "1" + ); + we.expect( + "make.invoke(0).next(inc).next(half).next(inc).except(zero)", + make.invoke(0).next(inc).next(half).next(inc).except(zero).toString(), + "0" + ); + } +} \ No newline at end of file diff --git a/Lab5/cs2030s/fp/Actually.java b/Lab5/cs2030s/fp/Actually.java new file mode 100644 index 0000000..e69de29 diff --git a/Lab5/cs2030s/fp/Constant.java b/Lab5/cs2030s/fp/Constant.java new file mode 100644 index 0000000..e69de29 diff --git a/Lab5/cs2030s/fp/Transformer.java b/Lab5/cs2030s/fp/Transformer.java new file mode 100644 index 0000000..e69de29