def apply_FAA(self, filtered_operators, original_data_dict, item,
                  operator):
        temp_data_dict = original_data_dict.copy()
        call("./compilation_scripts/unzip.sh")
        components = re.findall(
            r'([^=]+)((?<!=)=(?!=))(?:^|\W)(.*)(palloc0)(?:$|\W)(.*)', item[2])
        components2 = re.findall(
            r'([^=]+)((?<!=)=(?!=))(?:^|\W)(.*)(palloc)(?:$|\W)(.*)', item[2])
        if components:
            selected = components
        else:
            selected = components2
        if not selected:
            return None
        selected = list(selected[0])
        selected = self.FAA_schemata(selected)
        temp_mutant = ''.join(selected)

        temp_data_dict[item[1]] = temp_mutant
        db_obj.updateMutatedLine(item[0], temp_mutant)

        flag = 1
        write_to_disc(temp_data_dict, item[6], item[0], self.mutantSourcesDir,
                      flag)

        print(
            "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        )
        print("Mutation of ========> {original} =====to====> {mutated}".format(
            original=item[2], mutated=temp_mutant))
        print(
            "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
        )

        kill_flag = False
        for line in runProcess('./compilation_scripts/grep-exec.sh'.split()):
            # print(line)
            if re.findall(r'\b(FAILED)\b', str(line)) or re.findall(
                    r'\b(failed 1 among)\b', str(line)):
                print('Mutant Killed!')
                kill_flag = True
                break

        print('Mutant Killed!')
        if kill_flag:
            self.FAA_COUNTER_killed += 1
            db_obj.updateMstatus(item[0], 'killed')
        else:
            self.FAA_COUNTER_alive += 1
            db_obj.update(item[0], 1)
            db_obj.updateMstatus(item[0], 'alive')

            flag = 2
            write_to_disc(original_data_dict, item[4], item[0],
                          self.targetCleanDir, flag)

            write_to_disc(temp_data_dict, item[4], item[0],
                          self.targetBuggyDir, flag)
    def apply_RMFS(self, filtered_operators, original_data_dict, item,
                   operator):
        temp_data_dict = original_data_dict.copy()
        call("./compilation_scripts/unzip.sh")
        components = re.findall(r'(?:^|\W)(free)(?:$|\W)(.*)', item[2])
        components2 = re.findall(r'(?:^|\W)(pfree)(?:$|\W)(.*)', item[2])
        if components or components2:

            del temp_data_dict[item[1]]

            flag = 1

            write_to_disc(temp_data_dict, item[6], item[0],
                          self.mutantSourcesDir, flag)

            print(
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            )
            print("Mutation of ========> {original} =====to====> {mutated}".
                  format(original=item[2], mutated=temp_mutant))
            print(
                "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"
            )

            kill_flag = False
            for line in runProcess(
                    './compilation_scripts/grep-exec.sh'.split()):
                # print(line)
                if re.findall(r'\b(FAILED)\b', str(line)) or re.findall(
                        r'\b(failed 1 among)\b', str(line)):
                    kill_flag = True
                    print('Mutant Killed!')
                    break

            if kill_flag:
                self.RMFS_COUNTER_killed += 1
                db_obj.updateMstatus(item[0], 'killed')
            else:
                self.RMFS_COUNTER_alive += 1
                db_obj.update(item[0], 1)
                db_obj.updateMstatus(item[0], 'alive')

                flag = 2

                write_to_disc(original_data_dict, item[4], item[0],
                              self.targetCleanDir, flag)

                write_to_disc(temp_data_dict, item[4], item[0],
                              self.targetBuggyDir, flag)