// Path: parser/src/main/java/io/lindstrom/mpd/data/Profile.java
// public enum Profile {
//     /**
//      * MPEG-DASH Full profile.
//      */
//     MPEG_DASH_FULL("urn:mpeg:dash:profile:full:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format On Demand profile.
//      */
//     MPEG_DASH_ON_DEMAND("urn:mpeg:dash:profile:isoff-on-demand:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format live profile.
//      */
//     MPEG_DASH_LIVE("urn:mpeg:dash:profile:isoff-live:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format main profile.
//      */
//     MPEG_DASH_MAIN("urn:mpeg:dash:profile:isoff-main:2011"),
// 
//     /**
//      * MPEG-DASH MPEG-2 TS main profile.
//      */
//     MPEG_DASH_MP2TS("urn:mpeg:dash:profile:mp2t-main:2011"),
// 
//     /**
//      * 	MPEG-DASH MPEG-2 TS simple profile.
//      */
//     MPEG_DASH_MP2TS_SIMPLE("urn:mpeg:dash:profile:mp2t-simple:2011"),
// 
//     /**
//      * 3GP-DASH Release-10 profile.
//      */
//     MPEG_DASH_3GP("urn:3GPP:PSS:profile:DASH10"),
// 
//     /**
//      * HbbTV 2.0 DASH profiles.
//      */
//     HBBTV201("urn:dvb:dash:profile:dvb-dash:2014"),
// 
//     /**
//      * HbbTV 1.5 DASH profiles.
//      */
//     HBBTV15("urn:hbbtv:dash:profile:isoff-live:2012");
// 
//     private final String identifier;
// 
//     Profile(String identifier) {
//         this.identifier = identifier;
//     }
// 
//     @Override
//     public String toString() {
//         return identifier;
//     }
// 
//     public static Profile fromIdentifier(String identifier) {
//         for (Profile profile : values()) {
//             if (profile.identifier.equals(identifier)) {
//                 return profile;
//             }
//         }
//         throw new IllegalArgumentException();
//     }
// }
// 
// Path: parser/src/main/java/io/lindstrom/mpd/data/Profiles.java
// @JsonSerialize(using = ProfilesSerializer.class)
// @JsonDeserialize(using = ProfilesDeserializer.class)
// public class Profiles {
//     private final List<Profile> profiles;
//     private final List<String> interoperabilityPointsAndExtensions;
// 
//     public Profiles(List<Profile> profiles, List<String> interoperabilityPointsAndExtensions) {
//         this.profiles = profiles;
//         this.interoperabilityPointsAndExtensions = interoperabilityPointsAndExtensions;
//     }
// 
//     Profiles() {
//         this.profiles = null;
//         this.interoperabilityPointsAndExtensions = null;
//     }
// 
//     public List<Profile> getProfiles() {
//         return Utils.unmodifiableList(profiles);
//     }
// 
//     public List<String> getInteroperabilityPointsAndExtensions() {
//         return Utils.unmodifiableList(interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         Profiles profiles1 = (Profiles) o;
//         return Objects.equals(profiles, profiles1.profiles) &&
//                 Objects.equals(interoperabilityPointsAndExtensions, profiles1.interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(profiles, interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public String toString() {
//         return "Profiles{" +
//                 "profiles=" + profiles +
//                 ", interoperabilityPointsAndExtensions=" + interoperabilityPointsAndExtensions +
//                 '}';
//     }
// 
//     public Builder buildUpon() {
//         return new Builder()
//                 .withProfiles(profiles)
//                 .withInteroperabilityPointsAndExtensions(interoperabilityPointsAndExtensions);
//     }
// 
//     public static Builder builder() {
//         return new Builder();
//     }
// 
//     public static class Builder {
//         private List<Profile> profiles;
//         private List<String> interoperabilityPointsAndExtensions;
// 
//         public Builder withProfiles(List<Profile> profiles) {
//             this.profiles = profiles;
//             return this;
//         }
// 
//         public Builder withInteroperabilityPointsAndExtensions(List<String> interoperabilityPointsAndExtensions) {
//             this.interoperabilityPointsAndExtensions = interoperabilityPointsAndExtensions;
//             return this;
//         }
// 
//         public Profiles build() {
//             return new Profiles(profiles, interoperabilityPointsAndExtensions);
//         }
//     }
// }


import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import io.lindstrom.mpd.data.Profile;
import io.lindstrom.mpd.data.Profiles;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
package io.lindstrom.mpd.support;



public class ProfilesDeserializer extends JsonDeserializer<Profiles> {
    @Override
// Path: parser/src/main/java/io/lindstrom/mpd/data/Profile.java
// public enum Profile {
//     /**
//      * MPEG-DASH Full profile.
//      */
//     MPEG_DASH_FULL("urn:mpeg:dash:profile:full:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format On Demand profile.
//      */
//     MPEG_DASH_ON_DEMAND("urn:mpeg:dash:profile:isoff-on-demand:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format live profile.
//      */
//     MPEG_DASH_LIVE("urn:mpeg:dash:profile:isoff-live:2011"),
// 
//     /**
//      * MPEG-DASH ISO Base media file format main profile.
//      */
//     MPEG_DASH_MAIN("urn:mpeg:dash:profile:isoff-main:2011"),
// 
//     /**
//      * MPEG-DASH MPEG-2 TS main profile.
//      */
//     MPEG_DASH_MP2TS("urn:mpeg:dash:profile:mp2t-main:2011"),
// 
//     /**
//      * 	MPEG-DASH MPEG-2 TS simple profile.
//      */
//     MPEG_DASH_MP2TS_SIMPLE("urn:mpeg:dash:profile:mp2t-simple:2011"),
// 
//     /**
//      * 3GP-DASH Release-10 profile.
//      */
//     MPEG_DASH_3GP("urn:3GPP:PSS:profile:DASH10"),
// 
//     /**
//      * HbbTV 2.0 DASH profiles.
//      */
//     HBBTV201("urn:dvb:dash:profile:dvb-dash:2014"),
// 
//     /**
//      * HbbTV 1.5 DASH profiles.
//      */
//     HBBTV15("urn:hbbtv:dash:profile:isoff-live:2012");
// 
//     private final String identifier;
// 
//     Profile(String identifier) {
//         this.identifier = identifier;
//     }
// 
//     @Override
//     public String toString() {
//         return identifier;
//     }
// 
//     public static Profile fromIdentifier(String identifier) {
//         for (Profile profile : values()) {
//             if (profile.identifier.equals(identifier)) {
//                 return profile;
//             }
//         }
//         throw new IllegalArgumentException();
//     }
// }
// 
// Path: parser/src/main/java/io/lindstrom/mpd/data/Profiles.java
// @JsonSerialize(using = ProfilesSerializer.class)
// @JsonDeserialize(using = ProfilesDeserializer.class)
// public class Profiles {
//     private final List<Profile> profiles;
//     private final List<String> interoperabilityPointsAndExtensions;
// 
//     public Profiles(List<Profile> profiles, List<String> interoperabilityPointsAndExtensions) {
//         this.profiles = profiles;
//         this.interoperabilityPointsAndExtensions = interoperabilityPointsAndExtensions;
//     }
// 
//     Profiles() {
//         this.profiles = null;
//         this.interoperabilityPointsAndExtensions = null;
//     }
// 
//     public List<Profile> getProfiles() {
//         return Utils.unmodifiableList(profiles);
//     }
// 
//     public List<String> getInteroperabilityPointsAndExtensions() {
//         return Utils.unmodifiableList(interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public boolean equals(Object o) {
//         if (this == o) return true;
//         if (o == null || getClass() != o.getClass()) return false;
//         Profiles profiles1 = (Profiles) o;
//         return Objects.equals(profiles, profiles1.profiles) &&
//                 Objects.equals(interoperabilityPointsAndExtensions, profiles1.interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public int hashCode() {
//         return Objects.hash(profiles, interoperabilityPointsAndExtensions);
//     }
// 
//     @Override
//     public String toString() {
//         return "Profiles{" +
//                 "profiles=" + profiles +
//                 ", interoperabilityPointsAndExtensions=" + interoperabilityPointsAndExtensions +
//                 '}';
//     }
// 
//     public Builder buildUpon() {
//         return new Builder()
//                 .withProfiles(profiles)
//                 .withInteroperabilityPointsAndExtensions(interoperabilityPointsAndExtensions);
//     }
// 
//     public static Builder builder() {
//         return new Builder();
//     }
// 
//     public static class Builder {
//         private List<Profile> profiles;
//         private List<String> interoperabilityPointsAndExtensions;
// 
//         public Builder withProfiles(List<Profile> profiles) {
//             this.profiles = profiles;
//             return this;
//         }
// 
//         public Builder withInteroperabilityPointsAndExtensions(List<String> interoperabilityPointsAndExtensions) {
//             this.interoperabilityPointsAndExtensions = interoperabilityPointsAndExtensions;
//             return this;
//         }
// 
//         public Profiles build() {
//             return new Profiles(profiles, interoperabilityPointsAndExtensions);
//         }
//     }
// }


// Path: parser/src/main/java/io/lindstrom/mpd/support/ProfilesDeserializer.java
import com.fasterxml.jackson.core.JsonParser;
import com.fasterxml.jackson.databind.DeserializationContext;
import com.fasterxml.jackson.databind.JsonDeserializer;
import io.lindstrom.mpd.data.Profile;
import io.lindstrom.mpd.data.Profiles;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

package io.lindstrom.mpd.support;



public class ProfilesDeserializer extends JsonDeserializer<Profiles> {
    @Override
    public Profiles deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {