private static boolean equals(String key, String[] a, boolean print) {
        String[] b = key.split("/");
        if (b.length != a.length)
            return false;
        char[][] squareMatrix = getMatrix(a);
        char[][] ruleMatrix = getMatrix(b);
        char[][] reversedRuleMatrix = flip(ruleMatrix);

        for (int i = 0; i < 4; i++) {
            boolean found = true;
            for (int j = 0; j < squareMatrix.length; j++) {
                if (j >= squareMatrix.length || j >= ruleMatrix.length) {
                    System.out.println("hah");
                }
                if (!Arrays.equals(squareMatrix[j], ruleMatrix[j])) {
                    found = false;
                }
            }
            if (found)
                return true;

            found = true;
            for (int j = 0; j < squareMatrix.length; j++) {
                if (!Arrays.equals(squareMatrix[j], reversedRuleMatrix[j])) {
                    found = false;
                }
            }
            if (found)
                return true;

            rotate(ruleMatrix);
            rotate(reversedRuleMatrix);
        }

        return false;

    }
Why Did you create this class? what does it do?
src/adventofcode/FractalArt_21.java