private void connectPrepOnToRule(int inst, int ruleStart, CABot3Net ruleNet) {
    int fromStart = inst * nInstCASize;
    for (int neuron = 61; neuron < 80; neuron++) {
      int fromNeuron = neuron + fromStart;
      if (!neurons[fromNeuron].isInhibitory()) {
        for (int synapse = 0; synapse < 7; synapse++) { // 16 neurons to 50*2
          int toNeuron = (neuron - 60); // 1-4, 6-9, 11-14 16-19
          toNeuron -= (toNeuron / 5) + 1; // 0-15
          if (toNeuron < 8) {
            toNeuron %= 4; //
            toNeuron = (toNeuron * 7) + synapse;// 0-27
            toNeuron = ((toNeuron / 5) * 10) + (toNeuron % 5); // 0..4,10..14,
            if (toNeuron >= 50)
              toNeuron = 101;
          } else {
            toNeuron %= 4; //
            toNeuron = (toNeuron * 7) + synapse;// 0-27
            toNeuron = ((toNeuron / 5) * 10) + (toNeuron % 5); // 0..4,10..14,
            if (toNeuron >= 50)
              toNeuron = 101;
            toNeuron += 50; // 50..54, 60..64..
          }
          if (toNeuron < 100) {
            toNeuron += ruleStart;// VPVPPPLoc offset
            neurons[fromNeuron].addConnection(ruleNet.neurons[toNeuron], .5);
          }
        }
      }
    }
  }