def is_COP_strong_trampoline(self):
    '\n        :return boolean: Returns True if the gadget is a COP strong trampoline. Defined as a gadget that begins with a\n                         pop opcode, and contains at least one other pop operation. The last non-pop all operation must\n                         target the call target.\n        '
    first_instr = self.instructions[0]
    last_instr = self.instructions[(len(self.instructions) - 1)]
    call_target = Instruction.get_operand_register_family(last_instr.op1)
    if ((first_instr.opcode == 'pop') and ('[' not in first_instr.op1)):
        cnt_pops = 1
        last_pop_target = first_instr.op1
        for i in range(1, (len(self.instructions) - 1)):
            cur_instr = self.instructions[i]
            if cur_instr.opcode.startswith('popa'):
                cnt_pops += 1
            if ((cur_instr.opcode == 'pop') and ('[' not in cur_instr.op1)):
                cnt_pops += 1
                last_pop_target = cur_instr.op1
        if ((cnt_pops > 1) and (last_pop_target in Instruction.register_families[call_target])):
            return True
    return False
:return boolean: Returns True if the gadget is a COP strong trampoline. Defined as a gadget that begins with a
                 pop opcode, and contains at least one other pop operation. The last non-pop all operation must
                 target the call target.
def is_COP_strong_trampoline(self):
    '\n        :return boolean: Returns True if the gadget is a COP strong trampoline. Defined as a gadget that begins with a\n                         pop opcode, and contains at least one other pop operation. The last non-pop all operation must\n                         target the call target.\n        '
    first_instr = self.instructions[0]
    last_instr = self.instructions[(len(self.instructions) - 1)]
    call_target = Instruction.get_operand_register_family(last_instr.op1)
    if ((first_instr.opcode == 'pop') and ('[' not in first_instr.op1)):
        cnt_pops = 1
        last_pop_target = first_instr.op1
        for i in range(1, (len(self.instructions) - 1)):
            cur_instr = self.instructions[i]
            if cur_instr.opcode.startswith('popa'):
                cnt_pops += 1
            if ((cur_instr.opcode == 'pop') and ('[' not in cur_instr.op1)):
                cnt_pops += 1
                last_pop_target = cur_instr.op1
        if ((cnt_pops > 1) and (last_pop_target in Instruction.register_families[call_target])):
            return True
    return False