Write a function to manipulate an array of housing listings based on dynamic filter criteria for Wunderflats.
Implement filter_listings(listings, filters). listings is a list of dictionaries, and filters maps field names to either an exact value or an operator dictionary containing min, max, or in. All supplied criteria must match, and missing fields must not match. Return a new list in the original order. An empty filter returns all listings.
def filter_listings(listings, filters):