// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.pqc.crypto.snova;

class SnovaKeyElements
{
    public final MapGroup1 map1;
    public final byte[][][] T12;
    public final MapGroup2 map2;
    
    public SnovaKeyElements(final SnovaParameters snovaParameters) {
        final int o = snovaParameters.getO();
        final int v = snovaParameters.getV();
        final int lsq = snovaParameters.getLsq();
        this.map1 = new MapGroup1(snovaParameters);
        this.T12 = new byte[v][o][lsq];
        this.map2 = new MapGroup2(snovaParameters);
    }
    
    static int copy3d(final byte[][][] array, final byte[] array2, int n) {
        for (int i = 0; i < array.length; ++i) {
            for (int j = 0; j < array[i].length; ++j) {
                System.arraycopy(array[i][j], 0, array2, n, array[i][j].length);
                n += array[i][j].length;
            }
        }
        return n;
    }
    
    static int copy4d(final byte[][][][] array, final byte[] array2, int copy3d) {
        for (int i = 0; i < array.length; ++i) {
            copy3d = copy3d(array[i], array2, copy3d);
        }
        return copy3d;
    }
    
    static int copy3d(final byte[] array, int n, final byte[][][] array2) {
        for (int i = 0; i < array2.length; ++i) {
            for (int j = 0; j < array2[i].length; ++j) {
                System.arraycopy(array, n, array2[i][j], 0, array2[i][j].length);
                n += array2[i][j].length;
            }
        }
        return n;
    }
    
    static int copy4d(final byte[] array, int n, final byte[][][][] array2) {
        for (int i = 0; i < array2.length; ++i) {
            for (int j = 0; j < array2[i].length; ++j) {
                for (int k = 0; k < array2[i][j].length; ++k) {
                    System.arraycopy(array, n, array2[i][j][k], 0, array2[i][j][k].length);
                    n += array2[i][j][k].length;
                }
            }
        }
        return n;
    }
}
