             if searchNeutrons {
                 findNeutrons()
                 fseek(file, Int(position), SEEK_SET)
+                findNeutronsBack()
+                fseek(file, Int(position), SEEK_SET)
             }
             
             findSpecialEvents()

        search(directions: directions, startTime: firstFissionAlphaTime, minDeltaTime: 0, maxDeltaTime: maxNeutronTime, useCycleTime: false, updateCycleEvent: false) { (event: Event, time: CUnsignedLongLong, deltaTime: CLongLong, stop: UnsafeMutablePointer<Bool>) in
            if self.dataProtocol.Neutrons == Int(event.eventId) {
                self.neutronsSummPerAct += 1
            }
        }
    }

                        field = String(format: "%llu", neutronsSummPerAct)
                    }
                case 21:
                    if row == 0 && searchNeutrons {
                        field = String(format: "%llu", neutronsBackwardSummPerAct)
                    }
                case 22:
                    if row < gammaPerAct.count {
                        if let energy = getValueFrom(array: gammaPerAct, row: row, key: kEnergy) {
                            field = String(format: "%.7f", energy as! Double)
                        }
                    }
                case 23:
                    if row < gammaPerAct.count {
                        if let deltaTime = getValueFrom(array: gammaPerAct, row: row, key: kDeltaTime) {
                            field = String(format: "%lld", deltaTime as! CLongLong)
                        }
                    }
                case 24:
                    if row == 0 {
                        if let v = specialValue(0) {
                            field = String(format: "%hu", v)
                        }
                    }
                case 25:
                    if row == 0 {
                        if let v = specialValue(1) {
                            field = String(format: "%hu", v)
                        }
                    }
                case 26:
                    if row == 0 {
                        if let v = specialValue(2) {
                            field = String(format: "%hu", v)
                        }
                    }
                case 27:
                    if row < alpha2FrontPerAct.count {
                        if let eventNumber = getValueFrom(array: alpha2FrontPerAct, row: row, key: kEventNumber) {
                            field = currentFileEventNumber(eventNumber as! CUnsignedLongLong)
                        }
                    }
                case 28:
                    if row < alpha2FrontPerAct.count {
                        if let energy = getValueFrom(array: alpha2FrontPerAct, row: row, key: kEnergy) {
                            field = String(format: "%.7f", energy as! Double)
                        }
                    }
                case 29:
                    if row < alpha2FrontPerAct.count {
                        if let marker = getValueFrom(array: alpha2FrontPerAct, row: row, key: kMarker) {
                            field = String(format: "%hu", marker as! CUnsignedShort)
                        }
                    }
                case 30:
                    if row < alpha2FrontPerAct.count {
                        if let deltaTime = getValueFrom(array: alpha2FrontPerAct, row: row, key: kDeltaTime) {
                            field = String(format: "%lld", deltaTime as! CLongLong)
