Write a Python script to parse a CAN log file and extract specific diagnostic trouble codes (DTCs).
Implement extract_dtcs(log_lines, requested_dtcs), where log_lines is a list of log strings and requested_dtcs contains complete DTCs or prefixes such as P0. Decode only frames whose data begins with service byte 43; each following two-byte pair represents one DTC. Return matching DTCs once each, preserving their first-seen order, and ignore malformed or irrelevant lines.
def extract_dtcs(log_lines, requested_dtcs):