%% Created automatically by XML generator (fxml_gen.erl) %% Source: xmpp_codec.spec -module(xmpp_codec). -compile({nowarn_unused_function, [{dec_int, 3}, {dec_int, 1}, {dec_enum, 2}, {enc_int, 1}, {get_attr, 2}, {enc_enum, 1}, {choose_top_xmlns, 3}, {enc_xmlns_attrs, 2}]}). -export([pp/1, format_error/1, decode/1, decode/2, decode/3, is_known_tag/2, encode/1, encode/2, get_name/1, get_ns/1]). decode(_el) -> decode(_el, <<>>, []). decode(_el, Opts) -> decode(_el, <<>>, Opts). decode({xmlel, _name, _attrs, _} = _el, TopXMLNS, Opts) -> IgnoreEls = proplists:get_bool(ignore_els, Opts), case {_name, get_attr(<<"xmlns">>, _attrs), TopXMLNS} of {<<"query">>, <<"urn:xmpp:delegation:1">>, _} -> decode_delegation_query(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"urn:xmpp:delegation:1">>} -> decode_delegation_query(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegate">>, <<"urn:xmpp:delegation:1">>, _} -> decode_delegate(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegate">>, <<>>, <<"urn:xmpp:delegation:1">>} -> decode_delegate(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegation">>, <<"urn:xmpp:delegation:1">>, _} -> decode_delegation(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegation">>, <<>>, <<"urn:xmpp:delegation:1">>} -> decode_delegation(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegated">>, <<"urn:xmpp:delegation:1">>, _} -> decode_delegated(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"delegated">>, <<>>, <<"urn:xmpp:delegation:1">>} -> decode_delegated(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"attribute">>, <<"urn:xmpp:delegation:1">>, _} -> decode_delegated_attribute(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"attribute">>, <<>>, <<"urn:xmpp:delegation:1">>} -> decode_delegated_attribute(<<"urn:xmpp:delegation:1">>, IgnoreEls, _el); {<<"privilege">>, <<"urn:xmpp:privilege:1">>, _} -> decode_privilege(<<"urn:xmpp:privilege:1">>, IgnoreEls, _el); {<<"privilege">>, <<>>, <<"urn:xmpp:privilege:1">>} -> decode_privilege(<<"urn:xmpp:privilege:1">>, IgnoreEls, _el); {<<"perm">>, <<"urn:xmpp:privilege:1">>, _} -> decode_privilege_perm(<<"urn:xmpp:privilege:1">>, IgnoreEls, _el); {<<"perm">>, <<>>, <<"urn:xmpp:privilege:1">>} -> decode_privilege_perm(<<"urn:xmpp:privilege:1">>, IgnoreEls, _el); {<<"thumbnail">>, <<"urn:xmpp:thumbs:1">>, _} -> decode_thumbnail(<<"urn:xmpp:thumbs:1">>, IgnoreEls, _el); {<<"thumbnail">>, <<>>, <<"urn:xmpp:thumbs:1">>} -> decode_thumbnail(<<"urn:xmpp:thumbs:1">>, IgnoreEls, _el); {<<"slot">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_slot(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"slot">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_slot(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"slot">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_slot(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"slot">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_slot(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"put">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_put(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"put">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_put(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"put">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_put(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"put">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_put(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"get">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_get(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"get">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_get(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"get">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_get(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"get">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_get(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"request">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_request(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"request">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_request(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"request">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_request(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"request">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_request(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"content-type">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_content_type(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"content-type">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_content_type(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"content-type">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_content_type(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"content-type">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_content_type(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"size">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_size(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"size">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_size(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"size">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_size(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"size">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_size(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"filename">>, <<"urn:xmpp:http:upload">>, _} -> decode_upload_filename(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"filename">>, <<>>, <<"urn:xmpp:http:upload">>} -> decode_upload_filename(<<"urn:xmpp:http:upload">>, IgnoreEls, _el); {<<"filename">>, <<"eu:siacs:conversations:http:upload">>, _} -> decode_upload_filename(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"filename">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> decode_upload_filename(<<"eu:siacs:conversations:http:upload">>, IgnoreEls, _el); {<<"address">>, <<"urn:xmpp:sic:0">>, _} -> decode_sic(<<"urn:xmpp:sic:0">>, IgnoreEls, _el); {<<"address">>, <<>>, <<"urn:xmpp:sic:0">>} -> decode_sic(<<"urn:xmpp:sic:0">>, IgnoreEls, _el); {<<"address">>, <<"urn:xmpp:sic:1">>, _} -> decode_sic(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"address">>, <<>>, <<"urn:xmpp:sic:1">>} -> decode_sic(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"port">>, <<"urn:xmpp:sic:1">>, _} -> decode_sip_port(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"port">>, <<>>, <<"urn:xmpp:sic:1">>} -> decode_sip_port(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"ip">>, <<"urn:xmpp:sic:0">>, _} -> decode_sic_ip(<<"urn:xmpp:sic:0">>, IgnoreEls, _el); {<<"ip">>, <<>>, <<"urn:xmpp:sic:0">>} -> decode_sic_ip(<<"urn:xmpp:sic:0">>, IgnoreEls, _el); {<<"ip">>, <<"urn:xmpp:sic:1">>, _} -> decode_sic_ip(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"ip">>, <<>>, <<"urn:xmpp:sic:1">>} -> decode_sic_ip(<<"urn:xmpp:sic:1">>, IgnoreEls, _el); {<<"x">>, <<"jabber:x:oob">>, _} -> decode_oob_x(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"jabber:x:oob">>} -> decode_oob_x(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"desc">>, <<"jabber:x:oob">>, _} -> decode_oob_desc(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"desc">>, <<>>, <<"jabber:x:oob">>} -> decode_oob_desc(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"url">>, <<"jabber:x:oob">>, _} -> decode_oob_url(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"url">>, <<>>, <<"jabber:x:oob">>} -> decode_oob_url(<<"jabber:x:oob">>, IgnoreEls, _el); {<<"media">>, <<"urn:xmpp:media-element">>, _} -> decode_media(<<"urn:xmpp:media-element">>, IgnoreEls, _el); {<<"media">>, <<>>, <<"urn:xmpp:media-element">>} -> decode_media(<<"urn:xmpp:media-element">>, IgnoreEls, _el); {<<"uri">>, <<"urn:xmpp:media-element">>, _} -> decode_media_uri(<<"urn:xmpp:media-element">>, IgnoreEls, _el); {<<"uri">>, <<>>, <<"urn:xmpp:media-element">>} -> decode_media_uri(<<"urn:xmpp:media-element">>, IgnoreEls, _el); {<<"captcha">>, <<"urn:xmpp:captcha">>, _} -> decode_captcha(<<"urn:xmpp:captcha">>, IgnoreEls, _el); {<<"captcha">>, <<>>, <<"urn:xmpp:captcha">>} -> decode_captcha(<<"urn:xmpp:captcha">>, IgnoreEls, _el); {<<"data">>, <<"urn:xmpp:bob">>, _} -> decode_bob_data(<<"urn:xmpp:bob">>, IgnoreEls, _el); {<<"data">>, <<>>, <<"urn:xmpp:bob">>} -> decode_bob_data(<<"urn:xmpp:bob">>, IgnoreEls, _el); {<<"stream:stream">>, <<"jabber:client">>, _} -> decode_stream_start(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:stream">>, <<>>, <<"jabber:client">>} -> decode_stream_start(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:stream">>, <<"jabber:server">>, _} -> decode_stream_start(<<"jabber:server">>, IgnoreEls, _el); {<<"stream:stream">>, <<>>, <<"jabber:server">>} -> decode_stream_start(<<"jabber:server">>, IgnoreEls, _el); {<<"stream:stream">>, <<"jabber:component:accept">>, _} -> decode_stream_start(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"stream:stream">>, <<>>, <<"jabber:component:accept">>} -> decode_stream_start(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"handshake">>, <<"jabber:component:accept">>, _} -> decode_handshake(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"handshake">>, <<>>, <<"jabber:component:accept">>} -> decode_handshake(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"db:verify">>, <<"jabber:server">>, _} -> decode_db_verify(<<"jabber:server">>, IgnoreEls, _el); {<<"db:verify">>, <<>>, <<"jabber:server">>} -> decode_db_verify(<<"jabber:server">>, IgnoreEls, _el); {<<"db:result">>, <<"jabber:server">>, _} -> decode_db_result(<<"jabber:server">>, IgnoreEls, _el); {<<"db:result">>, <<>>, <<"jabber:server">>} -> decode_db_result(<<"jabber:server">>, IgnoreEls, _el); {<<"command">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"command">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"note">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command_notes(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"note">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command_notes(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"actions">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command_actions(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"actions">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command_actions(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"complete">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command_complete(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"complete">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command_complete(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"next">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command_next(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"next">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command_next(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"prev">>, <<"http://jabber.org/protocol/commands">>, _} -> decode_adhoc_command_prev(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"prev">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> decode_adhoc_command_prev(<<"http://jabber.org/protocol/commands">>, IgnoreEls, _el); {<<"client-id">>, <<"urn:xmpp:sid:0">>, _} -> decode_client_id(<<"urn:xmpp:sid:0">>, IgnoreEls, _el); {<<"client-id">>, <<>>, <<"urn:xmpp:sid:0">>} -> decode_client_id(<<"urn:xmpp:sid:0">>, IgnoreEls, _el); {<<"stanza-id">>, <<"urn:xmpp:sid:0">>, _} -> decode_stanza_id(<<"urn:xmpp:sid:0">>, IgnoreEls, _el); {<<"stanza-id">>, <<>>, <<"urn:xmpp:sid:0">>} -> decode_stanza_id(<<"urn:xmpp:sid:0">>, IgnoreEls, _el); {<<"addresses">>, <<"http://jabber.org/protocol/address">>, _} -> decode_addresses(<<"http://jabber.org/protocol/address">>, IgnoreEls, _el); {<<"addresses">>, <<>>, <<"http://jabber.org/protocol/address">>} -> decode_addresses(<<"http://jabber.org/protocol/address">>, IgnoreEls, _el); {<<"address">>, <<"http://jabber.org/protocol/address">>, _} -> decode_address(<<"http://jabber.org/protocol/address">>, IgnoreEls, _el); {<<"address">>, <<>>, <<"http://jabber.org/protocol/address">>} -> decode_address(<<"http://jabber.org/protocol/address">>, IgnoreEls, _el); {<<"nick">>, <<"http://jabber.org/protocol/nick">>, _} -> decode_nick(<<"http://jabber.org/protocol/nick">>, IgnoreEls, _el); {<<"nick">>, <<>>, <<"http://jabber.org/protocol/nick">>} -> decode_nick(<<"http://jabber.org/protocol/nick">>, IgnoreEls, _el); {<<"x">>, <<"jabber:x:expire">>, _} -> decode_expire(<<"jabber:x:expire">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"jabber:x:expire">>} -> decode_expire(<<"jabber:x:expire">>, IgnoreEls, _el); {<<"x">>, <<"jabber:x:event">>, _} -> decode_xevent(<<"jabber:x:event">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"jabber:x:event">>} -> decode_xevent(<<"jabber:x:event">>, IgnoreEls, _el); {<<"id">>, <<"jabber:x:event">>, _} -> decode_xevent_id(<<"jabber:x:event">>, IgnoreEls, _el); {<<"id">>, <<>>, <<"jabber:x:event">>} -> decode_xevent_id(<<"jabber:x:event">>, IgnoreEls, _el); {<<"composing">>, <<"jabber:x:event">>, _} -> decode_xevent_composing(<<"jabber:x:event">>, IgnoreEls, _el); {<<"composing">>, <<>>, <<"jabber:x:event">>} -> decode_xevent_composing(<<"jabber:x:event">>, IgnoreEls, _el); {<<"displayed">>, <<"jabber:x:event">>, _} -> decode_xevent_displayed(<<"jabber:x:event">>, IgnoreEls, _el); {<<"displayed">>, <<>>, <<"jabber:x:event">>} -> decode_xevent_displayed(<<"jabber:x:event">>, IgnoreEls, _el); {<<"delivered">>, <<"jabber:x:event">>, _} -> decode_xevent_delivered(<<"jabber:x:event">>, IgnoreEls, _el); {<<"delivered">>, <<>>, <<"jabber:x:event">>} -> decode_xevent_delivered(<<"jabber:x:event">>, IgnoreEls, _el); {<<"offline">>, <<"jabber:x:event">>, _} -> decode_xevent_offline(<<"jabber:x:event">>, IgnoreEls, _el); {<<"offline">>, <<>>, <<"jabber:x:event">>} -> decode_xevent_offline(<<"jabber:x:event">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:search">>, _} -> decode_search(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:search">>} -> decode_search(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"item">>, <<"jabber:iq:search">>, _} -> decode_search_item(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"jabber:iq:search">>} -> decode_search_item(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"email">>, <<"jabber:iq:search">>, _} -> decode_search_email(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"email">>, <<>>, <<"jabber:iq:search">>} -> decode_search_email(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"nick">>, <<"jabber:iq:search">>, _} -> decode_search_nick(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"nick">>, <<>>, <<"jabber:iq:search">>} -> decode_search_nick(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"last">>, <<"jabber:iq:search">>, _} -> decode_search_last(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"last">>, <<>>, <<"jabber:iq:search">>} -> decode_search_last(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"first">>, <<"jabber:iq:search">>, _} -> decode_search_first(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"first">>, <<>>, <<"jabber:iq:search">>} -> decode_search_first(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"instructions">>, <<"jabber:iq:search">>, _} -> decode_search_instructions(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"instructions">>, <<>>, <<"jabber:iq:search">>} -> decode_search_instructions(<<"jabber:iq:search">>, IgnoreEls, _el); {<<"no-permanent-storage">>, <<"urn:xmpp:hints">>, _} -> decode_hint_no_permanent_storage(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-permanent-storage">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_no_permanent_storage(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-permanent-store">>, <<"urn:xmpp:hints">>, _} -> decode_hint_no_permanent_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-permanent-store">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_no_permanent_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"store">>, <<"urn:xmpp:hints">>, _} -> decode_hint_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"store">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-storage">>, <<"urn:xmpp:hints">>, _} -> decode_hint_no_storage(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-storage">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_no_storage(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-store">>, <<"urn:xmpp:hints">>, _} -> decode_hint_no_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-store">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_no_store(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-copy">>, <<"urn:xmpp:hints">>, _} -> decode_hint_no_copy(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"no-copy">>, <<>>, <<"urn:xmpp:hints">>} -> decode_hint_no_copy(<<"urn:xmpp:hints">>, IgnoreEls, _el); {<<"participant">>, <<"urn:xmpp:mix:0">>, _} -> decode_mix_participant(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"participant">>, <<>>, <<"urn:xmpp:mix:0">>} -> decode_mix_participant(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"leave">>, <<"urn:xmpp:mix:0">>, _} -> decode_mix_leave(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"leave">>, <<>>, <<"urn:xmpp:mix:0">>} -> decode_mix_leave(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"join">>, <<"urn:xmpp:mix:0">>, _} -> decode_mix_join(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"join">>, <<>>, <<"urn:xmpp:mix:0">>} -> decode_mix_join(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"subscribe">>, <<"urn:xmpp:mix:0">>, _} -> decode_mix_subscribe(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"subscribe">>, <<>>, <<"urn:xmpp:mix:0">>} -> decode_mix_subscribe(<<"urn:xmpp:mix:0">>, IgnoreEls, _el); {<<"offline">>, <<"http://jabber.org/protocol/offline">>, _} -> decode_offline(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"offline">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> decode_offline(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/offline">>, _} -> decode_offline_item(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> decode_offline_item(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"fetch">>, <<"http://jabber.org/protocol/offline">>, _} -> decode_offline_fetch(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"fetch">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> decode_offline_fetch(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"purge">>, <<"http://jabber.org/protocol/offline">>, _} -> decode_offline_purge(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"purge">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> decode_offline_purge(<<"http://jabber.org/protocol/offline">>, IgnoreEls, _el); {<<"failed">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_failed(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"failed">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_failed(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"failed">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_failed(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"failed">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_failed(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"a">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_a(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"a">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_a(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"a">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_a(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"a">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_a(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"r">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_r(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"r">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_r(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"r">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_r(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"r">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_r(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"resumed">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_resumed(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"resumed">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_resumed(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"resumed">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_resumed(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"resumed">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_resumed(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"resume">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_resume(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"resume">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_resume(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"resume">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_resume(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"resume">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_resume(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"enabled">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_enabled(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"enabled">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_enabled(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"enabled">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_enabled(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"enabled">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_enabled(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"enable">>, <<"urn:xmpp:sm:2">>, _} -> decode_sm_enable(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"enable">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_sm_enable(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"enable">>, <<"urn:xmpp:sm:3">>, _} -> decode_sm_enable(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"enable">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_sm_enable(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"sm">>, <<"urn:xmpp:sm:2">>, _} -> decode_feature_sm(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"sm">>, <<>>, <<"urn:xmpp:sm:2">>} -> decode_feature_sm(<<"urn:xmpp:sm:2">>, IgnoreEls, _el); {<<"sm">>, <<"urn:xmpp:sm:3">>, _} -> decode_feature_sm(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"sm">>, <<>>, <<"urn:xmpp:sm:3">>} -> decode_feature_sm(<<"urn:xmpp:sm:3">>, IgnoreEls, _el); {<<"inactive">>, <<"urn:xmpp:csi:0">>, _} -> decode_csi_inactive(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"inactive">>, <<>>, <<"urn:xmpp:csi:0">>} -> decode_csi_inactive(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"active">>, <<"urn:xmpp:csi:0">>, _} -> decode_csi_active(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"active">>, <<>>, <<"urn:xmpp:csi:0">>} -> decode_csi_active(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"csi">>, <<"urn:xmpp:csi:0">>, _} -> decode_feature_csi(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"csi">>, <<>>, <<"urn:xmpp:csi:0">>} -> decode_feature_csi(<<"urn:xmpp:csi:0">>, IgnoreEls, _el); {<<"sent">>, <<"urn:xmpp:carbons:2">>, _} -> decode_carbons_sent(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"sent">>, <<>>, <<"urn:xmpp:carbons:2">>} -> decode_carbons_sent(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"received">>, <<"urn:xmpp:carbons:2">>, _} -> decode_carbons_received(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"received">>, <<>>, <<"urn:xmpp:carbons:2">>} -> decode_carbons_received(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"private">>, <<"urn:xmpp:carbons:2">>, _} -> decode_carbons_private(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"private">>, <<>>, <<"urn:xmpp:carbons:2">>} -> decode_carbons_private(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"enable">>, <<"urn:xmpp:carbons:2">>, _} -> decode_carbons_enable(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"enable">>, <<>>, <<"urn:xmpp:carbons:2">>} -> decode_carbons_enable(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"disable">>, <<"urn:xmpp:carbons:2">>, _} -> decode_carbons_disable(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"disable">>, <<>>, <<"urn:xmpp:carbons:2">>} -> decode_carbons_disable(<<"urn:xmpp:carbons:2">>, IgnoreEls, _el); {<<"forwarded">>, <<"urn:xmpp:forward:0">>, _} -> decode_forwarded(<<"urn:xmpp:forward:0">>, IgnoreEls, _el); {<<"forwarded">>, <<>>, <<"urn:xmpp:forward:0">>} -> decode_forwarded(<<"urn:xmpp:forward:0">>, IgnoreEls, _el); {<<"fin">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_fin(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"fin">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_fin(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"fin">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_fin(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"fin">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_fin(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"prefs">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_prefs(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"prefs">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_prefs(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"prefs">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_prefs(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"prefs">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_prefs(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"prefs">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_prefs(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"prefs">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_prefs(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"always">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_always(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"always">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_always(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"always">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_always(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"always">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_always(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"always">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_always(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"always">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_always(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"never">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_never(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"never">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_never(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"never">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_never(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"never">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_never(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"never">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_never(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"never">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_never(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"jid">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_jid(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"jid">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_jid(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"jid">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_jid(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"jid">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_jid(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"jid">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_jid(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"jid">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_jid(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"result">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_result(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"result">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_result(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"result">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_result(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"result">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_result(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"result">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_result(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"result">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_result(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"archived">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_archived(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"archived">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_archived(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"query">>, <<"urn:xmpp:mam:0">>, _} -> decode_mam_query(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"urn:xmpp:mam:0">>} -> decode_mam_query(<<"urn:xmpp:mam:0">>, IgnoreEls, _el); {<<"query">>, <<"urn:xmpp:mam:1">>, _} -> decode_mam_query(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"urn:xmpp:mam:1">>} -> decode_mam_query(<<"urn:xmpp:mam:1">>, IgnoreEls, _el); {<<"query">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_query(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_query(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"withtext">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_withtext(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"withtext">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_withtext(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"with">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_with(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"with">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_with(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"end">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_end(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"end">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_end(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"start">>, <<"urn:xmpp:mam:tmp">>, _} -> decode_mam_start(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"start">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> decode_mam_start(<<"urn:xmpp:mam:tmp">>, IgnoreEls, _el); {<<"set">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"set">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"first">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_first(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"first">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_first(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"max">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_max(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"max">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_max(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"index">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_index(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"index">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_index(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"count">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_count(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"count">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_count(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"last">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_last(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"last">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_last(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"before">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_before(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"before">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_before(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"after">>, <<"http://jabber.org/protocol/rsm">>, _} -> decode_rsm_after(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"after">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> decode_rsm_after(<<"http://jabber.org/protocol/rsm">>, IgnoreEls, _el); {<<"unsubscribe">>, <<"urn:xmpp:mucsub:0">>, _} -> decode_muc_unsubscribe(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"unsubscribe">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> decode_muc_unsubscribe(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscribe">>, <<"urn:xmpp:mucsub:0">>, _} -> decode_muc_subscribe(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscribe">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> decode_muc_subscribe(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"event">>, <<"urn:xmpp:mucsub:0">>, _} -> decode_muc_subscribe_event(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"event">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> decode_muc_subscribe_event(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscriptions">>, <<"urn:xmpp:mucsub:0">>, _} -> decode_muc_subscriptions(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscriptions">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> decode_muc_subscriptions(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscription">>, <<"urn:xmpp:mucsub:0">>, _} -> decode_muc_subscription(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"subscription">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> decode_muc_subscription(<<"urn:xmpp:mucsub:0">>, IgnoreEls, _el); {<<"x">>, <<"jabber:x:conference">>, _} -> decode_x_conference(<<"jabber:x:conference">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"jabber:x:conference">>} -> decode_x_conference(<<"jabber:x:conference">>, IgnoreEls, _el); {<<"unique">>, <<"http://jabber.org/protocol/muc#unique">>, _} -> decode_muc_unique(<<"http://jabber.org/protocol/muc#unique">>, IgnoreEls, _el); {<<"unique">>, <<>>, <<"http://jabber.org/protocol/muc#unique">>} -> decode_muc_unique(<<"http://jabber.org/protocol/muc#unique">>, IgnoreEls, _el); {<<"x">>, <<"http://jabber.org/protocol/muc">>, _} -> decode_muc(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> decode_muc(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> decode_muc_admin(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> decode_muc_admin(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"continue">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> decode_muc_admin_continue(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"continue">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> decode_muc_admin_continue(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"actor">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> decode_muc_admin_actor(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"actor">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> decode_muc_admin_actor(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> decode_muc_admin_item(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> decode_muc_admin_item(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> decode_muc_owner_item(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> decode_muc_owner_item(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> decode_muc_owner(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> decode_muc_owner(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"password">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> decode_muc_password(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> decode_muc_password(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"password">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_password(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_password(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"password">>, <<"http://jabber.org/protocol/muc">>, _} -> decode_muc_password(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> decode_muc_password(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"x">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_item(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_item(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"status">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_status(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"status">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_status(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"continue">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_continue(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"continue">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_continue(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"actor">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_actor(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"actor">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_actor(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"invite">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_invite(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"invite">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_invite(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"destroy">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_destroy(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"destroy">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_destroy(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"destroy">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> decode_muc_destroy(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"destroy">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> decode_muc_destroy(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"decline">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_user_decline(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"decline">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_user_decline(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#user">>, _} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, IgnoreEls, _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, IgnoreEls, _el); {<<"reason">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, IgnoreEls, _el); {<<"history">>, <<"http://jabber.org/protocol/muc">>, _} -> decode_muc_history(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"history">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> decode_muc_history(<<"http://jabber.org/protocol/muc">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> decode_bytestreams(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> decode_bytestreams(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"activate">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> decode_bytestreams_activate(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"activate">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> decode_bytestreams_activate(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"streamhost-used">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> decode_bytestreams_streamhost_used(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"streamhost-used">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> decode_bytestreams_streamhost_used(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"streamhost">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> decode_bytestreams_streamhost(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"streamhost">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> decode_bytestreams_streamhost(<<"http://jabber.org/protocol/bytestreams">>, IgnoreEls, _el); {<<"delay">>, <<"urn:xmpp:delay">>, _} -> decode_delay(<<"urn:xmpp:delay">>, IgnoreEls, _el); {<<"delay">>, <<>>, <<"urn:xmpp:delay">>} -> decode_delay(<<"urn:xmpp:delay">>, IgnoreEls, _el); {<<"paused">>, <<"http://jabber.org/protocol/chatstates">>, _} -> decode_chatstate_paused(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"paused">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> decode_chatstate_paused(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"inactive">>, <<"http://jabber.org/protocol/chatstates">>, _} -> decode_chatstate_inactive(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"inactive">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> decode_chatstate_inactive(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"gone">>, <<"http://jabber.org/protocol/chatstates">>, _} -> decode_chatstate_gone(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"gone">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> decode_chatstate_gone(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"composing">>, <<"http://jabber.org/protocol/chatstates">>, _} -> decode_chatstate_composing(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"composing">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> decode_chatstate_composing(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"active">>, <<"http://jabber.org/protocol/chatstates">>, _} -> decode_chatstate_active(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"active">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> decode_chatstate_active(<<"http://jabber.org/protocol/chatstates">>, IgnoreEls, _el); {<<"headers">>, <<"http://jabber.org/protocol/shim">>, _} -> decode_shim_headers(<<"http://jabber.org/protocol/shim">>, IgnoreEls, _el); {<<"headers">>, <<>>, <<"http://jabber.org/protocol/shim">>} -> decode_shim_headers(<<"http://jabber.org/protocol/shim">>, IgnoreEls, _el); {<<"header">>, <<"http://jabber.org/protocol/shim">>, _} -> decode_shim_header(<<"http://jabber.org/protocol/shim">>, IgnoreEls, _el); {<<"header">>, <<>>, <<"http://jabber.org/protocol/shim">>} -> decode_shim_header(<<"http://jabber.org/protocol/shim">>, IgnoreEls, _el); {<<"unsupported-access-model">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_unsupported_access_model(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"unsupported-access-model">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_unsupported_access_model(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"unsupported">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_unsupported(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"unsupported">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_unsupported(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"too-many-subscriptions">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_too_many_subscriptions(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"too-many-subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_too_many_subscriptions(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"subid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_subid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"subid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_subid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"presence-subscription-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_presence_subscription_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"presence-subscription-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_presence_subscription_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"pending-subscription">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_pending_subscription(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"pending-subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_pending_subscription(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"payload-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_payload_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"payload-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_payload_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"payload-too-big">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_payload_too_big(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"payload-too-big">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_payload_too_big(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"not-subscribed">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_not_subscribed(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"not-subscribed">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_not_subscribed(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"not-in-roster-group">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_not_in_roster_group(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"not-in-roster-group">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_not_in_roster_group(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"nodeid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_nodeid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"nodeid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_nodeid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"max-nodes-exceeded">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_max_nodes_exceeded(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"max-nodes-exceeded">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_max_nodes_exceeded(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"max-items-exceeded">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_max_items_exceeded(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"max-items-exceeded">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_max_items_exceeded(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"jid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_jid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"jid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_jid_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"item-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_item_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"item-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_item_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"item-forbidden">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_item_forbidden(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"item-forbidden">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_item_forbidden(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-subid">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_invalid_subid(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-subid">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_invalid_subid(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-payload">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_invalid_payload(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-payload">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_invalid_payload(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-options">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_invalid_options(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-options">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_invalid_options(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-jid">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_invalid_jid(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"invalid-jid">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_invalid_jid(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"configuration-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_configuration_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"configuration-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_configuration_required(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"closed-node">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> decode_pubsub_error_closed_node(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"closed-node">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> decode_pubsub_error_closed_node(<<"http://jabber.org/protocol/pubsub#errors">>, IgnoreEls, _el); {<<"pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_owner(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"pubsub">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_owner(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"pubsub">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"pubsub">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"purge">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"purge">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"purge">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"delete">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"delete">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"delete">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"redirect">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"redirect">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"redirect">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"default">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_default(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"default">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_default(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"default">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_default(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"default">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_default(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"publish-options">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_publish_options(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"publish-options">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_publish_options(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"configure">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"configure">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"configure">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"configure">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"create">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_create(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"create">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_create(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"create">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_create(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"create">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_create(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"retract">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_retract(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"retract">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_retract(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"options">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_options(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"options">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_options(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"publish">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_publish(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"publish">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_publish(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"unsubscribe">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_unsubscribe(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"unsubscribe">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_unsubscribe(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscribe">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_subscribe(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscribe">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_subscribe(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"affiliations">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_owner_affiliations(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"affiliations">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_owner_affiliations(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"affiliations">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_affiliations(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"affiliations">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_affiliations(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscriptions">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscriptions">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"event">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_event(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"event">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_event(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"items">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_items(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"items">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_items(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"items">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_items(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"items">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_items(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_item(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_item(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"retract">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_event_retract(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"retract">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_event_retract(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"configuration">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_event_configuration(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"configuration">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_event_configuration(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"affiliation">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_owner_affiliation(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"affiliation">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_owner_affiliation(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"affiliation">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_affiliation(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"affiliation">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_affiliation(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscription">>, <<"http://jabber.org/protocol/pubsub">>, _} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, IgnoreEls, _el); {<<"subscription">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#owner">>, IgnoreEls, _el); {<<"subscription">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#event">>, IgnoreEls, _el); {<<"x">>, <<"jabber:x:data">>, _} -> decode_xdata(<<"jabber:x:data">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"jabber:x:data">>} -> decode_xdata(<<"jabber:x:data">>, IgnoreEls, _el); {<<"item">>, <<"jabber:x:data">>, _} -> decode_xdata_item(<<"jabber:x:data">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_item(<<"jabber:x:data">>, IgnoreEls, _el); {<<"reported">>, <<"jabber:x:data">>, _} -> decode_xdata_reported(<<"jabber:x:data">>, IgnoreEls, _el); {<<"reported">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_reported(<<"jabber:x:data">>, IgnoreEls, _el); {<<"title">>, <<"jabber:x:data">>, _} -> decode_xdata_title(<<"jabber:x:data">>, IgnoreEls, _el); {<<"title">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_title(<<"jabber:x:data">>, IgnoreEls, _el); {<<"instructions">>, <<"jabber:x:data">>, _} -> decode_xdata_instructions(<<"jabber:x:data">>, IgnoreEls, _el); {<<"instructions">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_instructions(<<"jabber:x:data">>, IgnoreEls, _el); {<<"field">>, <<"jabber:x:data">>, _} -> decode_xdata_field(<<"jabber:x:data">>, IgnoreEls, _el); {<<"field">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_field(<<"jabber:x:data">>, IgnoreEls, _el); {<<"option">>, <<"jabber:x:data">>, _} -> decode_xdata_field_option(<<"jabber:x:data">>, IgnoreEls, _el); {<<"option">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_field_option(<<"jabber:x:data">>, IgnoreEls, _el); {<<"value">>, <<"jabber:x:data">>, _} -> decode_xdata_field_value(<<"jabber:x:data">>, IgnoreEls, _el); {<<"value">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_field_value(<<"jabber:x:data">>, IgnoreEls, _el); {<<"desc">>, <<"jabber:x:data">>, _} -> decode_xdata_field_desc(<<"jabber:x:data">>, IgnoreEls, _el); {<<"desc">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_field_desc(<<"jabber:x:data">>, IgnoreEls, _el); {<<"required">>, <<"jabber:x:data">>, _} -> decode_xdata_field_required(<<"jabber:x:data">>, IgnoreEls, _el); {<<"required">>, <<>>, <<"jabber:x:data">>} -> decode_xdata_field_required(<<"jabber:x:data">>, IgnoreEls, _el); {<<"x">>, <<"vcard-temp:x:update">>, _} -> decode_vcard_xupdate(<<"vcard-temp:x:update">>, IgnoreEls, _el); {<<"x">>, <<>>, <<"vcard-temp:x:update">>} -> decode_vcard_xupdate(<<"vcard-temp:x:update">>, IgnoreEls, _el); {<<"photo">>, <<"vcard-temp:x:update">>, _} -> decode_vcard_xupdate_photo(<<"vcard-temp:x:update">>, IgnoreEls, _el); {<<"photo">>, <<>>, <<"vcard-temp:x:update">>} -> decode_vcard_xupdate_photo(<<"vcard-temp:x:update">>, IgnoreEls, _el); {<<"vCard">>, <<"vcard-temp">>, _} -> decode_vcard_temp(<<"vcard-temp">>, IgnoreEls, _el); {<<"vCard">>, <<>>, <<"vcard-temp">>} -> decode_vcard_temp(<<"vcard-temp">>, IgnoreEls, _el); {<<"CLASS">>, <<"vcard-temp">>, _} -> decode_vcard_CLASS(<<"vcard-temp">>, IgnoreEls, _el); {<<"CLASS">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CLASS(<<"vcard-temp">>, IgnoreEls, _el); {<<"CATEGORIES">>, <<"vcard-temp">>, _} -> decode_vcard_CATEGORIES(<<"vcard-temp">>, IgnoreEls, _el); {<<"CATEGORIES">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CATEGORIES(<<"vcard-temp">>, IgnoreEls, _el); {<<"KEY">>, <<"vcard-temp">>, _} -> decode_vcard_KEY(<<"vcard-temp">>, IgnoreEls, _el); {<<"KEY">>, <<>>, <<"vcard-temp">>} -> decode_vcard_KEY(<<"vcard-temp">>, IgnoreEls, _el); {<<"SOUND">>, <<"vcard-temp">>, _} -> decode_vcard_SOUND(<<"vcard-temp">>, IgnoreEls, _el); {<<"SOUND">>, <<>>, <<"vcard-temp">>} -> decode_vcard_SOUND(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORG">>, <<"vcard-temp">>, _} -> decode_vcard_ORG(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORG">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ORG(<<"vcard-temp">>, IgnoreEls, _el); {<<"PHOTO">>, <<"vcard-temp">>, _} -> decode_vcard_PHOTO(<<"vcard-temp">>, IgnoreEls, _el); {<<"PHOTO">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PHOTO(<<"vcard-temp">>, IgnoreEls, _el); {<<"LOGO">>, <<"vcard-temp">>, _} -> decode_vcard_LOGO(<<"vcard-temp">>, IgnoreEls, _el); {<<"LOGO">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LOGO(<<"vcard-temp">>, IgnoreEls, _el); {<<"BINVAL">>, <<"vcard-temp">>, _} -> decode_vcard_BINVAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"BINVAL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_BINVAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"GEO">>, <<"vcard-temp">>, _} -> decode_vcard_GEO(<<"vcard-temp">>, IgnoreEls, _el); {<<"GEO">>, <<>>, <<"vcard-temp">>} -> decode_vcard_GEO(<<"vcard-temp">>, IgnoreEls, _el); {<<"EMAIL">>, <<"vcard-temp">>, _} -> decode_vcard_EMAIL(<<"vcard-temp">>, IgnoreEls, _el); {<<"EMAIL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_EMAIL(<<"vcard-temp">>, IgnoreEls, _el); {<<"TEL">>, <<"vcard-temp">>, _} -> decode_vcard_TEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"TEL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_TEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"LABEL">>, <<"vcard-temp">>, _} -> decode_vcard_LABEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"LABEL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LABEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"ADR">>, <<"vcard-temp">>, _} -> decode_vcard_ADR(<<"vcard-temp">>, IgnoreEls, _el); {<<"ADR">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ADR(<<"vcard-temp">>, IgnoreEls, _el); {<<"N">>, <<"vcard-temp">>, _} -> decode_vcard_N(<<"vcard-temp">>, IgnoreEls, _el); {<<"N">>, <<>>, <<"vcard-temp">>} -> decode_vcard_N(<<"vcard-temp">>, IgnoreEls, _el); {<<"CONFIDENTIAL">>, <<"vcard-temp">>, _} -> decode_vcard_CONFIDENTIAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"CONFIDENTIAL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CONFIDENTIAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"PRIVATE">>, <<"vcard-temp">>, _} -> decode_vcard_PRIVATE(<<"vcard-temp">>, IgnoreEls, _el); {<<"PRIVATE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PRIVATE(<<"vcard-temp">>, IgnoreEls, _el); {<<"PUBLIC">>, <<"vcard-temp">>, _} -> decode_vcard_PUBLIC(<<"vcard-temp">>, IgnoreEls, _el); {<<"PUBLIC">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PUBLIC(<<"vcard-temp">>, IgnoreEls, _el); {<<"EXTVAL">>, <<"vcard-temp">>, _} -> decode_vcard_EXTVAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"EXTVAL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_EXTVAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"TYPE">>, <<"vcard-temp">>, _} -> decode_vcard_TYPE(<<"vcard-temp">>, IgnoreEls, _el); {<<"TYPE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_TYPE(<<"vcard-temp">>, IgnoreEls, _el); {<<"DESC">>, <<"vcard-temp">>, _} -> decode_vcard_DESC(<<"vcard-temp">>, IgnoreEls, _el); {<<"DESC">>, <<>>, <<"vcard-temp">>} -> decode_vcard_DESC(<<"vcard-temp">>, IgnoreEls, _el); {<<"URL">>, <<"vcard-temp">>, _} -> decode_vcard_URL(<<"vcard-temp">>, IgnoreEls, _el); {<<"URL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_URL(<<"vcard-temp">>, IgnoreEls, _el); {<<"UID">>, <<"vcard-temp">>, _} -> decode_vcard_UID(<<"vcard-temp">>, IgnoreEls, _el); {<<"UID">>, <<>>, <<"vcard-temp">>} -> decode_vcard_UID(<<"vcard-temp">>, IgnoreEls, _el); {<<"SORT-STRING">>, <<"vcard-temp">>, _} -> decode_vcard_SORT_STRING(<<"vcard-temp">>, IgnoreEls, _el); {<<"SORT-STRING">>, <<>>, <<"vcard-temp">>} -> decode_vcard_SORT_STRING(<<"vcard-temp">>, IgnoreEls, _el); {<<"REV">>, <<"vcard-temp">>, _} -> decode_vcard_REV(<<"vcard-temp">>, IgnoreEls, _el); {<<"REV">>, <<>>, <<"vcard-temp">>} -> decode_vcard_REV(<<"vcard-temp">>, IgnoreEls, _el); {<<"PRODID">>, <<"vcard-temp">>, _} -> decode_vcard_PRODID(<<"vcard-temp">>, IgnoreEls, _el); {<<"PRODID">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PRODID(<<"vcard-temp">>, IgnoreEls, _el); {<<"NOTE">>, <<"vcard-temp">>, _} -> decode_vcard_NOTE(<<"vcard-temp">>, IgnoreEls, _el); {<<"NOTE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_NOTE(<<"vcard-temp">>, IgnoreEls, _el); {<<"KEYWORD">>, <<"vcard-temp">>, _} -> decode_vcard_KEYWORD(<<"vcard-temp">>, IgnoreEls, _el); {<<"KEYWORD">>, <<>>, <<"vcard-temp">>} -> decode_vcard_KEYWORD(<<"vcard-temp">>, IgnoreEls, _el); {<<"ROLE">>, <<"vcard-temp">>, _} -> decode_vcard_ROLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"ROLE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ROLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"TITLE">>, <<"vcard-temp">>, _} -> decode_vcard_TITLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"TITLE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_TITLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"TZ">>, <<"vcard-temp">>, _} -> decode_vcard_TZ(<<"vcard-temp">>, IgnoreEls, _el); {<<"TZ">>, <<>>, <<"vcard-temp">>} -> decode_vcard_TZ(<<"vcard-temp">>, IgnoreEls, _el); {<<"MAILER">>, <<"vcard-temp">>, _} -> decode_vcard_MAILER(<<"vcard-temp">>, IgnoreEls, _el); {<<"MAILER">>, <<>>, <<"vcard-temp">>} -> decode_vcard_MAILER(<<"vcard-temp">>, IgnoreEls, _el); {<<"JABBERID">>, <<"vcard-temp">>, _} -> decode_vcard_JABBERID(<<"vcard-temp">>, IgnoreEls, _el); {<<"JABBERID">>, <<>>, <<"vcard-temp">>} -> decode_vcard_JABBERID(<<"vcard-temp">>, IgnoreEls, _el); {<<"BDAY">>, <<"vcard-temp">>, _} -> decode_vcard_BDAY(<<"vcard-temp">>, IgnoreEls, _el); {<<"BDAY">>, <<>>, <<"vcard-temp">>} -> decode_vcard_BDAY(<<"vcard-temp">>, IgnoreEls, _el); {<<"NICKNAME">>, <<"vcard-temp">>, _} -> decode_vcard_NICKNAME(<<"vcard-temp">>, IgnoreEls, _el); {<<"NICKNAME">>, <<>>, <<"vcard-temp">>} -> decode_vcard_NICKNAME(<<"vcard-temp">>, IgnoreEls, _el); {<<"FN">>, <<"vcard-temp">>, _} -> decode_vcard_FN(<<"vcard-temp">>, IgnoreEls, _el); {<<"FN">>, <<>>, <<"vcard-temp">>} -> decode_vcard_FN(<<"vcard-temp">>, IgnoreEls, _el); {<<"VERSION">>, <<"vcard-temp">>, _} -> decode_vcard_VERSION(<<"vcard-temp">>, IgnoreEls, _el); {<<"VERSION">>, <<>>, <<"vcard-temp">>} -> decode_vcard_VERSION(<<"vcard-temp">>, IgnoreEls, _el); {<<"CRED">>, <<"vcard-temp">>, _} -> decode_vcard_CRED(<<"vcard-temp">>, IgnoreEls, _el); {<<"CRED">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CRED(<<"vcard-temp">>, IgnoreEls, _el); {<<"PHONETIC">>, <<"vcard-temp">>, _} -> decode_vcard_PHONETIC(<<"vcard-temp">>, IgnoreEls, _el); {<<"PHONETIC">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PHONETIC(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORGUNIT">>, <<"vcard-temp">>, _} -> decode_vcard_ORGUNIT(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORGUNIT">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ORGUNIT(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORGNAME">>, <<"vcard-temp">>, _} -> decode_vcard_ORGNAME(<<"vcard-temp">>, IgnoreEls, _el); {<<"ORGNAME">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ORGNAME(<<"vcard-temp">>, IgnoreEls, _el); {<<"LON">>, <<"vcard-temp">>, _} -> decode_vcard_LON(<<"vcard-temp">>, IgnoreEls, _el); {<<"LON">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LON(<<"vcard-temp">>, IgnoreEls, _el); {<<"LAT">>, <<"vcard-temp">>, _} -> decode_vcard_LAT(<<"vcard-temp">>, IgnoreEls, _el); {<<"LAT">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LAT(<<"vcard-temp">>, IgnoreEls, _el); {<<"USERID">>, <<"vcard-temp">>, _} -> decode_vcard_USERID(<<"vcard-temp">>, IgnoreEls, _el); {<<"USERID">>, <<>>, <<"vcard-temp">>} -> decode_vcard_USERID(<<"vcard-temp">>, IgnoreEls, _el); {<<"NUMBER">>, <<"vcard-temp">>, _} -> decode_vcard_NUMBER(<<"vcard-temp">>, IgnoreEls, _el); {<<"NUMBER">>, <<>>, <<"vcard-temp">>} -> decode_vcard_NUMBER(<<"vcard-temp">>, IgnoreEls, _el); {<<"LINE">>, <<"vcard-temp">>, _} -> decode_vcard_LINE(<<"vcard-temp">>, IgnoreEls, _el); {<<"LINE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LINE(<<"vcard-temp">>, IgnoreEls, _el); {<<"CTRY">>, <<"vcard-temp">>, _} -> decode_vcard_CTRY(<<"vcard-temp">>, IgnoreEls, _el); {<<"CTRY">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CTRY(<<"vcard-temp">>, IgnoreEls, _el); {<<"PCODE">>, <<"vcard-temp">>, _} -> decode_vcard_PCODE(<<"vcard-temp">>, IgnoreEls, _el); {<<"PCODE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PCODE(<<"vcard-temp">>, IgnoreEls, _el); {<<"REGION">>, <<"vcard-temp">>, _} -> decode_vcard_REGION(<<"vcard-temp">>, IgnoreEls, _el); {<<"REGION">>, <<>>, <<"vcard-temp">>} -> decode_vcard_REGION(<<"vcard-temp">>, IgnoreEls, _el); {<<"LOCALITY">>, <<"vcard-temp">>, _} -> decode_vcard_LOCALITY(<<"vcard-temp">>, IgnoreEls, _el); {<<"LOCALITY">>, <<>>, <<"vcard-temp">>} -> decode_vcard_LOCALITY(<<"vcard-temp">>, IgnoreEls, _el); {<<"STREET">>, <<"vcard-temp">>, _} -> decode_vcard_STREET(<<"vcard-temp">>, IgnoreEls, _el); {<<"STREET">>, <<>>, <<"vcard-temp">>} -> decode_vcard_STREET(<<"vcard-temp">>, IgnoreEls, _el); {<<"EXTADD">>, <<"vcard-temp">>, _} -> decode_vcard_EXTADD(<<"vcard-temp">>, IgnoreEls, _el); {<<"EXTADD">>, <<>>, <<"vcard-temp">>} -> decode_vcard_EXTADD(<<"vcard-temp">>, IgnoreEls, _el); {<<"POBOX">>, <<"vcard-temp">>, _} -> decode_vcard_POBOX(<<"vcard-temp">>, IgnoreEls, _el); {<<"POBOX">>, <<>>, <<"vcard-temp">>} -> decode_vcard_POBOX(<<"vcard-temp">>, IgnoreEls, _el); {<<"SUFFIX">>, <<"vcard-temp">>, _} -> decode_vcard_SUFFIX(<<"vcard-temp">>, IgnoreEls, _el); {<<"SUFFIX">>, <<>>, <<"vcard-temp">>} -> decode_vcard_SUFFIX(<<"vcard-temp">>, IgnoreEls, _el); {<<"PREFIX">>, <<"vcard-temp">>, _} -> decode_vcard_PREFIX(<<"vcard-temp">>, IgnoreEls, _el); {<<"PREFIX">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PREFIX(<<"vcard-temp">>, IgnoreEls, _el); {<<"MIDDLE">>, <<"vcard-temp">>, _} -> decode_vcard_MIDDLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"MIDDLE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_MIDDLE(<<"vcard-temp">>, IgnoreEls, _el); {<<"GIVEN">>, <<"vcard-temp">>, _} -> decode_vcard_GIVEN(<<"vcard-temp">>, IgnoreEls, _el); {<<"GIVEN">>, <<>>, <<"vcard-temp">>} -> decode_vcard_GIVEN(<<"vcard-temp">>, IgnoreEls, _el); {<<"FAMILY">>, <<"vcard-temp">>, _} -> decode_vcard_FAMILY(<<"vcard-temp">>, IgnoreEls, _el); {<<"FAMILY">>, <<>>, <<"vcard-temp">>} -> decode_vcard_FAMILY(<<"vcard-temp">>, IgnoreEls, _el); {<<"X400">>, <<"vcard-temp">>, _} -> decode_vcard_X400(<<"vcard-temp">>, IgnoreEls, _el); {<<"X400">>, <<>>, <<"vcard-temp">>} -> decode_vcard_X400(<<"vcard-temp">>, IgnoreEls, _el); {<<"INTERNET">>, <<"vcard-temp">>, _} -> decode_vcard_INTERNET(<<"vcard-temp">>, IgnoreEls, _el); {<<"INTERNET">>, <<>>, <<"vcard-temp">>} -> decode_vcard_INTERNET(<<"vcard-temp">>, IgnoreEls, _el); {<<"PREF">>, <<"vcard-temp">>, _} -> decode_vcard_PREF(<<"vcard-temp">>, IgnoreEls, _el); {<<"PREF">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PREF(<<"vcard-temp">>, IgnoreEls, _el); {<<"INTL">>, <<"vcard-temp">>, _} -> decode_vcard_INTL(<<"vcard-temp">>, IgnoreEls, _el); {<<"INTL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_INTL(<<"vcard-temp">>, IgnoreEls, _el); {<<"DOM">>, <<"vcard-temp">>, _} -> decode_vcard_DOM(<<"vcard-temp">>, IgnoreEls, _el); {<<"DOM">>, <<>>, <<"vcard-temp">>} -> decode_vcard_DOM(<<"vcard-temp">>, IgnoreEls, _el); {<<"PARCEL">>, <<"vcard-temp">>, _} -> decode_vcard_PARCEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"PARCEL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PARCEL(<<"vcard-temp">>, IgnoreEls, _el); {<<"POSTAL">>, <<"vcard-temp">>, _} -> decode_vcard_POSTAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"POSTAL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_POSTAL(<<"vcard-temp">>, IgnoreEls, _el); {<<"PCS">>, <<"vcard-temp">>, _} -> decode_vcard_PCS(<<"vcard-temp">>, IgnoreEls, _el); {<<"PCS">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PCS(<<"vcard-temp">>, IgnoreEls, _el); {<<"ISDN">>, <<"vcard-temp">>, _} -> decode_vcard_ISDN(<<"vcard-temp">>, IgnoreEls, _el); {<<"ISDN">>, <<>>, <<"vcard-temp">>} -> decode_vcard_ISDN(<<"vcard-temp">>, IgnoreEls, _el); {<<"MODEM">>, <<"vcard-temp">>, _} -> decode_vcard_MODEM(<<"vcard-temp">>, IgnoreEls, _el); {<<"MODEM">>, <<>>, <<"vcard-temp">>} -> decode_vcard_MODEM(<<"vcard-temp">>, IgnoreEls, _el); {<<"BBS">>, <<"vcard-temp">>, _} -> decode_vcard_BBS(<<"vcard-temp">>, IgnoreEls, _el); {<<"BBS">>, <<>>, <<"vcard-temp">>} -> decode_vcard_BBS(<<"vcard-temp">>, IgnoreEls, _el); {<<"VIDEO">>, <<"vcard-temp">>, _} -> decode_vcard_VIDEO(<<"vcard-temp">>, IgnoreEls, _el); {<<"VIDEO">>, <<>>, <<"vcard-temp">>} -> decode_vcard_VIDEO(<<"vcard-temp">>, IgnoreEls, _el); {<<"CELL">>, <<"vcard-temp">>, _} -> decode_vcard_CELL(<<"vcard-temp">>, IgnoreEls, _el); {<<"CELL">>, <<>>, <<"vcard-temp">>} -> decode_vcard_CELL(<<"vcard-temp">>, IgnoreEls, _el); {<<"MSG">>, <<"vcard-temp">>, _} -> decode_vcard_MSG(<<"vcard-temp">>, IgnoreEls, _el); {<<"MSG">>, <<>>, <<"vcard-temp">>} -> decode_vcard_MSG(<<"vcard-temp">>, IgnoreEls, _el); {<<"PAGER">>, <<"vcard-temp">>, _} -> decode_vcard_PAGER(<<"vcard-temp">>, IgnoreEls, _el); {<<"PAGER">>, <<>>, <<"vcard-temp">>} -> decode_vcard_PAGER(<<"vcard-temp">>, IgnoreEls, _el); {<<"FAX">>, <<"vcard-temp">>, _} -> decode_vcard_FAX(<<"vcard-temp">>, IgnoreEls, _el); {<<"FAX">>, <<>>, <<"vcard-temp">>} -> decode_vcard_FAX(<<"vcard-temp">>, IgnoreEls, _el); {<<"VOICE">>, <<"vcard-temp">>, _} -> decode_vcard_VOICE(<<"vcard-temp">>, IgnoreEls, _el); {<<"VOICE">>, <<>>, <<"vcard-temp">>} -> decode_vcard_VOICE(<<"vcard-temp">>, IgnoreEls, _el); {<<"WORK">>, <<"vcard-temp">>, _} -> decode_vcard_WORK(<<"vcard-temp">>, IgnoreEls, _el); {<<"WORK">>, <<>>, <<"vcard-temp">>} -> decode_vcard_WORK(<<"vcard-temp">>, IgnoreEls, _el); {<<"HOME">>, <<"vcard-temp">>, _} -> decode_vcard_HOME(<<"vcard-temp">>, IgnoreEls, _el); {<<"HOME">>, <<>>, <<"vcard-temp">>} -> decode_vcard_HOME(<<"vcard-temp">>, IgnoreEls, _el); {<<"stream:error">>, <<"jabber:client">>, _} -> decode_stream_error(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:error">>, <<>>, <<"jabber:client">>} -> decode_stream_error(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:error">>, <<"jabber:server">>, _} -> decode_stream_error(<<"jabber:server">>, IgnoreEls, _el); {<<"stream:error">>, <<>>, <<"jabber:server">>} -> decode_stream_error(<<"jabber:server">>, IgnoreEls, _el); {<<"stream:error">>, <<"jabber:component:accept">>, _} -> decode_stream_error(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"stream:error">>, <<>>, <<"jabber:component:accept">>} -> decode_stream_error(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"unsupported-version">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_unsupported_version(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"unsupported-version">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_unsupported_version(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"unsupported-stanza-type">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_unsupported_stanza_type(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"unsupported-stanza-type">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_unsupported_stanza_type(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"unsupported-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_unsupported_encoding(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"unsupported-encoding">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_unsupported_encoding(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"undefined-condition">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"system-shutdown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_system_shutdown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"system-shutdown">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_system_shutdown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"see-other-host">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_see_other_host(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"see-other-host">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_see_other_host(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"restricted-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_restricted_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"restricted-xml">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_restricted_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"resource-constraint">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"reset">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_reset(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"reset">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_reset(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"remote-connection-failed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_remote_connection_failed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"remote-connection-failed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_remote_connection_failed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"policy-violation">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"not-well-formed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_not_well_formed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"not-well-formed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_not_well_formed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_invalid_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-xml">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_invalid_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-namespace">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_invalid_namespace(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-namespace">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_invalid_namespace(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-id">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_invalid_id(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-id">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_invalid_id(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-from">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_invalid_from(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"invalid-from">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_invalid_from(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"internal-server-error">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"improper-addressing">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_improper_addressing(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"improper-addressing">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_improper_addressing(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"host-unknown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_host_unknown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"host-unknown">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_host_unknown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"host-gone">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_host_gone(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"host-gone">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_host_gone(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"connection-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_connection_timeout(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"connection-timeout">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_connection_timeout(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"conflict">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"bad-namespace-prefix">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_bad_namespace_prefix(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"bad-namespace-prefix">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_bad_namespace_prefix(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"bad-format">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_bad_format(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"bad-format">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_bad_format(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> decode_stream_error_text(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> decode_stream_error_text(<<"urn:ietf:params:xml:ns:xmpp-streams">>, IgnoreEls, _el); {<<"time">>, <<"urn:xmpp:time">>, _} -> decode_time(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"time">>, <<>>, <<"urn:xmpp:time">>} -> decode_time(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"tzo">>, <<"urn:xmpp:time">>, _} -> decode_time_tzo(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"tzo">>, <<>>, <<"urn:xmpp:time">>} -> decode_time_tzo(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"utc">>, <<"urn:xmpp:time">>, _} -> decode_time_utc(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"utc">>, <<>>, <<"urn:xmpp:time">>} -> decode_time_utc(<<"urn:xmpp:time">>, IgnoreEls, _el); {<<"ping">>, <<"urn:xmpp:ping">>, _} -> decode_ping(<<"urn:xmpp:ping">>, IgnoreEls, _el); {<<"ping">>, <<>>, <<"urn:xmpp:ping">>} -> decode_ping(<<"urn:xmpp:ping">>, IgnoreEls, _el); {<<"session">>, <<"urn:ietf:params:xml:ns:xmpp-session">>, _} -> decode_session(<<"urn:ietf:params:xml:ns:xmpp-session">>, IgnoreEls, _el); {<<"session">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-session">>} -> decode_session(<<"urn:ietf:params:xml:ns:xmpp-session">>, IgnoreEls, _el); {<<"optional">>, <<"urn:ietf:params:xml:ns:xmpp-session">>, _} -> decode_session_optional(<<"urn:ietf:params:xml:ns:xmpp-session">>, IgnoreEls, _el); {<<"optional">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-session">>} -> decode_session_optional(<<"urn:ietf:params:xml:ns:xmpp-session">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:register">>, _} -> decode_register(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:register">>} -> decode_register(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"key">>, <<"jabber:iq:register">>, _} -> decode_register_key(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"key">>, <<>>, <<"jabber:iq:register">>} -> decode_register_key(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"text">>, <<"jabber:iq:register">>, _} -> decode_register_text(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"text">>, <<>>, <<"jabber:iq:register">>} -> decode_register_text(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"misc">>, <<"jabber:iq:register">>, _} -> decode_register_misc(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"misc">>, <<>>, <<"jabber:iq:register">>} -> decode_register_misc(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"date">>, <<"jabber:iq:register">>, _} -> decode_register_date(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"date">>, <<>>, <<"jabber:iq:register">>} -> decode_register_date(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"url">>, <<"jabber:iq:register">>, _} -> decode_register_url(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"url">>, <<>>, <<"jabber:iq:register">>} -> decode_register_url(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"phone">>, <<"jabber:iq:register">>, _} -> decode_register_phone(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"phone">>, <<>>, <<"jabber:iq:register">>} -> decode_register_phone(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"zip">>, <<"jabber:iq:register">>, _} -> decode_register_zip(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"zip">>, <<>>, <<"jabber:iq:register">>} -> decode_register_zip(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"state">>, <<"jabber:iq:register">>, _} -> decode_register_state(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"state">>, <<>>, <<"jabber:iq:register">>} -> decode_register_state(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"city">>, <<"jabber:iq:register">>, _} -> decode_register_city(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"city">>, <<>>, <<"jabber:iq:register">>} -> decode_register_city(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"address">>, <<"jabber:iq:register">>, _} -> decode_register_address(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"address">>, <<>>, <<"jabber:iq:register">>} -> decode_register_address(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"email">>, <<"jabber:iq:register">>, _} -> decode_register_email(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"email">>, <<>>, <<"jabber:iq:register">>} -> decode_register_email(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"last">>, <<"jabber:iq:register">>, _} -> decode_register_last(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"last">>, <<>>, <<"jabber:iq:register">>} -> decode_register_last(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"first">>, <<"jabber:iq:register">>, _} -> decode_register_first(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"first">>, <<>>, <<"jabber:iq:register">>} -> decode_register_first(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"name">>, <<"jabber:iq:register">>, _} -> decode_register_name(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"name">>, <<>>, <<"jabber:iq:register">>} -> decode_register_name(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"password">>, <<"jabber:iq:register">>, _} -> decode_register_password(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"jabber:iq:register">>} -> decode_register_password(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"nick">>, <<"jabber:iq:register">>, _} -> decode_register_nick(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"nick">>, <<>>, <<"jabber:iq:register">>} -> decode_register_nick(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"username">>, <<"jabber:iq:register">>, _} -> decode_register_username(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"username">>, <<>>, <<"jabber:iq:register">>} -> decode_register_username(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"instructions">>, <<"jabber:iq:register">>, _} -> decode_register_instructions(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"instructions">>, <<>>, <<"jabber:iq:register">>} -> decode_register_instructions(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"remove">>, <<"jabber:iq:register">>, _} -> decode_register_remove(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"remove">>, <<>>, <<"jabber:iq:register">>} -> decode_register_remove(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"registered">>, <<"jabber:iq:register">>, _} -> decode_register_registered(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"registered">>, <<>>, <<"jabber:iq:register">>} -> decode_register_registered(<<"jabber:iq:register">>, IgnoreEls, _el); {<<"register">>, <<"http://jabber.org/features/iq-register">>, _} -> decode_feature_register(<<"http://jabber.org/features/iq-register">>, IgnoreEls, _el); {<<"register">>, <<>>, <<"http://jabber.org/features/iq-register">>} -> decode_feature_register(<<"http://jabber.org/features/iq-register">>, IgnoreEls, _el); {<<"c">>, <<"http://jabber.org/protocol/caps">>, _} -> decode_caps(<<"http://jabber.org/protocol/caps">>, IgnoreEls, _el); {<<"c">>, <<>>, <<"http://jabber.org/protocol/caps">>} -> decode_caps(<<"http://jabber.org/protocol/caps">>, IgnoreEls, _el); {<<"ack">>, <<"p1:ack">>, _} -> decode_p1_ack(<<"p1:ack">>, IgnoreEls, _el); {<<"ack">>, <<>>, <<"p1:ack">>} -> decode_p1_ack(<<"p1:ack">>, IgnoreEls, _el); {<<"rebind">>, <<"p1:rebind">>, _} -> decode_p1_rebind(<<"p1:rebind">>, IgnoreEls, _el); {<<"rebind">>, <<>>, <<"p1:rebind">>} -> decode_p1_rebind(<<"p1:rebind">>, IgnoreEls, _el); {<<"push">>, <<"p1:push">>, _} -> decode_p1_push(<<"p1:push">>, IgnoreEls, _el); {<<"push">>, <<>>, <<"p1:push">>} -> decode_p1_push(<<"p1:push">>, IgnoreEls, _el); {<<"stream:features">>, <<"jabber:client">>, _} -> decode_stream_features(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:features">>, <<>>, <<"jabber:client">>} -> decode_stream_features(<<"jabber:client">>, IgnoreEls, _el); {<<"stream:features">>, <<"jabber:server">>, _} -> decode_stream_features(<<"jabber:server">>, IgnoreEls, _el); {<<"stream:features">>, <<>>, <<"jabber:server">>} -> decode_stream_features(<<"jabber:server">>, IgnoreEls, _el); {<<"compression">>, <<"http://jabber.org/features/compress">>, _} -> decode_compression(<<"http://jabber.org/features/compress">>, IgnoreEls, _el); {<<"compression">>, <<>>, <<"http://jabber.org/features/compress">>} -> decode_compression(<<"http://jabber.org/features/compress">>, IgnoreEls, _el); {<<"method">>, <<"http://jabber.org/features/compress">>, _} -> decode_compression_method(<<"http://jabber.org/features/compress">>, IgnoreEls, _el); {<<"method">>, <<>>, <<"http://jabber.org/features/compress">>} -> decode_compression_method(<<"http://jabber.org/features/compress">>, IgnoreEls, _el); {<<"compressed">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compressed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"compressed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compressed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"compress">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"compress">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"method">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress_method(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"method">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress_method(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"failure">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress_failure(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"failure">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress_failure(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"unsupported-method">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress_failure_unsupported_method(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"unsupported-method">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress_failure_unsupported_method(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"processing-failed">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress_failure_processing_failed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"processing-failed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress_failure_processing_failed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"setup-failed">>, <<"http://jabber.org/protocol/compress">>, _} -> decode_compress_failure_setup_failed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"setup-failed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> decode_compress_failure_setup_failed(<<"http://jabber.org/protocol/compress">>, IgnoreEls, _el); {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> decode_starttls_failure(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> decode_starttls_failure(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"proceed">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> decode_starttls_proceed(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"proceed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> decode_starttls_proceed(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"starttls">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> decode_starttls(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"starttls">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> decode_starttls(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"required">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> decode_starttls_required(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> decode_starttls_required(<<"urn:ietf:params:xml:ns:xmpp-tls">>, IgnoreEls, _el); {<<"mechanisms">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_mechanisms(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"mechanisms">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_mechanisms(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"mechanism">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"temporary-auth-failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_temporary_auth_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"temporary-auth-failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_temporary_auth_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"bad-protocol">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_bad_protocol(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"bad-protocol">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_bad_protocol(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"mechanism-too-weak">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_mechanism_too_weak(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"mechanism-too-weak">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_mechanism_too_weak(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"malformed-request">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_malformed_request(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"malformed-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_malformed_request(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"invalid-mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_invalid_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"invalid-mechanism">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_invalid_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"invalid-authzid">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_invalid_authzid(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"invalid-authzid">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_invalid_authzid(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"incorrect-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_incorrect_encoding(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"incorrect-encoding">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_incorrect_encoding(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"encryption-required">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_encryption_required(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"encryption-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_encryption_required(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"credentials-expired">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_credentials_expired(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"credentials-expired">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_credentials_expired(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"account-disabled">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_account_disabled(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"account-disabled">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_account_disabled(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"aborted">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_aborted(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"aborted">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_aborted(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_failure_text(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_failure_text(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"success">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_success(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"success">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_success(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"response">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_response(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"response">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_response(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"challenge">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_challenge(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"challenge">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_challenge(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"abort">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_abort(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"abort">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_abort(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"auth">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> decode_sasl_auth(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"auth">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> decode_sasl_auth(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:auth">>, _} -> decode_legacy_auth(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:auth">>} -> decode_legacy_auth(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"resource">>, <<"jabber:iq:auth">>, _} -> decode_legacy_auth_resource(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"resource">>, <<>>, <<"jabber:iq:auth">>} -> decode_legacy_auth_resource(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"digest">>, <<"jabber:iq:auth">>, _} -> decode_legacy_auth_digest(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"digest">>, <<>>, <<"jabber:iq:auth">>} -> decode_legacy_auth_digest(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"password">>, <<"jabber:iq:auth">>, _} -> decode_legacy_auth_password(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"jabber:iq:auth">>} -> decode_legacy_auth_password(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"username">>, <<"jabber:iq:auth">>, _} -> decode_legacy_auth_username(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"username">>, <<>>, <<"jabber:iq:auth">>} -> decode_legacy_auth_username(<<"jabber:iq:auth">>, IgnoreEls, _el); {<<"bind">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> decode_bind(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"bind">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> decode_bind(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"resource">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> decode_bind_resource(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"resource">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> decode_bind_resource(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"jid">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> decode_bind_jid(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"jid">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> decode_bind_jid(<<"urn:ietf:params:xml:ns:xmpp-bind">>, IgnoreEls, _el); {<<"error">>, <<"jabber:client">>, _} -> decode_error(<<"jabber:client">>, IgnoreEls, _el); {<<"error">>, <<>>, <<"jabber:client">>} -> decode_error(<<"jabber:client">>, IgnoreEls, _el); {<<"error">>, <<"jabber:server">>, _} -> decode_error(<<"jabber:server">>, IgnoreEls, _el); {<<"error">>, <<>>, <<"jabber:server">>} -> decode_error(<<"jabber:server">>, IgnoreEls, _el); {<<"error">>, <<"jabber:component:accept">>, _} -> decode_error(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"error">>, <<>>, <<"jabber:component:accept">>} -> decode_error(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_text(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_text(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"unexpected-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"unexpected-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"undefined-condition">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"subscription-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"subscription-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"service-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"service-unavailable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"resource-constraint">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"remote-server-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"remote-server-timeout">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"remote-server-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"remote-server-not-found">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"registration-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"registration-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"redirect">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"redirect">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"recipient-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"recipient-unavailable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"policy-violation">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"payment-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_payment_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"payment-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_payment_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-allowed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-allowed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-acceptable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"not-acceptable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"jid-malformed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"jid-malformed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"item-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"item-not-found">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"internal-server-error">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"gone">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"gone">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"forbidden">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"forbidden">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"feature-not-implemented">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"feature-not-implemented">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"conflict">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"bad-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"bad-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, IgnoreEls, _el); {<<"presence">>, <<"jabber:client">>, _} -> decode_presence(<<"jabber:client">>, IgnoreEls, _el); {<<"presence">>, <<>>, <<"jabber:client">>} -> decode_presence(<<"jabber:client">>, IgnoreEls, _el); {<<"presence">>, <<"jabber:server">>, _} -> decode_presence(<<"jabber:server">>, IgnoreEls, _el); {<<"presence">>, <<>>, <<"jabber:server">>} -> decode_presence(<<"jabber:server">>, IgnoreEls, _el); {<<"presence">>, <<"jabber:component:accept">>, _} -> decode_presence(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"presence">>, <<>>, <<"jabber:component:accept">>} -> decode_presence(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"priority">>, <<"jabber:client">>, _} -> decode_presence_priority(<<"jabber:client">>, IgnoreEls, _el); {<<"priority">>, <<>>, <<"jabber:client">>} -> decode_presence_priority(<<"jabber:client">>, IgnoreEls, _el); {<<"priority">>, <<"jabber:server">>, _} -> decode_presence_priority(<<"jabber:server">>, IgnoreEls, _el); {<<"priority">>, <<>>, <<"jabber:server">>} -> decode_presence_priority(<<"jabber:server">>, IgnoreEls, _el); {<<"priority">>, <<"jabber:component:accept">>, _} -> decode_presence_priority(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"priority">>, <<>>, <<"jabber:component:accept">>} -> decode_presence_priority(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"status">>, <<"jabber:client">>, _} -> decode_presence_status(<<"jabber:client">>, IgnoreEls, _el); {<<"status">>, <<>>, <<"jabber:client">>} -> decode_presence_status(<<"jabber:client">>, IgnoreEls, _el); {<<"status">>, <<"jabber:server">>, _} -> decode_presence_status(<<"jabber:server">>, IgnoreEls, _el); {<<"status">>, <<>>, <<"jabber:server">>} -> decode_presence_status(<<"jabber:server">>, IgnoreEls, _el); {<<"status">>, <<"jabber:component:accept">>, _} -> decode_presence_status(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"status">>, <<>>, <<"jabber:component:accept">>} -> decode_presence_status(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"show">>, <<"jabber:client">>, _} -> decode_presence_show(<<"jabber:client">>, IgnoreEls, _el); {<<"show">>, <<>>, <<"jabber:client">>} -> decode_presence_show(<<"jabber:client">>, IgnoreEls, _el); {<<"show">>, <<"jabber:server">>, _} -> decode_presence_show(<<"jabber:server">>, IgnoreEls, _el); {<<"show">>, <<>>, <<"jabber:server">>} -> decode_presence_show(<<"jabber:server">>, IgnoreEls, _el); {<<"show">>, <<"jabber:component:accept">>, _} -> decode_presence_show(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"show">>, <<>>, <<"jabber:component:accept">>} -> decode_presence_show(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"message">>, <<"jabber:client">>, _} -> decode_message(<<"jabber:client">>, IgnoreEls, _el); {<<"message">>, <<>>, <<"jabber:client">>} -> decode_message(<<"jabber:client">>, IgnoreEls, _el); {<<"message">>, <<"jabber:server">>, _} -> decode_message(<<"jabber:server">>, IgnoreEls, _el); {<<"message">>, <<>>, <<"jabber:server">>} -> decode_message(<<"jabber:server">>, IgnoreEls, _el); {<<"message">>, <<"jabber:component:accept">>, _} -> decode_message(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"message">>, <<>>, <<"jabber:component:accept">>} -> decode_message(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"thread">>, <<"jabber:client">>, _} -> decode_message_thread(<<"jabber:client">>, IgnoreEls, _el); {<<"thread">>, <<>>, <<"jabber:client">>} -> decode_message_thread(<<"jabber:client">>, IgnoreEls, _el); {<<"thread">>, <<"jabber:server">>, _} -> decode_message_thread(<<"jabber:server">>, IgnoreEls, _el); {<<"thread">>, <<>>, <<"jabber:server">>} -> decode_message_thread(<<"jabber:server">>, IgnoreEls, _el); {<<"thread">>, <<"jabber:component:accept">>, _} -> decode_message_thread(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"thread">>, <<>>, <<"jabber:component:accept">>} -> decode_message_thread(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"body">>, <<"jabber:client">>, _} -> decode_message_body(<<"jabber:client">>, IgnoreEls, _el); {<<"body">>, <<>>, <<"jabber:client">>} -> decode_message_body(<<"jabber:client">>, IgnoreEls, _el); {<<"body">>, <<"jabber:server">>, _} -> decode_message_body(<<"jabber:server">>, IgnoreEls, _el); {<<"body">>, <<>>, <<"jabber:server">>} -> decode_message_body(<<"jabber:server">>, IgnoreEls, _el); {<<"body">>, <<"jabber:component:accept">>, _} -> decode_message_body(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"body">>, <<>>, <<"jabber:component:accept">>} -> decode_message_body(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"subject">>, <<"jabber:client">>, _} -> decode_message_subject(<<"jabber:client">>, IgnoreEls, _el); {<<"subject">>, <<>>, <<"jabber:client">>} -> decode_message_subject(<<"jabber:client">>, IgnoreEls, _el); {<<"subject">>, <<"jabber:server">>, _} -> decode_message_subject(<<"jabber:server">>, IgnoreEls, _el); {<<"subject">>, <<>>, <<"jabber:server">>} -> decode_message_subject(<<"jabber:server">>, IgnoreEls, _el); {<<"subject">>, <<"jabber:component:accept">>, _} -> decode_message_subject(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"subject">>, <<>>, <<"jabber:component:accept">>} -> decode_message_subject(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"iq">>, <<"jabber:client">>, _} -> decode_iq(<<"jabber:client">>, IgnoreEls, _el); {<<"iq">>, <<>>, <<"jabber:client">>} -> decode_iq(<<"jabber:client">>, IgnoreEls, _el); {<<"iq">>, <<"jabber:server">>, _} -> decode_iq(<<"jabber:server">>, IgnoreEls, _el); {<<"iq">>, <<>>, <<"jabber:server">>} -> decode_iq(<<"jabber:server">>, IgnoreEls, _el); {<<"iq">>, <<"jabber:component:accept">>, _} -> decode_iq(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"iq">>, <<>>, <<"jabber:component:accept">>} -> decode_iq(<<"jabber:component:accept">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/stats">>, _} -> decode_stats(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> decode_stats(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"stat">>, <<"http://jabber.org/protocol/stats">>, _} -> decode_stat(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"stat">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> decode_stat(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"error">>, <<"http://jabber.org/protocol/stats">>, _} -> decode_stat_error(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"error">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> decode_stat_error(<<"http://jabber.org/protocol/stats">>, IgnoreEls, _el); {<<"storage">>, <<"storage:bookmarks">>, _} -> decode_bookmarks_storage(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"storage">>, <<>>, <<"storage:bookmarks">>} -> decode_bookmarks_storage(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"url">>, <<"storage:bookmarks">>, _} -> decode_bookmark_url(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"url">>, <<>>, <<"storage:bookmarks">>} -> decode_bookmark_url(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"conference">>, <<"storage:bookmarks">>, _} -> decode_bookmark_conference(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"conference">>, <<>>, <<"storage:bookmarks">>} -> decode_bookmark_conference(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"password">>, <<"storage:bookmarks">>, _} -> decode_conference_password(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"password">>, <<>>, <<"storage:bookmarks">>} -> decode_conference_password(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"nick">>, <<"storage:bookmarks">>, _} -> decode_conference_nick(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"nick">>, <<>>, <<"storage:bookmarks">>} -> decode_conference_nick(<<"storage:bookmarks">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:private">>, _} -> decode_private(<<"jabber:iq:private">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:private">>} -> decode_private(<<"jabber:iq:private">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/disco#items">>, _} -> decode_disco_items(<<"http://jabber.org/protocol/disco#items">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/disco#items">>} -> decode_disco_items(<<"http://jabber.org/protocol/disco#items">>, IgnoreEls, _el); {<<"item">>, <<"http://jabber.org/protocol/disco#items">>, _} -> decode_disco_item(<<"http://jabber.org/protocol/disco#items">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"http://jabber.org/protocol/disco#items">>} -> decode_disco_item(<<"http://jabber.org/protocol/disco#items">>, IgnoreEls, _el); {<<"query">>, <<"http://jabber.org/protocol/disco#info">>, _} -> decode_disco_info(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> decode_disco_info(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"feature">>, <<"http://jabber.org/protocol/disco#info">>, _} -> decode_disco_feature(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"feature">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> decode_disco_feature(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"identity">>, <<"http://jabber.org/protocol/disco#info">>, _} -> decode_disco_identity(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"identity">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> decode_disco_identity(<<"http://jabber.org/protocol/disco#info">>, IgnoreEls, _el); {<<"blocklist">>, <<"urn:xmpp:blocking">>, _} -> decode_block_list(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"blocklist">>, <<>>, <<"urn:xmpp:blocking">>} -> decode_block_list(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"unblock">>, <<"urn:xmpp:blocking">>, _} -> decode_unblock(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"unblock">>, <<>>, <<"urn:xmpp:blocking">>} -> decode_unblock(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"block">>, <<"urn:xmpp:blocking">>, _} -> decode_block(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"block">>, <<>>, <<"urn:xmpp:blocking">>} -> decode_block(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"item">>, <<"urn:xmpp:blocking">>, _} -> decode_block_item(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"urn:xmpp:blocking">>} -> decode_block_item(<<"urn:xmpp:blocking">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:privacy">>, _} -> decode_privacy(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"active">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_active_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"active">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_active_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"default">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_default_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"default">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_default_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"list">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"list">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_list(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"item">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_item(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_item(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"presence-out">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_presence_out(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"presence-out">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_presence_out(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"presence-in">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_presence_in(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"presence-in">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_presence_in(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"iq">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_iq(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"iq">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_iq(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"message">>, <<"jabber:iq:privacy">>, _} -> decode_privacy_message(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"message">>, <<>>, <<"jabber:iq:privacy">>} -> decode_privacy_message(<<"jabber:iq:privacy">>, IgnoreEls, _el); {<<"ver">>, <<"urn:xmpp:features:rosterver">>, _} -> decode_rosterver_feature(<<"urn:xmpp:features:rosterver">>, IgnoreEls, _el); {<<"ver">>, <<>>, <<"urn:xmpp:features:rosterver">>} -> decode_rosterver_feature(<<"urn:xmpp:features:rosterver">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:roster">>, _} -> decode_roster_query(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:roster">>} -> decode_roster_query(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"item">>, <<"jabber:iq:roster">>, _} -> decode_roster_item(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"item">>, <<>>, <<"jabber:iq:roster">>} -> decode_roster_item(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"group">>, <<"jabber:iq:roster">>, _} -> decode_roster_group(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"group">>, <<>>, <<"jabber:iq:roster">>} -> decode_roster_group(<<"jabber:iq:roster">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:version">>, _} -> decode_version(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:version">>} -> decode_version(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"os">>, <<"jabber:iq:version">>, _} -> decode_version_os(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"os">>, <<>>, <<"jabber:iq:version">>} -> decode_version_os(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"version">>, <<"jabber:iq:version">>, _} -> decode_version_ver(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"version">>, <<>>, <<"jabber:iq:version">>} -> decode_version_ver(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"name">>, <<"jabber:iq:version">>, _} -> decode_version_name(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"name">>, <<>>, <<"jabber:iq:version">>} -> decode_version_name(<<"jabber:iq:version">>, IgnoreEls, _el); {<<"query">>, <<"jabber:iq:last">>, _} -> decode_last(<<"jabber:iq:last">>, IgnoreEls, _el); {<<"query">>, <<>>, <<"jabber:iq:last">>} -> decode_last(<<"jabber:iq:last">>, IgnoreEls, _el); {_name, <<>>, <<>>} -> erlang:error({xmpp_codec, {missing_tag_xmlns, _name}}); {_name, <<>>, _} -> erlang:error({xmpp_codec, {unknown_tag, _name, TopXMLNS}}); {_name, _xmlns, _} -> erlang:error({xmpp_codec, {unknown_tag, _name, _xmlns}}) end. is_known_tag({xmlel, _name, _attrs, _} = _el, TopXMLNS) -> case {_name, get_attr(<<"xmlns">>, _attrs), TopXMLNS} of {<<"query">>, <<"urn:xmpp:delegation:1">>, _} -> true; {<<"query">>, <<>>, <<"urn:xmpp:delegation:1">>} -> true; {<<"delegate">>, <<"urn:xmpp:delegation:1">>, _} -> true; {<<"delegate">>, <<>>, <<"urn:xmpp:delegation:1">>} -> true; {<<"delegation">>, <<"urn:xmpp:delegation:1">>, _} -> true; {<<"delegation">>, <<>>, <<"urn:xmpp:delegation:1">>} -> true; {<<"delegated">>, <<"urn:xmpp:delegation:1">>, _} -> true; {<<"delegated">>, <<>>, <<"urn:xmpp:delegation:1">>} -> true; {<<"attribute">>, <<"urn:xmpp:delegation:1">>, _} -> true; {<<"attribute">>, <<>>, <<"urn:xmpp:delegation:1">>} -> true; {<<"privilege">>, <<"urn:xmpp:privilege:1">>, _} -> true; {<<"privilege">>, <<>>, <<"urn:xmpp:privilege:1">>} -> true; {<<"perm">>, <<"urn:xmpp:privilege:1">>, _} -> true; {<<"perm">>, <<>>, <<"urn:xmpp:privilege:1">>} -> true; {<<"thumbnail">>, <<"urn:xmpp:thumbs:1">>, _} -> true; {<<"thumbnail">>, <<>>, <<"urn:xmpp:thumbs:1">>} -> true; {<<"slot">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"slot">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"slot">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"slot">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"put">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"put">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"put">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"put">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"get">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"get">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"get">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"get">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"request">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"request">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"request">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"request">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"content-type">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"content-type">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"content-type">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"content-type">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"size">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"size">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"size">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"size">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"filename">>, <<"urn:xmpp:http:upload">>, _} -> true; {<<"filename">>, <<>>, <<"urn:xmpp:http:upload">>} -> true; {<<"filename">>, <<"eu:siacs:conversations:http:upload">>, _} -> true; {<<"filename">>, <<>>, <<"eu:siacs:conversations:http:upload">>} -> true; {<<"address">>, <<"urn:xmpp:sic:0">>, _} -> true; {<<"address">>, <<>>, <<"urn:xmpp:sic:0">>} -> true; {<<"address">>, <<"urn:xmpp:sic:1">>, _} -> true; {<<"address">>, <<>>, <<"urn:xmpp:sic:1">>} -> true; {<<"port">>, <<"urn:xmpp:sic:1">>, _} -> true; {<<"port">>, <<>>, <<"urn:xmpp:sic:1">>} -> true; {<<"ip">>, <<"urn:xmpp:sic:0">>, _} -> true; {<<"ip">>, <<>>, <<"urn:xmpp:sic:0">>} -> true; {<<"ip">>, <<"urn:xmpp:sic:1">>, _} -> true; {<<"ip">>, <<>>, <<"urn:xmpp:sic:1">>} -> true; {<<"x">>, <<"jabber:x:oob">>, _} -> true; {<<"x">>, <<>>, <<"jabber:x:oob">>} -> true; {<<"desc">>, <<"jabber:x:oob">>, _} -> true; {<<"desc">>, <<>>, <<"jabber:x:oob">>} -> true; {<<"url">>, <<"jabber:x:oob">>, _} -> true; {<<"url">>, <<>>, <<"jabber:x:oob">>} -> true; {<<"media">>, <<"urn:xmpp:media-element">>, _} -> true; {<<"media">>, <<>>, <<"urn:xmpp:media-element">>} -> true; {<<"uri">>, <<"urn:xmpp:media-element">>, _} -> true; {<<"uri">>, <<>>, <<"urn:xmpp:media-element">>} -> true; {<<"captcha">>, <<"urn:xmpp:captcha">>, _} -> true; {<<"captcha">>, <<>>, <<"urn:xmpp:captcha">>} -> true; {<<"data">>, <<"urn:xmpp:bob">>, _} -> true; {<<"data">>, <<>>, <<"urn:xmpp:bob">>} -> true; {<<"stream:stream">>, <<"jabber:client">>, _} -> true; {<<"stream:stream">>, <<>>, <<"jabber:client">>} -> true; {<<"stream:stream">>, <<"jabber:server">>, _} -> true; {<<"stream:stream">>, <<>>, <<"jabber:server">>} -> true; {<<"stream:stream">>, <<"jabber:component:accept">>, _} -> true; {<<"stream:stream">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"handshake">>, <<"jabber:component:accept">>, _} -> true; {<<"handshake">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"db:verify">>, <<"jabber:server">>, _} -> true; {<<"db:verify">>, <<>>, <<"jabber:server">>} -> true; {<<"db:result">>, <<"jabber:server">>, _} -> true; {<<"db:result">>, <<>>, <<"jabber:server">>} -> true; {<<"command">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"command">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"note">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"note">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"actions">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"actions">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"complete">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"complete">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"next">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"next">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"prev">>, <<"http://jabber.org/protocol/commands">>, _} -> true; {<<"prev">>, <<>>, <<"http://jabber.org/protocol/commands">>} -> true; {<<"client-id">>, <<"urn:xmpp:sid:0">>, _} -> true; {<<"client-id">>, <<>>, <<"urn:xmpp:sid:0">>} -> true; {<<"stanza-id">>, <<"urn:xmpp:sid:0">>, _} -> true; {<<"stanza-id">>, <<>>, <<"urn:xmpp:sid:0">>} -> true; {<<"addresses">>, <<"http://jabber.org/protocol/address">>, _} -> true; {<<"addresses">>, <<>>, <<"http://jabber.org/protocol/address">>} -> true; {<<"address">>, <<"http://jabber.org/protocol/address">>, _} -> true; {<<"address">>, <<>>, <<"http://jabber.org/protocol/address">>} -> true; {<<"nick">>, <<"http://jabber.org/protocol/nick">>, _} -> true; {<<"nick">>, <<>>, <<"http://jabber.org/protocol/nick">>} -> true; {<<"x">>, <<"jabber:x:expire">>, _} -> true; {<<"x">>, <<>>, <<"jabber:x:expire">>} -> true; {<<"x">>, <<"jabber:x:event">>, _} -> true; {<<"x">>, <<>>, <<"jabber:x:event">>} -> true; {<<"id">>, <<"jabber:x:event">>, _} -> true; {<<"id">>, <<>>, <<"jabber:x:event">>} -> true; {<<"composing">>, <<"jabber:x:event">>, _} -> true; {<<"composing">>, <<>>, <<"jabber:x:event">>} -> true; {<<"displayed">>, <<"jabber:x:event">>, _} -> true; {<<"displayed">>, <<>>, <<"jabber:x:event">>} -> true; {<<"delivered">>, <<"jabber:x:event">>, _} -> true; {<<"delivered">>, <<>>, <<"jabber:x:event">>} -> true; {<<"offline">>, <<"jabber:x:event">>, _} -> true; {<<"offline">>, <<>>, <<"jabber:x:event">>} -> true; {<<"query">>, <<"jabber:iq:search">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"item">>, <<"jabber:iq:search">>, _} -> true; {<<"item">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"email">>, <<"jabber:iq:search">>, _} -> true; {<<"email">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"nick">>, <<"jabber:iq:search">>, _} -> true; {<<"nick">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"last">>, <<"jabber:iq:search">>, _} -> true; {<<"last">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"first">>, <<"jabber:iq:search">>, _} -> true; {<<"first">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"instructions">>, <<"jabber:iq:search">>, _} -> true; {<<"instructions">>, <<>>, <<"jabber:iq:search">>} -> true; {<<"no-permanent-storage">>, <<"urn:xmpp:hints">>, _} -> true; {<<"no-permanent-storage">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"no-permanent-store">>, <<"urn:xmpp:hints">>, _} -> true; {<<"no-permanent-store">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"store">>, <<"urn:xmpp:hints">>, _} -> true; {<<"store">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"no-storage">>, <<"urn:xmpp:hints">>, _} -> true; {<<"no-storage">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"no-store">>, <<"urn:xmpp:hints">>, _} -> true; {<<"no-store">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"no-copy">>, <<"urn:xmpp:hints">>, _} -> true; {<<"no-copy">>, <<>>, <<"urn:xmpp:hints">>} -> true; {<<"participant">>, <<"urn:xmpp:mix:0">>, _} -> true; {<<"participant">>, <<>>, <<"urn:xmpp:mix:0">>} -> true; {<<"leave">>, <<"urn:xmpp:mix:0">>, _} -> true; {<<"leave">>, <<>>, <<"urn:xmpp:mix:0">>} -> true; {<<"join">>, <<"urn:xmpp:mix:0">>, _} -> true; {<<"join">>, <<>>, <<"urn:xmpp:mix:0">>} -> true; {<<"subscribe">>, <<"urn:xmpp:mix:0">>, _} -> true; {<<"subscribe">>, <<>>, <<"urn:xmpp:mix:0">>} -> true; {<<"offline">>, <<"http://jabber.org/protocol/offline">>, _} -> true; {<<"offline">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/offline">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> true; {<<"fetch">>, <<"http://jabber.org/protocol/offline">>, _} -> true; {<<"fetch">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> true; {<<"purge">>, <<"http://jabber.org/protocol/offline">>, _} -> true; {<<"purge">>, <<>>, <<"http://jabber.org/protocol/offline">>} -> true; {<<"failed">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"failed">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"failed">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"failed">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"a">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"a">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"a">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"a">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"r">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"r">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"r">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"r">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"resumed">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"resumed">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"resumed">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"resumed">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"resume">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"resume">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"resume">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"resume">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"enabled">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"enabled">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"enabled">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"enabled">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"enable">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"enable">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"enable">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"enable">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"sm">>, <<"urn:xmpp:sm:2">>, _} -> true; {<<"sm">>, <<>>, <<"urn:xmpp:sm:2">>} -> true; {<<"sm">>, <<"urn:xmpp:sm:3">>, _} -> true; {<<"sm">>, <<>>, <<"urn:xmpp:sm:3">>} -> true; {<<"inactive">>, <<"urn:xmpp:csi:0">>, _} -> true; {<<"inactive">>, <<>>, <<"urn:xmpp:csi:0">>} -> true; {<<"active">>, <<"urn:xmpp:csi:0">>, _} -> true; {<<"active">>, <<>>, <<"urn:xmpp:csi:0">>} -> true; {<<"csi">>, <<"urn:xmpp:csi:0">>, _} -> true; {<<"csi">>, <<>>, <<"urn:xmpp:csi:0">>} -> true; {<<"sent">>, <<"urn:xmpp:carbons:2">>, _} -> true; {<<"sent">>, <<>>, <<"urn:xmpp:carbons:2">>} -> true; {<<"received">>, <<"urn:xmpp:carbons:2">>, _} -> true; {<<"received">>, <<>>, <<"urn:xmpp:carbons:2">>} -> true; {<<"private">>, <<"urn:xmpp:carbons:2">>, _} -> true; {<<"private">>, <<>>, <<"urn:xmpp:carbons:2">>} -> true; {<<"enable">>, <<"urn:xmpp:carbons:2">>, _} -> true; {<<"enable">>, <<>>, <<"urn:xmpp:carbons:2">>} -> true; {<<"disable">>, <<"urn:xmpp:carbons:2">>, _} -> true; {<<"disable">>, <<>>, <<"urn:xmpp:carbons:2">>} -> true; {<<"forwarded">>, <<"urn:xmpp:forward:0">>, _} -> true; {<<"forwarded">>, <<>>, <<"urn:xmpp:forward:0">>} -> true; {<<"fin">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"fin">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"fin">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"fin">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"prefs">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"prefs">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"prefs">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"prefs">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"prefs">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"prefs">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"always">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"always">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"always">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"always">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"always">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"always">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"never">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"never">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"never">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"never">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"never">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"never">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"jid">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"jid">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"jid">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"jid">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"jid">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"jid">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"result">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"result">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"result">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"result">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"result">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"result">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"archived">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"archived">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"query">>, <<"urn:xmpp:mam:0">>, _} -> true; {<<"query">>, <<>>, <<"urn:xmpp:mam:0">>} -> true; {<<"query">>, <<"urn:xmpp:mam:1">>, _} -> true; {<<"query">>, <<>>, <<"urn:xmpp:mam:1">>} -> true; {<<"query">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"query">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"withtext">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"withtext">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"with">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"with">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"end">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"end">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"start">>, <<"urn:xmpp:mam:tmp">>, _} -> true; {<<"start">>, <<>>, <<"urn:xmpp:mam:tmp">>} -> true; {<<"set">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"set">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"first">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"first">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"max">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"max">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"index">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"index">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"count">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"count">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"last">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"last">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"before">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"before">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"after">>, <<"http://jabber.org/protocol/rsm">>, _} -> true; {<<"after">>, <<>>, <<"http://jabber.org/protocol/rsm">>} -> true; {<<"unsubscribe">>, <<"urn:xmpp:mucsub:0">>, _} -> true; {<<"unsubscribe">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> true; {<<"subscribe">>, <<"urn:xmpp:mucsub:0">>, _} -> true; {<<"subscribe">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> true; {<<"event">>, <<"urn:xmpp:mucsub:0">>, _} -> true; {<<"event">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> true; {<<"subscriptions">>, <<"urn:xmpp:mucsub:0">>, _} -> true; {<<"subscriptions">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> true; {<<"subscription">>, <<"urn:xmpp:mucsub:0">>, _} -> true; {<<"subscription">>, <<>>, <<"urn:xmpp:mucsub:0">>} -> true; {<<"x">>, <<"jabber:x:conference">>, _} -> true; {<<"x">>, <<>>, <<"jabber:x:conference">>} -> true; {<<"unique">>, <<"http://jabber.org/protocol/muc#unique">>, _} -> true; {<<"unique">>, <<>>, <<"http://jabber.org/protocol/muc#unique">>} -> true; {<<"x">>, <<"http://jabber.org/protocol/muc">>, _} -> true; {<<"x">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> true; {<<"continue">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> true; {<<"continue">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> true; {<<"actor">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> true; {<<"actor">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> true; {<<"password">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> true; {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> true; {<<"password">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"password">>, <<"http://jabber.org/protocol/muc">>, _} -> true; {<<"password">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> true; {<<"x">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"x">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"status">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"status">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"continue">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"continue">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"actor">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"actor">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"invite">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"invite">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"destroy">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"destroy">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"destroy">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> true; {<<"destroy">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> true; {<<"decline">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"decline">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"reason">>, <<"http://jabber.org/protocol/muc#user">>, _} -> true; {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#user">>} -> true; {<<"reason">>, <<"http://jabber.org/protocol/muc#admin">>, _} -> true; {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#admin">>} -> true; {<<"reason">>, <<"http://jabber.org/protocol/muc#owner">>, _} -> true; {<<"reason">>, <<>>, <<"http://jabber.org/protocol/muc#owner">>} -> true; {<<"history">>, <<"http://jabber.org/protocol/muc">>, _} -> true; {<<"history">>, <<>>, <<"http://jabber.org/protocol/muc">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> true; {<<"activate">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> true; {<<"activate">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> true; {<<"streamhost-used">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> true; {<<"streamhost-used">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> true; {<<"streamhost">>, <<"http://jabber.org/protocol/bytestreams">>, _} -> true; {<<"streamhost">>, <<>>, <<"http://jabber.org/protocol/bytestreams">>} -> true; {<<"delay">>, <<"urn:xmpp:delay">>, _} -> true; {<<"delay">>, <<>>, <<"urn:xmpp:delay">>} -> true; {<<"paused">>, <<"http://jabber.org/protocol/chatstates">>, _} -> true; {<<"paused">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> true; {<<"inactive">>, <<"http://jabber.org/protocol/chatstates">>, _} -> true; {<<"inactive">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> true; {<<"gone">>, <<"http://jabber.org/protocol/chatstates">>, _} -> true; {<<"gone">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> true; {<<"composing">>, <<"http://jabber.org/protocol/chatstates">>, _} -> true; {<<"composing">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> true; {<<"active">>, <<"http://jabber.org/protocol/chatstates">>, _} -> true; {<<"active">>, <<>>, <<"http://jabber.org/protocol/chatstates">>} -> true; {<<"headers">>, <<"http://jabber.org/protocol/shim">>, _} -> true; {<<"headers">>, <<>>, <<"http://jabber.org/protocol/shim">>} -> true; {<<"header">>, <<"http://jabber.org/protocol/shim">>, _} -> true; {<<"header">>, <<>>, <<"http://jabber.org/protocol/shim">>} -> true; {<<"unsupported-access-model">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"unsupported-access-model">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"unsupported">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"unsupported">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"too-many-subscriptions">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"too-many-subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"subid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"subid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"presence-subscription-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"presence-subscription-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"pending-subscription">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"pending-subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"payload-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"payload-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"payload-too-big">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"payload-too-big">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"not-subscribed">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"not-subscribed">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"not-in-roster-group">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"not-in-roster-group">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"nodeid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"nodeid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"max-nodes-exceeded">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"max-nodes-exceeded">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"max-items-exceeded">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"max-items-exceeded">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"jid-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"jid-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"item-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"item-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"item-forbidden">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"item-forbidden">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"invalid-subid">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"invalid-subid">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"invalid-payload">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"invalid-payload">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"invalid-options">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"invalid-options">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"invalid-jid">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"invalid-jid">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"configuration-required">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"configuration-required">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"closed-node">>, <<"http://jabber.org/protocol/pubsub#errors">>, _} -> true; {<<"closed-node">>, <<>>, <<"http://jabber.org/protocol/pubsub#errors">>} -> true; {<<"pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"pubsub">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"pubsub">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"pubsub">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"purge">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"purge">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"purge">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"purge">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"delete">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"delete">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"delete">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"delete">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"redirect">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"redirect">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"redirect">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"redirect">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"default">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"default">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"default">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"default">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"publish-options">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"publish-options">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"configure">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"configure">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"configure">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"configure">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"create">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"create">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"create">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"create">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"retract">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"retract">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"options">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"options">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"publish">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"publish">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"unsubscribe">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"unsubscribe">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"subscribe">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"subscribe">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"affiliations">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"affiliations">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"affiliations">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"affiliations">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"subscriptions">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"subscriptions">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"subscriptions">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"event">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"event">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"items">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"items">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"items">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"items">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"retract">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"retract">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"configuration">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"configuration">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"affiliation">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"affiliation">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"affiliation">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"affiliation">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"subscription">>, <<"http://jabber.org/protocol/pubsub">>, _} -> true; {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub">>} -> true; {<<"subscription">>, <<"http://jabber.org/protocol/pubsub#owner">>, _} -> true; {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#owner">>} -> true; {<<"subscription">>, <<"http://jabber.org/protocol/pubsub#event">>, _} -> true; {<<"subscription">>, <<>>, <<"http://jabber.org/protocol/pubsub#event">>} -> true; {<<"x">>, <<"jabber:x:data">>, _} -> true; {<<"x">>, <<>>, <<"jabber:x:data">>} -> true; {<<"item">>, <<"jabber:x:data">>, _} -> true; {<<"item">>, <<>>, <<"jabber:x:data">>} -> true; {<<"reported">>, <<"jabber:x:data">>, _} -> true; {<<"reported">>, <<>>, <<"jabber:x:data">>} -> true; {<<"title">>, <<"jabber:x:data">>, _} -> true; {<<"title">>, <<>>, <<"jabber:x:data">>} -> true; {<<"instructions">>, <<"jabber:x:data">>, _} -> true; {<<"instructions">>, <<>>, <<"jabber:x:data">>} -> true; {<<"field">>, <<"jabber:x:data">>, _} -> true; {<<"field">>, <<>>, <<"jabber:x:data">>} -> true; {<<"option">>, <<"jabber:x:data">>, _} -> true; {<<"option">>, <<>>, <<"jabber:x:data">>} -> true; {<<"value">>, <<"jabber:x:data">>, _} -> true; {<<"value">>, <<>>, <<"jabber:x:data">>} -> true; {<<"desc">>, <<"jabber:x:data">>, _} -> true; {<<"desc">>, <<>>, <<"jabber:x:data">>} -> true; {<<"required">>, <<"jabber:x:data">>, _} -> true; {<<"required">>, <<>>, <<"jabber:x:data">>} -> true; {<<"x">>, <<"vcard-temp:x:update">>, _} -> true; {<<"x">>, <<>>, <<"vcard-temp:x:update">>} -> true; {<<"photo">>, <<"vcard-temp:x:update">>, _} -> true; {<<"photo">>, <<>>, <<"vcard-temp:x:update">>} -> true; {<<"vCard">>, <<"vcard-temp">>, _} -> true; {<<"vCard">>, <<>>, <<"vcard-temp">>} -> true; {<<"CLASS">>, <<"vcard-temp">>, _} -> true; {<<"CLASS">>, <<>>, <<"vcard-temp">>} -> true; {<<"CATEGORIES">>, <<"vcard-temp">>, _} -> true; {<<"CATEGORIES">>, <<>>, <<"vcard-temp">>} -> true; {<<"KEY">>, <<"vcard-temp">>, _} -> true; {<<"KEY">>, <<>>, <<"vcard-temp">>} -> true; {<<"SOUND">>, <<"vcard-temp">>, _} -> true; {<<"SOUND">>, <<>>, <<"vcard-temp">>} -> true; {<<"ORG">>, <<"vcard-temp">>, _} -> true; {<<"ORG">>, <<>>, <<"vcard-temp">>} -> true; {<<"PHOTO">>, <<"vcard-temp">>, _} -> true; {<<"PHOTO">>, <<>>, <<"vcard-temp">>} -> true; {<<"LOGO">>, <<"vcard-temp">>, _} -> true; {<<"LOGO">>, <<>>, <<"vcard-temp">>} -> true; {<<"BINVAL">>, <<"vcard-temp">>, _} -> true; {<<"BINVAL">>, <<>>, <<"vcard-temp">>} -> true; {<<"GEO">>, <<"vcard-temp">>, _} -> true; {<<"GEO">>, <<>>, <<"vcard-temp">>} -> true; {<<"EMAIL">>, <<"vcard-temp">>, _} -> true; {<<"EMAIL">>, <<>>, <<"vcard-temp">>} -> true; {<<"TEL">>, <<"vcard-temp">>, _} -> true; {<<"TEL">>, <<>>, <<"vcard-temp">>} -> true; {<<"LABEL">>, <<"vcard-temp">>, _} -> true; {<<"LABEL">>, <<>>, <<"vcard-temp">>} -> true; {<<"ADR">>, <<"vcard-temp">>, _} -> true; {<<"ADR">>, <<>>, <<"vcard-temp">>} -> true; {<<"N">>, <<"vcard-temp">>, _} -> true; {<<"N">>, <<>>, <<"vcard-temp">>} -> true; {<<"CONFIDENTIAL">>, <<"vcard-temp">>, _} -> true; {<<"CONFIDENTIAL">>, <<>>, <<"vcard-temp">>} -> true; {<<"PRIVATE">>, <<"vcard-temp">>, _} -> true; {<<"PRIVATE">>, <<>>, <<"vcard-temp">>} -> true; {<<"PUBLIC">>, <<"vcard-temp">>, _} -> true; {<<"PUBLIC">>, <<>>, <<"vcard-temp">>} -> true; {<<"EXTVAL">>, <<"vcard-temp">>, _} -> true; {<<"EXTVAL">>, <<>>, <<"vcard-temp">>} -> true; {<<"TYPE">>, <<"vcard-temp">>, _} -> true; {<<"TYPE">>, <<>>, <<"vcard-temp">>} -> true; {<<"DESC">>, <<"vcard-temp">>, _} -> true; {<<"DESC">>, <<>>, <<"vcard-temp">>} -> true; {<<"URL">>, <<"vcard-temp">>, _} -> true; {<<"URL">>, <<>>, <<"vcard-temp">>} -> true; {<<"UID">>, <<"vcard-temp">>, _} -> true; {<<"UID">>, <<>>, <<"vcard-temp">>} -> true; {<<"SORT-STRING">>, <<"vcard-temp">>, _} -> true; {<<"SORT-STRING">>, <<>>, <<"vcard-temp">>} -> true; {<<"REV">>, <<"vcard-temp">>, _} -> true; {<<"REV">>, <<>>, <<"vcard-temp">>} -> true; {<<"PRODID">>, <<"vcard-temp">>, _} -> true; {<<"PRODID">>, <<>>, <<"vcard-temp">>} -> true; {<<"NOTE">>, <<"vcard-temp">>, _} -> true; {<<"NOTE">>, <<>>, <<"vcard-temp">>} -> true; {<<"KEYWORD">>, <<"vcard-temp">>, _} -> true; {<<"KEYWORD">>, <<>>, <<"vcard-temp">>} -> true; {<<"ROLE">>, <<"vcard-temp">>, _} -> true; {<<"ROLE">>, <<>>, <<"vcard-temp">>} -> true; {<<"TITLE">>, <<"vcard-temp">>, _} -> true; {<<"TITLE">>, <<>>, <<"vcard-temp">>} -> true; {<<"TZ">>, <<"vcard-temp">>, _} -> true; {<<"TZ">>, <<>>, <<"vcard-temp">>} -> true; {<<"MAILER">>, <<"vcard-temp">>, _} -> true; {<<"MAILER">>, <<>>, <<"vcard-temp">>} -> true; {<<"JABBERID">>, <<"vcard-temp">>, _} -> true; {<<"JABBERID">>, <<>>, <<"vcard-temp">>} -> true; {<<"BDAY">>, <<"vcard-temp">>, _} -> true; {<<"BDAY">>, <<>>, <<"vcard-temp">>} -> true; {<<"NICKNAME">>, <<"vcard-temp">>, _} -> true; {<<"NICKNAME">>, <<>>, <<"vcard-temp">>} -> true; {<<"FN">>, <<"vcard-temp">>, _} -> true; {<<"FN">>, <<>>, <<"vcard-temp">>} -> true; {<<"VERSION">>, <<"vcard-temp">>, _} -> true; {<<"VERSION">>, <<>>, <<"vcard-temp">>} -> true; {<<"CRED">>, <<"vcard-temp">>, _} -> true; {<<"CRED">>, <<>>, <<"vcard-temp">>} -> true; {<<"PHONETIC">>, <<"vcard-temp">>, _} -> true; {<<"PHONETIC">>, <<>>, <<"vcard-temp">>} -> true; {<<"ORGUNIT">>, <<"vcard-temp">>, _} -> true; {<<"ORGUNIT">>, <<>>, <<"vcard-temp">>} -> true; {<<"ORGNAME">>, <<"vcard-temp">>, _} -> true; {<<"ORGNAME">>, <<>>, <<"vcard-temp">>} -> true; {<<"LON">>, <<"vcard-temp">>, _} -> true; {<<"LON">>, <<>>, <<"vcard-temp">>} -> true; {<<"LAT">>, <<"vcard-temp">>, _} -> true; {<<"LAT">>, <<>>, <<"vcard-temp">>} -> true; {<<"USERID">>, <<"vcard-temp">>, _} -> true; {<<"USERID">>, <<>>, <<"vcard-temp">>} -> true; {<<"NUMBER">>, <<"vcard-temp">>, _} -> true; {<<"NUMBER">>, <<>>, <<"vcard-temp">>} -> true; {<<"LINE">>, <<"vcard-temp">>, _} -> true; {<<"LINE">>, <<>>, <<"vcard-temp">>} -> true; {<<"CTRY">>, <<"vcard-temp">>, _} -> true; {<<"CTRY">>, <<>>, <<"vcard-temp">>} -> true; {<<"PCODE">>, <<"vcard-temp">>, _} -> true; {<<"PCODE">>, <<>>, <<"vcard-temp">>} -> true; {<<"REGION">>, <<"vcard-temp">>, _} -> true; {<<"REGION">>, <<>>, <<"vcard-temp">>} -> true; {<<"LOCALITY">>, <<"vcard-temp">>, _} -> true; {<<"LOCALITY">>, <<>>, <<"vcard-temp">>} -> true; {<<"STREET">>, <<"vcard-temp">>, _} -> true; {<<"STREET">>, <<>>, <<"vcard-temp">>} -> true; {<<"EXTADD">>, <<"vcard-temp">>, _} -> true; {<<"EXTADD">>, <<>>, <<"vcard-temp">>} -> true; {<<"POBOX">>, <<"vcard-temp">>, _} -> true; {<<"POBOX">>, <<>>, <<"vcard-temp">>} -> true; {<<"SUFFIX">>, <<"vcard-temp">>, _} -> true; {<<"SUFFIX">>, <<>>, <<"vcard-temp">>} -> true; {<<"PREFIX">>, <<"vcard-temp">>, _} -> true; {<<"PREFIX">>, <<>>, <<"vcard-temp">>} -> true; {<<"MIDDLE">>, <<"vcard-temp">>, _} -> true; {<<"MIDDLE">>, <<>>, <<"vcard-temp">>} -> true; {<<"GIVEN">>, <<"vcard-temp">>, _} -> true; {<<"GIVEN">>, <<>>, <<"vcard-temp">>} -> true; {<<"FAMILY">>, <<"vcard-temp">>, _} -> true; {<<"FAMILY">>, <<>>, <<"vcard-temp">>} -> true; {<<"X400">>, <<"vcard-temp">>, _} -> true; {<<"X400">>, <<>>, <<"vcard-temp">>} -> true; {<<"INTERNET">>, <<"vcard-temp">>, _} -> true; {<<"INTERNET">>, <<>>, <<"vcard-temp">>} -> true; {<<"PREF">>, <<"vcard-temp">>, _} -> true; {<<"PREF">>, <<>>, <<"vcard-temp">>} -> true; {<<"INTL">>, <<"vcard-temp">>, _} -> true; {<<"INTL">>, <<>>, <<"vcard-temp">>} -> true; {<<"DOM">>, <<"vcard-temp">>, _} -> true; {<<"DOM">>, <<>>, <<"vcard-temp">>} -> true; {<<"PARCEL">>, <<"vcard-temp">>, _} -> true; {<<"PARCEL">>, <<>>, <<"vcard-temp">>} -> true; {<<"POSTAL">>, <<"vcard-temp">>, _} -> true; {<<"POSTAL">>, <<>>, <<"vcard-temp">>} -> true; {<<"PCS">>, <<"vcard-temp">>, _} -> true; {<<"PCS">>, <<>>, <<"vcard-temp">>} -> true; {<<"ISDN">>, <<"vcard-temp">>, _} -> true; {<<"ISDN">>, <<>>, <<"vcard-temp">>} -> true; {<<"MODEM">>, <<"vcard-temp">>, _} -> true; {<<"MODEM">>, <<>>, <<"vcard-temp">>} -> true; {<<"BBS">>, <<"vcard-temp">>, _} -> true; {<<"BBS">>, <<>>, <<"vcard-temp">>} -> true; {<<"VIDEO">>, <<"vcard-temp">>, _} -> true; {<<"VIDEO">>, <<>>, <<"vcard-temp">>} -> true; {<<"CELL">>, <<"vcard-temp">>, _} -> true; {<<"CELL">>, <<>>, <<"vcard-temp">>} -> true; {<<"MSG">>, <<"vcard-temp">>, _} -> true; {<<"MSG">>, <<>>, <<"vcard-temp">>} -> true; {<<"PAGER">>, <<"vcard-temp">>, _} -> true; {<<"PAGER">>, <<>>, <<"vcard-temp">>} -> true; {<<"FAX">>, <<"vcard-temp">>, _} -> true; {<<"FAX">>, <<>>, <<"vcard-temp">>} -> true; {<<"VOICE">>, <<"vcard-temp">>, _} -> true; {<<"VOICE">>, <<>>, <<"vcard-temp">>} -> true; {<<"WORK">>, <<"vcard-temp">>, _} -> true; {<<"WORK">>, <<>>, <<"vcard-temp">>} -> true; {<<"HOME">>, <<"vcard-temp">>, _} -> true; {<<"HOME">>, <<>>, <<"vcard-temp">>} -> true; {<<"stream:error">>, <<"jabber:client">>, _} -> true; {<<"stream:error">>, <<>>, <<"jabber:client">>} -> true; {<<"stream:error">>, <<"jabber:server">>, _} -> true; {<<"stream:error">>, <<>>, <<"jabber:server">>} -> true; {<<"stream:error">>, <<"jabber:component:accept">>, _} -> true; {<<"stream:error">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"unsupported-version">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"unsupported-version">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"unsupported-stanza-type">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"unsupported-stanza-type">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"unsupported-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"unsupported-encoding">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"undefined-condition">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"system-shutdown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"system-shutdown">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"see-other-host">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"see-other-host">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"restricted-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"restricted-xml">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"resource-constraint">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"reset">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"reset">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"remote-connection-failed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"remote-connection-failed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"policy-violation">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"not-well-formed">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"not-well-formed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"invalid-xml">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"invalid-xml">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"invalid-namespace">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"invalid-namespace">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"invalid-id">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"invalid-id">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"invalid-from">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"invalid-from">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"internal-server-error">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"improper-addressing">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"improper-addressing">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"host-unknown">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"host-unknown">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"host-gone">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"host-gone">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"connection-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"connection-timeout">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"conflict">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"bad-namespace-prefix">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"bad-namespace-prefix">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"bad-format">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"bad-format">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-streams">>, _} -> true; {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-streams">>} -> true; {<<"time">>, <<"urn:xmpp:time">>, _} -> true; {<<"time">>, <<>>, <<"urn:xmpp:time">>} -> true; {<<"tzo">>, <<"urn:xmpp:time">>, _} -> true; {<<"tzo">>, <<>>, <<"urn:xmpp:time">>} -> true; {<<"utc">>, <<"urn:xmpp:time">>, _} -> true; {<<"utc">>, <<>>, <<"urn:xmpp:time">>} -> true; {<<"ping">>, <<"urn:xmpp:ping">>, _} -> true; {<<"ping">>, <<>>, <<"urn:xmpp:ping">>} -> true; {<<"session">>, <<"urn:ietf:params:xml:ns:xmpp-session">>, _} -> true; {<<"session">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-session">>} -> true; {<<"optional">>, <<"urn:ietf:params:xml:ns:xmpp-session">>, _} -> true; {<<"optional">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-session">>} -> true; {<<"query">>, <<"jabber:iq:register">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"key">>, <<"jabber:iq:register">>, _} -> true; {<<"key">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"text">>, <<"jabber:iq:register">>, _} -> true; {<<"text">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"misc">>, <<"jabber:iq:register">>, _} -> true; {<<"misc">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"date">>, <<"jabber:iq:register">>, _} -> true; {<<"date">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"url">>, <<"jabber:iq:register">>, _} -> true; {<<"url">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"phone">>, <<"jabber:iq:register">>, _} -> true; {<<"phone">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"zip">>, <<"jabber:iq:register">>, _} -> true; {<<"zip">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"state">>, <<"jabber:iq:register">>, _} -> true; {<<"state">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"city">>, <<"jabber:iq:register">>, _} -> true; {<<"city">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"address">>, <<"jabber:iq:register">>, _} -> true; {<<"address">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"email">>, <<"jabber:iq:register">>, _} -> true; {<<"email">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"last">>, <<"jabber:iq:register">>, _} -> true; {<<"last">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"first">>, <<"jabber:iq:register">>, _} -> true; {<<"first">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"name">>, <<"jabber:iq:register">>, _} -> true; {<<"name">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"password">>, <<"jabber:iq:register">>, _} -> true; {<<"password">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"nick">>, <<"jabber:iq:register">>, _} -> true; {<<"nick">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"username">>, <<"jabber:iq:register">>, _} -> true; {<<"username">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"instructions">>, <<"jabber:iq:register">>, _} -> true; {<<"instructions">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"remove">>, <<"jabber:iq:register">>, _} -> true; {<<"remove">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"registered">>, <<"jabber:iq:register">>, _} -> true; {<<"registered">>, <<>>, <<"jabber:iq:register">>} -> true; {<<"register">>, <<"http://jabber.org/features/iq-register">>, _} -> true; {<<"register">>, <<>>, <<"http://jabber.org/features/iq-register">>} -> true; {<<"c">>, <<"http://jabber.org/protocol/caps">>, _} -> true; {<<"c">>, <<>>, <<"http://jabber.org/protocol/caps">>} -> true; {<<"ack">>, <<"p1:ack">>, _} -> true; {<<"ack">>, <<>>, <<"p1:ack">>} -> true; {<<"rebind">>, <<"p1:rebind">>, _} -> true; {<<"rebind">>, <<>>, <<"p1:rebind">>} -> true; {<<"push">>, <<"p1:push">>, _} -> true; {<<"push">>, <<>>, <<"p1:push">>} -> true; {<<"stream:features">>, <<"jabber:client">>, _} -> true; {<<"stream:features">>, <<>>, <<"jabber:client">>} -> true; {<<"stream:features">>, <<"jabber:server">>, _} -> true; {<<"stream:features">>, <<>>, <<"jabber:server">>} -> true; {<<"compression">>, <<"http://jabber.org/features/compress">>, _} -> true; {<<"compression">>, <<>>, <<"http://jabber.org/features/compress">>} -> true; {<<"method">>, <<"http://jabber.org/features/compress">>, _} -> true; {<<"method">>, <<>>, <<"http://jabber.org/features/compress">>} -> true; {<<"compressed">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"compressed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"compress">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"compress">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"method">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"method">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"failure">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"failure">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"unsupported-method">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"unsupported-method">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"processing-failed">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"processing-failed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"setup-failed">>, <<"http://jabber.org/protocol/compress">>, _} -> true; {<<"setup-failed">>, <<>>, <<"http://jabber.org/protocol/compress">>} -> true; {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> true; {<<"failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> true; {<<"proceed">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> true; {<<"proceed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> true; {<<"starttls">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> true; {<<"starttls">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> true; {<<"required">>, <<"urn:ietf:params:xml:ns:xmpp-tls">>, _} -> true; {<<"required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-tls">>} -> true; {<<"mechanisms">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"mechanisms">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"mechanism">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"temporary-auth-failure">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"temporary-auth-failure">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"bad-protocol">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"bad-protocol">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"mechanism-too-weak">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"mechanism-too-weak">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"malformed-request">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"malformed-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"invalid-mechanism">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"invalid-mechanism">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"invalid-authzid">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"invalid-authzid">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"incorrect-encoding">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"incorrect-encoding">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"encryption-required">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"encryption-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"credentials-expired">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"credentials-expired">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"account-disabled">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"account-disabled">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"aborted">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"aborted">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"success">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"success">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"response">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"response">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"challenge">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"challenge">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"abort">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"abort">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"auth">>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>, _} -> true; {<<"auth">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-sasl">>} -> true; {<<"query">>, <<"jabber:iq:auth">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:auth">>} -> true; {<<"resource">>, <<"jabber:iq:auth">>, _} -> true; {<<"resource">>, <<>>, <<"jabber:iq:auth">>} -> true; {<<"digest">>, <<"jabber:iq:auth">>, _} -> true; {<<"digest">>, <<>>, <<"jabber:iq:auth">>} -> true; {<<"password">>, <<"jabber:iq:auth">>, _} -> true; {<<"password">>, <<>>, <<"jabber:iq:auth">>} -> true; {<<"username">>, <<"jabber:iq:auth">>, _} -> true; {<<"username">>, <<>>, <<"jabber:iq:auth">>} -> true; {<<"bind">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> true; {<<"bind">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> true; {<<"resource">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> true; {<<"resource">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> true; {<<"jid">>, <<"urn:ietf:params:xml:ns:xmpp-bind">>, _} -> true; {<<"jid">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-bind">>} -> true; {<<"error">>, <<"jabber:client">>, _} -> true; {<<"error">>, <<>>, <<"jabber:client">>} -> true; {<<"error">>, <<"jabber:server">>, _} -> true; {<<"error">>, <<>>, <<"jabber:server">>} -> true; {<<"error">>, <<"jabber:component:accept">>, _} -> true; {<<"error">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"text">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"text">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"unexpected-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"unexpected-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"undefined-condition">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"undefined-condition">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"subscription-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"subscription-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"service-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"service-unavailable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"resource-constraint">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"resource-constraint">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"remote-server-timeout">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"remote-server-timeout">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"remote-server-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"remote-server-not-found">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"registration-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"registration-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"redirect">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"redirect">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"recipient-unavailable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"recipient-unavailable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"policy-violation">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"policy-violation">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"payment-required">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"payment-required">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"not-authorized">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"not-authorized">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"not-allowed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"not-allowed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"not-acceptable">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"not-acceptable">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"jid-malformed">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"jid-malformed">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"item-not-found">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"item-not-found">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"internal-server-error">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"internal-server-error">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"gone">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"gone">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"forbidden">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"forbidden">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"feature-not-implemented">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"feature-not-implemented">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"conflict">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"conflict">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"bad-request">>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>, _} -> true; {<<"bad-request">>, <<>>, <<"urn:ietf:params:xml:ns:xmpp-stanzas">>} -> true; {<<"presence">>, <<"jabber:client">>, _} -> true; {<<"presence">>, <<>>, <<"jabber:client">>} -> true; {<<"presence">>, <<"jabber:server">>, _} -> true; {<<"presence">>, <<>>, <<"jabber:server">>} -> true; {<<"presence">>, <<"jabber:component:accept">>, _} -> true; {<<"presence">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"priority">>, <<"jabber:client">>, _} -> true; {<<"priority">>, <<>>, <<"jabber:client">>} -> true; {<<"priority">>, <<"jabber:server">>, _} -> true; {<<"priority">>, <<>>, <<"jabber:server">>} -> true; {<<"priority">>, <<"jabber:component:accept">>, _} -> true; {<<"priority">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"status">>, <<"jabber:client">>, _} -> true; {<<"status">>, <<>>, <<"jabber:client">>} -> true; {<<"status">>, <<"jabber:server">>, _} -> true; {<<"status">>, <<>>, <<"jabber:server">>} -> true; {<<"status">>, <<"jabber:component:accept">>, _} -> true; {<<"status">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"show">>, <<"jabber:client">>, _} -> true; {<<"show">>, <<>>, <<"jabber:client">>} -> true; {<<"show">>, <<"jabber:server">>, _} -> true; {<<"show">>, <<>>, <<"jabber:server">>} -> true; {<<"show">>, <<"jabber:component:accept">>, _} -> true; {<<"show">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"message">>, <<"jabber:client">>, _} -> true; {<<"message">>, <<>>, <<"jabber:client">>} -> true; {<<"message">>, <<"jabber:server">>, _} -> true; {<<"message">>, <<>>, <<"jabber:server">>} -> true; {<<"message">>, <<"jabber:component:accept">>, _} -> true; {<<"message">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"thread">>, <<"jabber:client">>, _} -> true; {<<"thread">>, <<>>, <<"jabber:client">>} -> true; {<<"thread">>, <<"jabber:server">>, _} -> true; {<<"thread">>, <<>>, <<"jabber:server">>} -> true; {<<"thread">>, <<"jabber:component:accept">>, _} -> true; {<<"thread">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"body">>, <<"jabber:client">>, _} -> true; {<<"body">>, <<>>, <<"jabber:client">>} -> true; {<<"body">>, <<"jabber:server">>, _} -> true; {<<"body">>, <<>>, <<"jabber:server">>} -> true; {<<"body">>, <<"jabber:component:accept">>, _} -> true; {<<"body">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"subject">>, <<"jabber:client">>, _} -> true; {<<"subject">>, <<>>, <<"jabber:client">>} -> true; {<<"subject">>, <<"jabber:server">>, _} -> true; {<<"subject">>, <<>>, <<"jabber:server">>} -> true; {<<"subject">>, <<"jabber:component:accept">>, _} -> true; {<<"subject">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"iq">>, <<"jabber:client">>, _} -> true; {<<"iq">>, <<>>, <<"jabber:client">>} -> true; {<<"iq">>, <<"jabber:server">>, _} -> true; {<<"iq">>, <<>>, <<"jabber:server">>} -> true; {<<"iq">>, <<"jabber:component:accept">>, _} -> true; {<<"iq">>, <<>>, <<"jabber:component:accept">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/stats">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> true; {<<"stat">>, <<"http://jabber.org/protocol/stats">>, _} -> true; {<<"stat">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> true; {<<"error">>, <<"http://jabber.org/protocol/stats">>, _} -> true; {<<"error">>, <<>>, <<"http://jabber.org/protocol/stats">>} -> true; {<<"storage">>, <<"storage:bookmarks">>, _} -> true; {<<"storage">>, <<>>, <<"storage:bookmarks">>} -> true; {<<"url">>, <<"storage:bookmarks">>, _} -> true; {<<"url">>, <<>>, <<"storage:bookmarks">>} -> true; {<<"conference">>, <<"storage:bookmarks">>, _} -> true; {<<"conference">>, <<>>, <<"storage:bookmarks">>} -> true; {<<"password">>, <<"storage:bookmarks">>, _} -> true; {<<"password">>, <<>>, <<"storage:bookmarks">>} -> true; {<<"nick">>, <<"storage:bookmarks">>, _} -> true; {<<"nick">>, <<>>, <<"storage:bookmarks">>} -> true; {<<"query">>, <<"jabber:iq:private">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:private">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/disco#items">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/disco#items">>} -> true; {<<"item">>, <<"http://jabber.org/protocol/disco#items">>, _} -> true; {<<"item">>, <<>>, <<"http://jabber.org/protocol/disco#items">>} -> true; {<<"query">>, <<"http://jabber.org/protocol/disco#info">>, _} -> true; {<<"query">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> true; {<<"feature">>, <<"http://jabber.org/protocol/disco#info">>, _} -> true; {<<"feature">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> true; {<<"identity">>, <<"http://jabber.org/protocol/disco#info">>, _} -> true; {<<"identity">>, <<>>, <<"http://jabber.org/protocol/disco#info">>} -> true; {<<"blocklist">>, <<"urn:xmpp:blocking">>, _} -> true; {<<"blocklist">>, <<>>, <<"urn:xmpp:blocking">>} -> true; {<<"unblock">>, <<"urn:xmpp:blocking">>, _} -> true; {<<"unblock">>, <<>>, <<"urn:xmpp:blocking">>} -> true; {<<"block">>, <<"urn:xmpp:blocking">>, _} -> true; {<<"block">>, <<>>, <<"urn:xmpp:blocking">>} -> true; {<<"item">>, <<"urn:xmpp:blocking">>, _} -> true; {<<"item">>, <<>>, <<"urn:xmpp:blocking">>} -> true; {<<"query">>, <<"jabber:iq:privacy">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"active">>, <<"jabber:iq:privacy">>, _} -> true; {<<"active">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"default">>, <<"jabber:iq:privacy">>, _} -> true; {<<"default">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"list">>, <<"jabber:iq:privacy">>, _} -> true; {<<"list">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"item">>, <<"jabber:iq:privacy">>, _} -> true; {<<"item">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"presence-out">>, <<"jabber:iq:privacy">>, _} -> true; {<<"presence-out">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"presence-in">>, <<"jabber:iq:privacy">>, _} -> true; {<<"presence-in">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"iq">>, <<"jabber:iq:privacy">>, _} -> true; {<<"iq">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"message">>, <<"jabber:iq:privacy">>, _} -> true; {<<"message">>, <<>>, <<"jabber:iq:privacy">>} -> true; {<<"ver">>, <<"urn:xmpp:features:rosterver">>, _} -> true; {<<"ver">>, <<>>, <<"urn:xmpp:features:rosterver">>} -> true; {<<"query">>, <<"jabber:iq:roster">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:roster">>} -> true; {<<"item">>, <<"jabber:iq:roster">>, _} -> true; {<<"item">>, <<>>, <<"jabber:iq:roster">>} -> true; {<<"group">>, <<"jabber:iq:roster">>, _} -> true; {<<"group">>, <<>>, <<"jabber:iq:roster">>} -> true; {<<"query">>, <<"jabber:iq:version">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:version">>} -> true; {<<"os">>, <<"jabber:iq:version">>, _} -> true; {<<"os">>, <<>>, <<"jabber:iq:version">>} -> true; {<<"version">>, <<"jabber:iq:version">>, _} -> true; {<<"version">>, <<>>, <<"jabber:iq:version">>} -> true; {<<"name">>, <<"jabber:iq:version">>, _} -> true; {<<"name">>, <<>>, <<"jabber:iq:version">>} -> true; {<<"query">>, <<"jabber:iq:last">>, _} -> true; {<<"query">>, <<>>, <<"jabber:iq:last">>} -> true; _ -> false end. encode(_el) -> encode(_el, <<>>). encode({xmlel, _, _, _} = El, _) -> El; encode({last, _, _} = Query, TopXMLNS) -> encode_last(Query, TopXMLNS); encode({version, _, _, _} = Query, TopXMLNS) -> encode_version(Query, TopXMLNS); encode({roster_item, _, _, _, _, _} = Item, TopXMLNS) -> encode_roster_item(Item, TopXMLNS); encode({roster_query, _, _} = Query, TopXMLNS) -> encode_roster_query(Query, TopXMLNS); encode({rosterver_feature} = Ver, TopXMLNS) -> encode_rosterver_feature(Ver, TopXMLNS); encode({privacy_item, _, _, _, _, _, _, _, _} = Item, TopXMLNS) -> encode_privacy_item(Item, TopXMLNS); encode({privacy_list, _, _} = List, TopXMLNS) -> encode_privacy_list(List, TopXMLNS); encode({privacy_query, _, _, _} = Query, TopXMLNS) -> encode_privacy(Query, TopXMLNS); encode({block, _} = Block, TopXMLNS) -> encode_block(Block, TopXMLNS); encode({unblock, _} = Unblock, TopXMLNS) -> encode_unblock(Unblock, TopXMLNS); encode({block_list, _} = Blocklist, TopXMLNS) -> encode_block_list(Blocklist, TopXMLNS); encode({identity, _, _, _, _} = Identity, TopXMLNS) -> encode_disco_identity(Identity, TopXMLNS); encode({disco_info, _, _, _, _} = Query, TopXMLNS) -> encode_disco_info(Query, TopXMLNS); encode({disco_item, _, _, _} = Item, TopXMLNS) -> encode_disco_item(Item, TopXMLNS); encode({disco_items, _, _, _} = Query, TopXMLNS) -> encode_disco_items(Query, TopXMLNS); encode({private, _} = Query, TopXMLNS) -> encode_private(Query, TopXMLNS); encode({bookmark_conference, _, _, _, _, _} = Conference, TopXMLNS) -> encode_bookmark_conference(Conference, TopXMLNS); encode({bookmark_url, _, _} = Url, TopXMLNS) -> encode_bookmark_url(Url, TopXMLNS); encode({bookmark_storage, _, _} = Storage, TopXMLNS) -> encode_bookmarks_storage(Storage, TopXMLNS); encode({stat_error, _, _} = Error, TopXMLNS) -> encode_stat_error(Error, TopXMLNS); encode({stat, _, _, _, _} = Stat, TopXMLNS) -> encode_stat(Stat, TopXMLNS); encode({stats, _, _} = Query, TopXMLNS) -> encode_stats(Query, TopXMLNS); encode({iq, _, _, _, _, _, _} = Iq, TopXMLNS) -> encode_iq(Iq, TopXMLNS); encode({message, _, _, _, _, _, _, _, _, _} = Message, TopXMLNS) -> encode_message(Message, TopXMLNS); encode({presence, _, _, _, _, _, _, _, _, _} = Presence, TopXMLNS) -> encode_presence(Presence, TopXMLNS); encode({gone, _} = Gone, TopXMLNS) -> encode_error_gone(Gone, TopXMLNS); encode({redirect, _} = Redirect, TopXMLNS) -> encode_error_redirect(Redirect, TopXMLNS); encode({stanza_error, _, _, _, _, _, _} = Error, TopXMLNS) -> encode_error(Error, TopXMLNS); encode({bind, _, _} = Bind, TopXMLNS) -> encode_bind(Bind, TopXMLNS); encode({legacy_auth, _, _, _, _} = Query, TopXMLNS) -> encode_legacy_auth(Query, TopXMLNS); encode({sasl_auth, _, _} = Auth, TopXMLNS) -> encode_sasl_auth(Auth, TopXMLNS); encode({sasl_abort} = Abort, TopXMLNS) -> encode_sasl_abort(Abort, TopXMLNS); encode({sasl_challenge, _} = Challenge, TopXMLNS) -> encode_sasl_challenge(Challenge, TopXMLNS); encode({sasl_response, _} = Response, TopXMLNS) -> encode_sasl_response(Response, TopXMLNS); encode({sasl_success, _} = Success, TopXMLNS) -> encode_sasl_success(Success, TopXMLNS); encode({sasl_failure, _, _} = Failure, TopXMLNS) -> encode_sasl_failure(Failure, TopXMLNS); encode({sasl_mechanisms, _} = Mechanisms, TopXMLNS) -> encode_sasl_mechanisms(Mechanisms, TopXMLNS); encode({starttls, _} = Starttls, TopXMLNS) -> encode_starttls(Starttls, TopXMLNS); encode({starttls_proceed} = Proceed, TopXMLNS) -> encode_starttls_proceed(Proceed, TopXMLNS); encode({starttls_failure} = Failure, TopXMLNS) -> encode_starttls_failure(Failure, TopXMLNS); encode({compress_failure, _} = Failure, TopXMLNS) -> encode_compress_failure(Failure, TopXMLNS); encode({compress, _} = Compress, TopXMLNS) -> encode_compress(Compress, TopXMLNS); encode({compressed} = Compressed, TopXMLNS) -> encode_compressed(Compressed, TopXMLNS); encode({compression, _} = Compression, TopXMLNS) -> encode_compression(Compression, TopXMLNS); encode({stream_features, _} = Stream_features, TopXMLNS) -> encode_stream_features(Stream_features, TopXMLNS); encode({p1_push} = Push, TopXMLNS) -> encode_p1_push(Push, TopXMLNS); encode({p1_rebind} = Rebind, TopXMLNS) -> encode_p1_rebind(Rebind, TopXMLNS); encode({p1_ack} = Ack, TopXMLNS) -> encode_p1_ack(Ack, TopXMLNS); encode({caps, _, _, _, _} = C, TopXMLNS) -> encode_caps(C, TopXMLNS); encode({feature_register} = Register, TopXMLNS) -> encode_feature_register(Register, TopXMLNS); encode({register, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Query, TopXMLNS) -> encode_register(Query, TopXMLNS); encode({xmpp_session, _} = Session, TopXMLNS) -> encode_session(Session, TopXMLNS); encode({ping} = Ping, TopXMLNS) -> encode_ping(Ping, TopXMLNS); encode({time, _, _} = Time, TopXMLNS) -> encode_time(Time, TopXMLNS); encode({text, _, _} = Text, TopXMLNS) -> encode_stream_error_text(Text, TopXMLNS); encode({'see-other-host', _} = See_other_host, TopXMLNS) -> encode_stream_error_see_other_host(See_other_host, TopXMLNS); encode({stream_error, _, _} = Stream_error, TopXMLNS) -> encode_stream_error(Stream_error, TopXMLNS); encode({vcard_name, _, _, _, _, _} = N, TopXMLNS) -> encode_vcard_N(N, TopXMLNS); encode({vcard_adr, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Adr, TopXMLNS) -> encode_vcard_ADR(Adr, TopXMLNS); encode({vcard_label, _, _, _, _, _, _, _, _} = Label, TopXMLNS) -> encode_vcard_LABEL(Label, TopXMLNS); encode({vcard_tel, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Tel, TopXMLNS) -> encode_vcard_TEL(Tel, TopXMLNS); encode({vcard_email, _, _, _, _, _, _} = Email, TopXMLNS) -> encode_vcard_EMAIL(Email, TopXMLNS); encode({vcard_geo, _, _} = Geo, TopXMLNS) -> encode_vcard_GEO(Geo, TopXMLNS); encode({vcard_logo, _, _, _} = Logo, TopXMLNS) -> encode_vcard_LOGO(Logo, TopXMLNS); encode({vcard_photo, _, _, _} = Photo, TopXMLNS) -> encode_vcard_PHOTO(Photo, TopXMLNS); encode({vcard_org, _, _} = Org, TopXMLNS) -> encode_vcard_ORG(Org, TopXMLNS); encode({vcard_sound, _, _, _} = Sound, TopXMLNS) -> encode_vcard_SOUND(Sound, TopXMLNS); encode({vcard_key, _, _} = Key, TopXMLNS) -> encode_vcard_KEY(Key, TopXMLNS); encode({vcard_temp, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Vcard, TopXMLNS) -> encode_vcard_temp(Vcard, TopXMLNS); encode({vcard_xupdate, _, _} = X, TopXMLNS) -> encode_vcard_xupdate(X, TopXMLNS); encode({xdata_option, _, _} = Option, TopXMLNS) -> encode_xdata_field_option(Option, TopXMLNS); encode({xdata_field, _, _, _, _, _, _, _, _} = Field, TopXMLNS) -> encode_xdata_field(Field, TopXMLNS); encode({xdata, _, _, _, _, _, _} = X, TopXMLNS) -> encode_xdata(X, TopXMLNS); encode({ps_subscription, _, _, _, _, _, _} = Subscription, TopXMLNS) -> encode_pubsub_subscription(Subscription, TopXMLNS); encode({ps_affiliation, <<"http://jabber.org/protocol/pubsub">>, _, _, _} = Affiliation, TopXMLNS) -> encode_pubsub_affiliation(Affiliation, TopXMLNS); encode({ps_affiliation, <<>>, _, _, _} = Affiliation, TopXMLNS = <<"http://jabber.org/protocol/pubsub">>) -> encode_pubsub_affiliation(Affiliation, TopXMLNS); encode({ps_affiliation, <<"http://jabber.org/protocol/pubsub#owner">>, _, _, _} = Affiliation, TopXMLNS) -> encode_pubsub_owner_affiliation(Affiliation, TopXMLNS); encode({ps_affiliation, <<>>, _, _, _} = Affiliation, TopXMLNS = <<"http://jabber.org/protocol/pubsub#owner">>) -> encode_pubsub_owner_affiliation(Affiliation, TopXMLNS); encode({ps_item, _, _, _, _, _} = Item, TopXMLNS) -> encode_pubsub_item(Item, TopXMLNS); encode({ps_items, _, _, _, _, _, _} = Items, TopXMLNS) -> encode_pubsub_items(Items, TopXMLNS); encode({ps_event, _, _, _, _, _, _} = Event, TopXMLNS) -> encode_pubsub_event(Event, TopXMLNS); encode({ps_subscribe, _, _} = Subscribe, TopXMLNS) -> encode_pubsub_subscribe(Subscribe, TopXMLNS); encode({ps_unsubscribe, _, _, _} = Unsubscribe, TopXMLNS) -> encode_pubsub_unsubscribe(Unsubscribe, TopXMLNS); encode({ps_publish, _, _} = Publish, TopXMLNS) -> encode_pubsub_publish(Publish, TopXMLNS); encode({ps_options, _, _, _, _} = Options, TopXMLNS) -> encode_pubsub_options(Options, TopXMLNS); encode({ps_retract, _, _, _} = Retract, TopXMLNS) -> encode_pubsub_retract(Retract, TopXMLNS); encode({pubsub, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _} = Pubsub, TopXMLNS) -> encode_pubsub(Pubsub, TopXMLNS); encode({pubsub_owner, _, _, _, _, _, _} = Pubsub, TopXMLNS) -> encode_pubsub_owner(Pubsub, TopXMLNS); encode({ps_error, 'closed-node', _} = Closed_node, TopXMLNS) -> encode_pubsub_error_closed_node(Closed_node, TopXMLNS); encode({ps_error, 'configuration-required', _} = Configuration_required, TopXMLNS) -> encode_pubsub_error_configuration_required(Configuration_required, TopXMLNS); encode({ps_error, 'invalid-jid', _} = Invalid_jid, TopXMLNS) -> encode_pubsub_error_invalid_jid(Invalid_jid, TopXMLNS); encode({ps_error, 'invalid-options', _} = Invalid_options, TopXMLNS) -> encode_pubsub_error_invalid_options(Invalid_options, TopXMLNS); encode({ps_error, 'invalid-payload', _} = Invalid_payload, TopXMLNS) -> encode_pubsub_error_invalid_payload(Invalid_payload, TopXMLNS); encode({ps_error, 'invalid-subid', _} = Invalid_subid, TopXMLNS) -> encode_pubsub_error_invalid_subid(Invalid_subid, TopXMLNS); encode({ps_error, 'item-forbidden', _} = Item_forbidden, TopXMLNS) -> encode_pubsub_error_item_forbidden(Item_forbidden, TopXMLNS); encode({ps_error, 'item-required', _} = Item_required, TopXMLNS) -> encode_pubsub_error_item_required(Item_required, TopXMLNS); encode({ps_error, 'jid-required', _} = Jid_required, TopXMLNS) -> encode_pubsub_error_jid_required(Jid_required, TopXMLNS); encode({ps_error, 'max-items-exceeded', _} = Max_items_exceeded, TopXMLNS) -> encode_pubsub_error_max_items_exceeded(Max_items_exceeded, TopXMLNS); encode({ps_error, 'max-nodes-exceeded', _} = Max_nodes_exceeded, TopXMLNS) -> encode_pubsub_error_max_nodes_exceeded(Max_nodes_exceeded, TopXMLNS); encode({ps_error, 'nodeid-required', _} = Nodeid_required, TopXMLNS) -> encode_pubsub_error_nodeid_required(Nodeid_required, TopXMLNS); encode({ps_error, 'not-in-roster-group', _} = Not_in_roster_group, TopXMLNS) -> encode_pubsub_error_not_in_roster_group(Not_in_roster_group, TopXMLNS); encode({ps_error, 'not-subscribed', _} = Not_subscribed, TopXMLNS) -> encode_pubsub_error_not_subscribed(Not_subscribed, TopXMLNS); encode({ps_error, 'payload-too-big', _} = Payload_too_big, TopXMLNS) -> encode_pubsub_error_payload_too_big(Payload_too_big, TopXMLNS); encode({ps_error, 'payload-required', _} = Payload_required, TopXMLNS) -> encode_pubsub_error_payload_required(Payload_required, TopXMLNS); encode({ps_error, 'pending-subscription', _} = Pending_subscription, TopXMLNS) -> encode_pubsub_error_pending_subscription(Pending_subscription, TopXMLNS); encode({ps_error, 'presence-subscription-required', _} = Presence_subscription_required, TopXMLNS) -> encode_pubsub_error_presence_subscription_required(Presence_subscription_required, TopXMLNS); encode({ps_error, 'subid-required', _} = Subid_required, TopXMLNS) -> encode_pubsub_error_subid_required(Subid_required, TopXMLNS); encode({ps_error, 'too-many-subscriptions', _} = Too_many_subscriptions, TopXMLNS) -> encode_pubsub_error_too_many_subscriptions(Too_many_subscriptions, TopXMLNS); encode({ps_error, unsupported, _} = Unsupported, TopXMLNS) -> encode_pubsub_error_unsupported(Unsupported, TopXMLNS); encode({ps_error, 'unsupported-access-model', _} = Unsupported_access_model, TopXMLNS) -> encode_pubsub_error_unsupported_access_model(Unsupported_access_model, TopXMLNS); encode({shim, _} = Headers, TopXMLNS) -> encode_shim_headers(Headers, TopXMLNS); encode({chatstate, active} = Active, TopXMLNS) -> encode_chatstate_active(Active, TopXMLNS); encode({chatstate, composing} = Composing, TopXMLNS) -> encode_chatstate_composing(Composing, TopXMLNS); encode({chatstate, gone} = Gone, TopXMLNS) -> encode_chatstate_gone(Gone, TopXMLNS); encode({chatstate, inactive} = Inactive, TopXMLNS) -> encode_chatstate_inactive(Inactive, TopXMLNS); encode({chatstate, paused} = Paused, TopXMLNS) -> encode_chatstate_paused(Paused, TopXMLNS); encode({delay, _, _, _} = Delay, TopXMLNS) -> encode_delay(Delay, TopXMLNS); encode({streamhost, _, _, _} = Streamhost, TopXMLNS) -> encode_bytestreams_streamhost(Streamhost, TopXMLNS); encode({bytestreams, _, _, _, _, _, _} = Query, TopXMLNS) -> encode_bytestreams(Query, TopXMLNS); encode({muc_history, _, _, _, _} = History, TopXMLNS) -> encode_muc_history(History, TopXMLNS); encode({muc_decline, _, _, _} = Decline, TopXMLNS) -> encode_muc_user_decline(Decline, TopXMLNS); encode({muc_destroy, _, _, _, _} = Destroy, TopXMLNS) -> encode_muc_destroy(Destroy, TopXMLNS); encode({muc_invite, _, _, _, _} = Invite, TopXMLNS) -> encode_muc_user_invite(Invite, TopXMLNS); encode({muc_user, _, _, _, _, _, _} = X, TopXMLNS) -> encode_muc_user(X, TopXMLNS); encode({muc_owner, _, _, _} = Query, TopXMLNS) -> encode_muc_owner(Query, TopXMLNS); encode({muc_item, _, _, _, _, _, _, _} = Item, TopXMLNS) -> encode_muc_admin_item(Item, TopXMLNS); encode({muc_actor, _, _} = Actor, TopXMLNS) -> encode_muc_admin_actor(Actor, TopXMLNS); encode({muc_admin, _} = Query, TopXMLNS) -> encode_muc_admin(Query, TopXMLNS); encode({muc, _, _} = X, TopXMLNS) -> encode_muc(X, TopXMLNS); encode({muc_unique, _} = Unique, TopXMLNS) -> encode_muc_unique(Unique, TopXMLNS); encode({x_conference, _, _, _, _, _} = X, TopXMLNS) -> encode_x_conference(X, TopXMLNS); encode({muc_subscriptions, _} = Subscriptions, TopXMLNS) -> encode_muc_subscriptions(Subscriptions, TopXMLNS); encode({muc_subscribe, _, _} = Subscribe, TopXMLNS) -> encode_muc_subscribe(Subscribe, TopXMLNS); encode({muc_unsubscribe} = Unsubscribe, TopXMLNS) -> encode_muc_unsubscribe(Unsubscribe, TopXMLNS); encode({rsm_first, _, _} = First, TopXMLNS) -> encode_rsm_first(First, TopXMLNS); encode({rsm_set, _, _, _, _, _, _, _} = Set, TopXMLNS) -> encode_rsm_set(Set, TopXMLNS); encode({mam_query, _, _, _, _, _, _, _, _} = Query, TopXMLNS) -> encode_mam_query(Query, TopXMLNS); encode({mam_archived, _, _} = Archived, TopXMLNS) -> encode_mam_archived(Archived, TopXMLNS); encode({mam_result, _, _, _, _} = Result, TopXMLNS) -> encode_mam_result(Result, TopXMLNS); encode({mam_prefs, _, _, _, _} = Prefs, TopXMLNS) -> encode_mam_prefs(Prefs, TopXMLNS); encode({mam_fin, _, _, _, _, _} = Fin, TopXMLNS) -> encode_mam_fin(Fin, TopXMLNS); encode({forwarded, _, _} = Forwarded, TopXMLNS) -> encode_forwarded(Forwarded, TopXMLNS); encode({carbons_disable} = Disable, TopXMLNS) -> encode_carbons_disable(Disable, TopXMLNS); encode({carbons_enable} = Enable, TopXMLNS) -> encode_carbons_enable(Enable, TopXMLNS); encode({carbons_private} = Private, TopXMLNS) -> encode_carbons_private(Private, TopXMLNS); encode({carbons_received, _} = Received, TopXMLNS) -> encode_carbons_received(Received, TopXMLNS); encode({carbons_sent, _} = Sent, TopXMLNS) -> encode_carbons_sent(Sent, TopXMLNS); encode({feature_csi, <<"urn:xmpp:csi:0">>} = Csi, TopXMLNS) -> encode_feature_csi(Csi, TopXMLNS); encode({feature_csi, <<>>} = Csi, TopXMLNS = <<"urn:xmpp:csi:0">>) -> encode_feature_csi(Csi, TopXMLNS); encode({csi, active} = Active, TopXMLNS) -> encode_csi_active(Active, TopXMLNS); encode({csi, inactive} = Inactive, TopXMLNS) -> encode_csi_inactive(Inactive, TopXMLNS); encode({feature_sm, _} = Sm, TopXMLNS) -> encode_feature_sm(Sm, TopXMLNS); encode({sm_enable, _, _, _} = Enable, TopXMLNS) -> encode_sm_enable(Enable, TopXMLNS); encode({sm_enabled, _, _, _, _, _} = Enabled, TopXMLNS) -> encode_sm_enabled(Enabled, TopXMLNS); encode({sm_resume, _, _, _} = Resume, TopXMLNS) -> encode_sm_resume(Resume, TopXMLNS); encode({sm_resumed, _, _, _} = Resumed, TopXMLNS) -> encode_sm_resumed(Resumed, TopXMLNS); encode({sm_r, _} = R, TopXMLNS) -> encode_sm_r(R, TopXMLNS); encode({sm_a, _, _} = A, TopXMLNS) -> encode_sm_a(A, TopXMLNS); encode({sm_failed, _, _, _} = Failed, TopXMLNS) -> encode_sm_failed(Failed, TopXMLNS); encode({offline_item, _, _} = Item, TopXMLNS) -> encode_offline_item(Item, TopXMLNS); encode({offline, _, _, _} = Offline, TopXMLNS) -> encode_offline(Offline, TopXMLNS); encode({mix_join, _, _} = Join, TopXMLNS) -> encode_mix_join(Join, TopXMLNS); encode({mix_leave} = Leave, TopXMLNS) -> encode_mix_leave(Leave, TopXMLNS); encode({mix_participant, _, _} = Participant, TopXMLNS) -> encode_mix_participant(Participant, TopXMLNS); encode({hint, 'no-copy'} = No_copy, TopXMLNS) -> encode_hint_no_copy(No_copy, TopXMLNS); encode({hint, 'no-store'} = No_store, TopXMLNS) -> encode_hint_no_store(No_store, TopXMLNS); encode({hint, 'no-storage'} = No_storage, TopXMLNS) -> encode_hint_no_storage(No_storage, TopXMLNS); encode({hint, store} = Store, TopXMLNS) -> encode_hint_store(Store, TopXMLNS); encode({hint, 'no-permanent-store'} = No_permanent_store, TopXMLNS) -> encode_hint_no_permanent_store(No_permanent_store, TopXMLNS); encode({hint, 'no-permanent-storage'} = No_permanent_storage, TopXMLNS) -> encode_hint_no_permanent_storage(No_permanent_storage, TopXMLNS); encode({search_item, _, _, _, _, _} = Item, TopXMLNS) -> encode_search_item(Item, TopXMLNS); encode({search, _, _, _, _, _, _, _} = Query, TopXMLNS) -> encode_search(Query, TopXMLNS); encode({xevent, _, _, _, _, _} = X, TopXMLNS) -> encode_xevent(X, TopXMLNS); encode({expire, _, _} = X, TopXMLNS) -> encode_expire(X, TopXMLNS); encode({nick, _} = Nick, TopXMLNS) -> encode_nick(Nick, TopXMLNS); encode({address, _, _, _, _, _} = Address, TopXMLNS) -> encode_address(Address, TopXMLNS); encode({addresses, _} = Addresses, TopXMLNS) -> encode_addresses(Addresses, TopXMLNS); encode({stanza_id, _, _} = Stanza_id, TopXMLNS) -> encode_stanza_id(Stanza_id, TopXMLNS); encode({client_id, _} = Client_id, TopXMLNS) -> encode_client_id(Client_id, TopXMLNS); encode({adhoc_actions, _, _, _, _} = Actions, TopXMLNS) -> encode_adhoc_command_actions(Actions, TopXMLNS); encode({adhoc_note, _, _} = Note, TopXMLNS) -> encode_adhoc_command_notes(Note, TopXMLNS); encode({adhoc_command, _, _, _, _, _, _, _, _} = Command, TopXMLNS) -> encode_adhoc_command(Command, TopXMLNS); encode({db_result, _, _, _, _, _} = Db_result, TopXMLNS) -> encode_db_result(Db_result, TopXMLNS); encode({db_verify, _, _, _, _, _, _} = Db_verify, TopXMLNS) -> encode_db_verify(Db_verify, TopXMLNS); encode({handshake, _} = Handshake, TopXMLNS) -> encode_handshake(Handshake, TopXMLNS); encode({stream_start, _, _, _, _, _, _, _, _} = Stream_stream, TopXMLNS) -> encode_stream_start(Stream_stream, TopXMLNS); encode({bob_data, _, _, _, _} = Data, TopXMLNS) -> encode_bob_data(Data, TopXMLNS); encode({xcaptcha, _} = Captcha, TopXMLNS) -> encode_captcha(Captcha, TopXMLNS); encode({media_uri, _, _} = Uri, TopXMLNS) -> encode_media_uri(Uri, TopXMLNS); encode({media, _, _, _} = Media, TopXMLNS) -> encode_media(Media, TopXMLNS); encode({oob_x, _, _, _} = X, TopXMLNS) -> encode_oob_x(X, TopXMLNS); encode({sic, _, _, _} = Address, TopXMLNS) -> encode_sic(Address, TopXMLNS); encode({upload_request, _, _, _, _} = Request, TopXMLNS) -> encode_upload_request(Request, TopXMLNS); encode({upload_slot, _, _, _} = Slot, TopXMLNS) -> encode_upload_slot(Slot, TopXMLNS); encode({thumbnail, _, _, _, _} = Thumbnail, TopXMLNS) -> encode_thumbnail(Thumbnail, TopXMLNS); encode({privilege_perm, _, _} = Perm, TopXMLNS) -> encode_privilege_perm(Perm, TopXMLNS); encode({privilege, _, _} = Privilege, TopXMLNS) -> encode_privilege(Privilege, TopXMLNS); encode({delegated, _, _} = Delegated, TopXMLNS) -> encode_delegated(Delegated, TopXMLNS); encode({delegation, _, _} = Delegation, TopXMLNS) -> encode_delegation(Delegation, TopXMLNS); encode({delegation_query, _, _} = Query, TopXMLNS) -> encode_delegation_query(Query, TopXMLNS). get_name({address, _, _, _, _, _}) -> <<"address">>; get_name({addresses, _}) -> <<"addresses">>; get_name({adhoc_actions, _, _, _, _}) -> <<"actions">>; get_name({adhoc_command, _, _, _, _, _, _, _, _}) -> <<"command">>; get_name({adhoc_note, _, _}) -> <<"note">>; get_name({bind, _, _}) -> <<"bind">>; get_name({block, _}) -> <<"block">>; get_name({block_list, _}) -> <<"blocklist">>; get_name({bob_data, _, _, _, _}) -> <<"data">>; get_name({bookmark_conference, _, _, _, _, _}) -> <<"conference">>; get_name({bookmark_storage, _, _}) -> <<"storage">>; get_name({bookmark_url, _, _}) -> <<"url">>; get_name({bytestreams, _, _, _, _, _, _}) -> <<"query">>; get_name({caps, _, _, _, _}) -> <<"c">>; get_name({carbons_disable}) -> <<"disable">>; get_name({carbons_enable}) -> <<"enable">>; get_name({carbons_private}) -> <<"private">>; get_name({carbons_received, _}) -> <<"received">>; get_name({carbons_sent, _}) -> <<"sent">>; get_name({chatstate, active}) -> <<"active">>; get_name({chatstate, composing}) -> <<"composing">>; get_name({chatstate, gone}) -> <<"gone">>; get_name({chatstate, inactive}) -> <<"inactive">>; get_name({chatstate, paused}) -> <<"paused">>; get_name({client_id, _}) -> <<"client-id">>; get_name({compress, _}) -> <<"compress">>; get_name({compress_failure, _}) -> <<"failure">>; get_name({compressed}) -> <<"compressed">>; get_name({compression, _}) -> <<"compression">>; get_name({csi, active}) -> <<"active">>; get_name({csi, inactive}) -> <<"inactive">>; get_name({db_result, _, _, _, _, _}) -> <<"db:result">>; get_name({db_verify, _, _, _, _, _, _}) -> <<"db:verify">>; get_name({delay, _, _, _}) -> <<"delay">>; get_name({delegated, _, _}) -> <<"delegated">>; get_name({delegation, _, _}) -> <<"delegation">>; get_name({delegation_query, _, _}) -> <<"query">>; get_name({disco_info, _, _, _, _}) -> <<"query">>; get_name({disco_item, _, _, _}) -> <<"item">>; get_name({disco_items, _, _, _}) -> <<"query">>; get_name({expire, _, _}) -> <<"x">>; get_name({feature_csi, _}) -> <<"csi">>; get_name({feature_register}) -> <<"register">>; get_name({feature_sm, _}) -> <<"sm">>; get_name({forwarded, _, _}) -> <<"forwarded">>; get_name({gone, _}) -> <<"gone">>; get_name({handshake, _}) -> <<"handshake">>; get_name({hint, 'no-copy'}) -> <<"no-copy">>; get_name({hint, 'no-permanent-storage'}) -> <<"no-permanent-storage">>; get_name({hint, 'no-permanent-store'}) -> <<"no-permanent-store">>; get_name({hint, 'no-storage'}) -> <<"no-storage">>; get_name({hint, 'no-store'}) -> <<"no-store">>; get_name({hint, store}) -> <<"store">>; get_name({identity, _, _, _, _}) -> <<"identity">>; get_name({iq, _, _, _, _, _, _}) -> <<"iq">>; get_name({last, _, _}) -> <<"query">>; get_name({legacy_auth, _, _, _, _}) -> <<"query">>; get_name({mam_archived, _, _}) -> <<"archived">>; get_name({mam_fin, _, _, _, _, _}) -> <<"fin">>; get_name({mam_prefs, _, _, _, _}) -> <<"prefs">>; get_name({mam_query, _, _, _, _, _, _, _, _}) -> <<"query">>; get_name({mam_result, _, _, _, _}) -> <<"result">>; get_name({media, _, _, _}) -> <<"media">>; get_name({media_uri, _, _}) -> <<"uri">>; get_name({message, _, _, _, _, _, _, _, _, _}) -> <<"message">>; get_name({mix_join, _, _}) -> <<"join">>; get_name({mix_leave}) -> <<"leave">>; get_name({mix_participant, _, _}) -> <<"participant">>; get_name({muc, _, _}) -> <<"x">>; get_name({muc_actor, _, _}) -> <<"actor">>; get_name({muc_admin, _}) -> <<"query">>; get_name({muc_decline, _, _, _}) -> <<"decline">>; get_name({muc_destroy, _, _, _, _}) -> <<"destroy">>; get_name({muc_history, _, _, _, _}) -> <<"history">>; get_name({muc_invite, _, _, _, _}) -> <<"invite">>; get_name({muc_item, _, _, _, _, _, _, _}) -> <<"item">>; get_name({muc_owner, _, _, _}) -> <<"query">>; get_name({muc_subscribe, _, _}) -> <<"subscribe">>; get_name({muc_subscriptions, _}) -> <<"subscriptions">>; get_name({muc_unique, _}) -> <<"unique">>; get_name({muc_unsubscribe}) -> <<"unsubscribe">>; get_name({muc_user, _, _, _, _, _, _}) -> <<"x">>; get_name({nick, _}) -> <<"nick">>; get_name({offline, _, _, _}) -> <<"offline">>; get_name({offline_item, _, _}) -> <<"item">>; get_name({oob_x, _, _, _}) -> <<"x">>; get_name({p1_ack}) -> <<"ack">>; get_name({p1_push}) -> <<"push">>; get_name({p1_rebind}) -> <<"rebind">>; get_name({ping}) -> <<"ping">>; get_name({presence, _, _, _, _, _, _, _, _, _}) -> <<"presence">>; get_name({privacy_item, _, _, _, _, _, _, _, _}) -> <<"item">>; get_name({privacy_list, _, _}) -> <<"list">>; get_name({privacy_query, _, _, _}) -> <<"query">>; get_name({private, _}) -> <<"query">>; get_name({privilege, _, _}) -> <<"privilege">>; get_name({privilege_perm, _, _}) -> <<"perm">>; get_name({ps_affiliation, _, _, _, _}) -> <<"affiliation">>; get_name({ps_error, 'closed-node', _}) -> <<"closed-node">>; get_name({ps_error, 'configuration-required', _}) -> <<"configuration-required">>; get_name({ps_error, 'invalid-jid', _}) -> <<"invalid-jid">>; get_name({ps_error, 'invalid-options', _}) -> <<"invalid-options">>; get_name({ps_error, 'invalid-payload', _}) -> <<"invalid-payload">>; get_name({ps_error, 'invalid-subid', _}) -> <<"invalid-subid">>; get_name({ps_error, 'item-forbidden', _}) -> <<"item-forbidden">>; get_name({ps_error, 'item-required', _}) -> <<"item-required">>; get_name({ps_error, 'jid-required', _}) -> <<"jid-required">>; get_name({ps_error, 'max-items-exceeded', _}) -> <<"max-items-exceeded">>; get_name({ps_error, 'max-nodes-exceeded', _}) -> <<"max-nodes-exceeded">>; get_name({ps_error, 'nodeid-required', _}) -> <<"nodeid-required">>; get_name({ps_error, 'not-in-roster-group', _}) -> <<"not-in-roster-group">>; get_name({ps_error, 'not-subscribed', _}) -> <<"not-subscribed">>; get_name({ps_error, 'payload-required', _}) -> <<"payload-required">>; get_name({ps_error, 'payload-too-big', _}) -> <<"payload-too-big">>; get_name({ps_error, 'pending-subscription', _}) -> <<"pending-subscription">>; get_name({ps_error, 'presence-subscription-required', _}) -> <<"presence-subscription-required">>; get_name({ps_error, 'subid-required', _}) -> <<"subid-required">>; get_name({ps_error, 'too-many-subscriptions', _}) -> <<"too-many-subscriptions">>; get_name({ps_error, unsupported, _}) -> <<"unsupported">>; get_name({ps_error, 'unsupported-access-model', _}) -> <<"unsupported-access-model">>; get_name({ps_event, _, _, _, _, _, _}) -> <<"event">>; get_name({ps_item, _, _, _, _, _}) -> <<"item">>; get_name({ps_items, _, _, _, _, _, _}) -> <<"items">>; get_name({ps_options, _, _, _, _}) -> <<"options">>; get_name({ps_publish, _, _}) -> <<"publish">>; get_name({ps_retract, _, _, _}) -> <<"retract">>; get_name({ps_subscribe, _, _}) -> <<"subscribe">>; get_name({ps_subscription, _, _, _, _, _, _}) -> <<"subscription">>; get_name({ps_unsubscribe, _, _, _}) -> <<"unsubscribe">>; get_name({pubsub, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"pubsub">>; get_name({pubsub_owner, _, _, _, _, _, _}) -> <<"pubsub">>; get_name({redirect, _}) -> <<"redirect">>; get_name({register, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"query">>; get_name({roster_item, _, _, _, _, _}) -> <<"item">>; get_name({roster_query, _, _}) -> <<"query">>; get_name({rosterver_feature}) -> <<"ver">>; get_name({rsm_first, _, _}) -> <<"first">>; get_name({rsm_set, _, _, _, _, _, _, _}) -> <<"set">>; get_name({sasl_abort}) -> <<"abort">>; get_name({sasl_auth, _, _}) -> <<"auth">>; get_name({sasl_challenge, _}) -> <<"challenge">>; get_name({sasl_failure, _, _}) -> <<"failure">>; get_name({sasl_mechanisms, _}) -> <<"mechanisms">>; get_name({sasl_response, _}) -> <<"response">>; get_name({sasl_success, _}) -> <<"success">>; get_name({search, _, _, _, _, _, _, _}) -> <<"query">>; get_name({search_item, _, _, _, _, _}) -> <<"item">>; get_name({'see-other-host', _}) -> <<"see-other-host">>; get_name({shim, _}) -> <<"headers">>; get_name({sic, _, _, _}) -> <<"address">>; get_name({sm_a, _, _}) -> <<"a">>; get_name({sm_enable, _, _, _}) -> <<"enable">>; get_name({sm_enabled, _, _, _, _, _}) -> <<"enabled">>; get_name({sm_failed, _, _, _}) -> <<"failed">>; get_name({sm_r, _}) -> <<"r">>; get_name({sm_resume, _, _, _}) -> <<"resume">>; get_name({sm_resumed, _, _, _}) -> <<"resumed">>; get_name({stanza_error, _, _, _, _, _, _}) -> <<"error">>; get_name({stanza_id, _, _}) -> <<"stanza-id">>; get_name({starttls, _}) -> <<"starttls">>; get_name({starttls_failure}) -> <<"failure">>; get_name({starttls_proceed}) -> <<"proceed">>; get_name({stat, _, _, _, _}) -> <<"stat">>; get_name({stat_error, _, _}) -> <<"error">>; get_name({stats, _, _}) -> <<"query">>; get_name({stream_error, _, _}) -> <<"stream:error">>; get_name({stream_features, _}) -> <<"stream:features">>; get_name({stream_start, _, _, _, _, _, _, _, _}) -> <<"stream:stream">>; get_name({streamhost, _, _, _}) -> <<"streamhost">>; get_name({text, _, _}) -> <<"text">>; get_name({thumbnail, _, _, _, _}) -> <<"thumbnail">>; get_name({time, _, _}) -> <<"time">>; get_name({unblock, _}) -> <<"unblock">>; get_name({upload_request, _, _, _, _}) -> <<"request">>; get_name({upload_slot, _, _, _}) -> <<"slot">>; get_name({vcard_adr, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"ADR">>; get_name({vcard_email, _, _, _, _, _, _}) -> <<"EMAIL">>; get_name({vcard_geo, _, _}) -> <<"GEO">>; get_name({vcard_key, _, _}) -> <<"KEY">>; get_name({vcard_label, _, _, _, _, _, _, _, _}) -> <<"LABEL">>; get_name({vcard_logo, _, _, _}) -> <<"LOGO">>; get_name({vcard_name, _, _, _, _, _}) -> <<"N">>; get_name({vcard_org, _, _}) -> <<"ORG">>; get_name({vcard_photo, _, _, _}) -> <<"PHOTO">>; get_name({vcard_sound, _, _, _}) -> <<"SOUND">>; get_name({vcard_tel, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"TEL">>; get_name({vcard_temp, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"vCard">>; get_name({vcard_xupdate, _, _}) -> <<"x">>; get_name({version, _, _, _}) -> <<"query">>; get_name({x_conference, _, _, _, _, _}) -> <<"x">>; get_name({xcaptcha, _}) -> <<"captcha">>; get_name({xdata, _, _, _, _, _, _}) -> <<"x">>; get_name({xdata_field, _, _, _, _, _, _, _, _}) -> <<"field">>; get_name({xdata_option, _, _}) -> <<"option">>; get_name({xevent, _, _, _, _, _}) -> <<"x">>; get_name({xmpp_session, _}) -> <<"session">>. get_ns({address, _, _, _, _, _}) -> <<"http://jabber.org/protocol/address">>; get_ns({addresses, _}) -> <<"http://jabber.org/protocol/address">>; get_ns({adhoc_actions, _, _, _, _}) -> <<"http://jabber.org/protocol/commands">>; get_ns({adhoc_command, _, _, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/commands">>; get_ns({adhoc_note, _, _}) -> <<"http://jabber.org/protocol/commands">>; get_ns({bind, _, _}) -> <<"urn:ietf:params:xml:ns:xmpp-bind">>; get_ns({block, _}) -> <<"urn:xmpp:blocking">>; get_ns({block_list, _}) -> <<"urn:xmpp:blocking">>; get_ns({bob_data, _, _, _, _}) -> <<"urn:xmpp:bob">>; get_ns({bookmark_conference, _, _, _, _, _}) -> <<"storage:bookmarks">>; get_ns({bookmark_storage, _, _}) -> <<"storage:bookmarks">>; get_ns({bookmark_url, _, _}) -> <<"storage:bookmarks">>; get_ns({bytestreams, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/bytestreams">>; get_ns({caps, _, _, _, _}) -> <<"http://jabber.org/protocol/caps">>; get_ns({carbons_disable}) -> <<"urn:xmpp:carbons:2">>; get_ns({carbons_enable}) -> <<"urn:xmpp:carbons:2">>; get_ns({carbons_private}) -> <<"urn:xmpp:carbons:2">>; get_ns({carbons_received, _}) -> <<"urn:xmpp:carbons:2">>; get_ns({carbons_sent, _}) -> <<"urn:xmpp:carbons:2">>; get_ns({chatstate, active}) -> <<"http://jabber.org/protocol/chatstates">>; get_ns({chatstate, composing}) -> <<"http://jabber.org/protocol/chatstates">>; get_ns({chatstate, gone}) -> <<"http://jabber.org/protocol/chatstates">>; get_ns({chatstate, inactive}) -> <<"http://jabber.org/protocol/chatstates">>; get_ns({chatstate, paused}) -> <<"http://jabber.org/protocol/chatstates">>; get_ns({client_id, _}) -> <<"urn:xmpp:sid:0">>; get_ns({compress, _}) -> <<"http://jabber.org/protocol/compress">>; get_ns({compress_failure, _}) -> <<"http://jabber.org/protocol/compress">>; get_ns({compressed}) -> <<"http://jabber.org/protocol/compress">>; get_ns({compression, _}) -> <<"http://jabber.org/features/compress">>; get_ns({csi, active}) -> <<"urn:xmpp:csi:0">>; get_ns({csi, inactive}) -> <<"urn:xmpp:csi:0">>; get_ns({db_result, _, _, _, _, _}) -> <<"jabber:server">>; get_ns({db_verify, _, _, _, _, _, _}) -> <<"jabber:server">>; get_ns({delay, _, _, _}) -> <<"urn:xmpp:delay">>; get_ns({delegated, _, _}) -> <<"urn:xmpp:delegation:1">>; get_ns({delegation, _, _}) -> <<"urn:xmpp:delegation:1">>; get_ns({delegation_query, _, _}) -> <<"urn:xmpp:delegation:1">>; get_ns({disco_info, _, _, _, _}) -> <<"http://jabber.org/protocol/disco#info">>; get_ns({disco_item, _, _, _}) -> <<"http://jabber.org/protocol/disco#items">>; get_ns({disco_items, _, _, _}) -> <<"http://jabber.org/protocol/disco#items">>; get_ns({expire, _, _}) -> <<"jabber:x:expire">>; get_ns({feature_csi, Xmlns}) -> Xmlns; get_ns({feature_register}) -> <<"http://jabber.org/features/iq-register">>; get_ns({feature_sm, Xmlns}) -> Xmlns; get_ns({forwarded, _, _}) -> <<"urn:xmpp:forward:0">>; get_ns({gone, _}) -> <<"urn:ietf:params:xml:ns:xmpp-stanzas">>; get_ns({handshake, _}) -> <<"jabber:component:accept">>; get_ns({hint, 'no-copy'}) -> <<"urn:xmpp:hints">>; get_ns({hint, 'no-permanent-storage'}) -> <<"urn:xmpp:hints">>; get_ns({hint, 'no-permanent-store'}) -> <<"urn:xmpp:hints">>; get_ns({hint, 'no-storage'}) -> <<"urn:xmpp:hints">>; get_ns({hint, 'no-store'}) -> <<"urn:xmpp:hints">>; get_ns({hint, store}) -> <<"urn:xmpp:hints">>; get_ns({identity, _, _, _, _}) -> <<"http://jabber.org/protocol/disco#info">>; get_ns({iq, _, _, _, _, _, _}) -> <<"jabber:client">>; get_ns({last, _, _}) -> <<"jabber:iq:last">>; get_ns({legacy_auth, _, _, _, _}) -> <<"jabber:iq:auth">>; get_ns({mam_archived, _, _}) -> <<"urn:xmpp:mam:tmp">>; get_ns({mam_fin, Xmlns, _, _, _, _}) -> Xmlns; get_ns({mam_prefs, Xmlns, _, _, _}) -> Xmlns; get_ns({mam_query, Xmlns, _, _, _, _, _, _, _}) -> Xmlns; get_ns({mam_result, Xmlns, _, _, _}) -> Xmlns; get_ns({media, _, _, _}) -> <<"urn:xmpp:media-element">>; get_ns({media_uri, _, _}) -> <<"urn:xmpp:media-element">>; get_ns({message, _, _, _, _, _, _, _, _, _}) -> <<"jabber:client">>; get_ns({mix_join, _, _}) -> <<"urn:xmpp:mix:0">>; get_ns({mix_leave}) -> <<"urn:xmpp:mix:0">>; get_ns({mix_participant, _, _}) -> <<"urn:xmpp:mix:0">>; get_ns({muc, _, _}) -> <<"http://jabber.org/protocol/muc">>; get_ns({muc_admin, _}) -> <<"http://jabber.org/protocol/muc#admin">>; get_ns({muc_decline, _, _, _}) -> <<"http://jabber.org/protocol/muc#user">>; get_ns({muc_destroy, Xmlns, _, _, _}) -> Xmlns; get_ns({muc_history, _, _, _, _}) -> <<"http://jabber.org/protocol/muc">>; get_ns({muc_invite, _, _, _, _}) -> <<"http://jabber.org/protocol/muc#user">>; get_ns({muc_owner, _, _, _}) -> <<"http://jabber.org/protocol/muc#owner">>; get_ns({muc_subscribe, _, _}) -> <<"urn:xmpp:mucsub:0">>; get_ns({muc_subscriptions, _}) -> <<"urn:xmpp:mucsub:0">>; get_ns({muc_unique, _}) -> <<"http://jabber.org/protocol/muc#unique">>; get_ns({muc_unsubscribe}) -> <<"urn:xmpp:mucsub:0">>; get_ns({muc_user, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/muc#user">>; get_ns({nick, _}) -> <<"http://jabber.org/protocol/nick">>; get_ns({offline, _, _, _}) -> <<"http://jabber.org/protocol/offline">>; get_ns({offline_item, _, _}) -> <<"http://jabber.org/protocol/offline">>; get_ns({oob_x, _, _, _}) -> <<"jabber:x:oob">>; get_ns({p1_ack}) -> <<"p1:ack">>; get_ns({p1_push}) -> <<"p1:push">>; get_ns({p1_rebind}) -> <<"p1:rebind">>; get_ns({ping}) -> <<"urn:xmpp:ping">>; get_ns({presence, _, _, _, _, _, _, _, _, _}) -> <<"jabber:client">>; get_ns({privacy_item, _, _, _, _, _, _, _, _}) -> <<"jabber:iq:privacy">>; get_ns({privacy_list, _, _}) -> <<"jabber:iq:privacy">>; get_ns({privacy_query, _, _, _}) -> <<"jabber:iq:privacy">>; get_ns({private, _}) -> <<"jabber:iq:private">>; get_ns({privilege, _, _}) -> <<"urn:xmpp:privilege:1">>; get_ns({privilege_perm, _, _}) -> <<"urn:xmpp:privilege:1">>; get_ns({ps_affiliation, Xmlns, _, _, _}) -> Xmlns; get_ns({ps_error, 'closed-node', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'configuration-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'invalid-jid', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'invalid-options', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'invalid-payload', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'invalid-subid', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'item-forbidden', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'item-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'jid-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'max-items-exceeded', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'max-nodes-exceeded', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'nodeid-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'not-in-roster-group', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'not-subscribed', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'payload-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'payload-too-big', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'pending-subscription', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'presence-subscription-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'subid-required', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'too-many-subscriptions', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, unsupported, _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_error, 'unsupported-access-model', _}) -> <<"http://jabber.org/protocol/pubsub#errors">>; get_ns({ps_event, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/pubsub#event">>; get_ns({ps_item, Xmlns, _, _, _, _}) -> Xmlns; get_ns({ps_items, Xmlns, _, _, _, _, _}) -> Xmlns; get_ns({ps_options, _, _, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({ps_publish, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({ps_retract, _, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({ps_subscribe, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({ps_subscription, Xmlns, _, _, _, _, _}) -> Xmlns; get_ns({ps_unsubscribe, _, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({pubsub, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/pubsub">>; get_ns({pubsub_owner, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/pubsub#owner">>; get_ns({redirect, _}) -> <<"urn:ietf:params:xml:ns:xmpp-stanzas">>; get_ns({register, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"jabber:iq:register">>; get_ns({roster_item, _, _, _, _, _}) -> <<"jabber:iq:roster">>; get_ns({roster_query, _, _}) -> <<"jabber:iq:roster">>; get_ns({rosterver_feature}) -> <<"urn:xmpp:features:rosterver">>; get_ns({rsm_first, _, _}) -> <<"http://jabber.org/protocol/rsm">>; get_ns({rsm_set, _, _, _, _, _, _, _}) -> <<"http://jabber.org/protocol/rsm">>; get_ns({sasl_abort}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_auth, _, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_challenge, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_failure, _, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_mechanisms, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_response, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({sasl_success, _}) -> <<"urn:ietf:params:xml:ns:xmpp-sasl">>; get_ns({search, _, _, _, _, _, _, _}) -> <<"jabber:iq:search">>; get_ns({search_item, _, _, _, _, _}) -> <<"jabber:iq:search">>; get_ns({'see-other-host', _}) -> <<"urn:ietf:params:xml:ns:xmpp-streams">>; get_ns({shim, _}) -> <<"http://jabber.org/protocol/shim">>; get_ns({sic, _, _, Xmlns}) -> Xmlns; get_ns({sm_a, _, Xmlns}) -> Xmlns; get_ns({sm_enable, _, _, Xmlns}) -> Xmlns; get_ns({sm_enabled, _, _, _, _, Xmlns}) -> Xmlns; get_ns({sm_failed, _, _, Xmlns}) -> Xmlns; get_ns({sm_r, Xmlns}) -> Xmlns; get_ns({sm_resume, _, _, Xmlns}) -> Xmlns; get_ns({sm_resumed, _, _, Xmlns}) -> Xmlns; get_ns({stanza_error, _, _, _, _, _, _}) -> <<"jabber:client">>; get_ns({stanza_id, _, _}) -> <<"urn:xmpp:sid:0">>; get_ns({starttls, _}) -> <<"urn:ietf:params:xml:ns:xmpp-tls">>; get_ns({starttls_failure}) -> <<"urn:ietf:params:xml:ns:xmpp-tls">>; get_ns({starttls_proceed}) -> <<"urn:ietf:params:xml:ns:xmpp-tls">>; get_ns({stat, _, _, _, _}) -> <<"http://jabber.org/protocol/stats">>; get_ns({stat_error, _, _}) -> <<"http://jabber.org/protocol/stats">>; get_ns({stats, _, _}) -> <<"http://jabber.org/protocol/stats">>; get_ns({stream_error, _, _}) -> <<"jabber:client">>; get_ns({stream_features, _}) -> <<"jabber:client">>; get_ns({stream_start, _, _, _, _, Xmlns, _, _, _}) -> Xmlns; get_ns({streamhost, _, _, _}) -> <<"http://jabber.org/protocol/bytestreams">>; get_ns({thumbnail, _, _, _, _}) -> <<"urn:xmpp:thumbs:1">>; get_ns({time, _, _}) -> <<"urn:xmpp:time">>; get_ns({unblock, _}) -> <<"urn:xmpp:blocking">>; get_ns({upload_request, _, _, _, Xmlns}) -> Xmlns; get_ns({upload_slot, _, _, Xmlns}) -> Xmlns; get_ns({vcard_adr, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_email, _, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_geo, _, _}) -> <<"vcard-temp">>; get_ns({vcard_key, _, _}) -> <<"vcard-temp">>; get_ns({vcard_label, _, _, _, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_logo, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_name, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_org, _, _}) -> <<"vcard-temp">>; get_ns({vcard_photo, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_sound, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_tel, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_temp, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _, _}) -> <<"vcard-temp">>; get_ns({vcard_xupdate, _, _}) -> <<"vcard-temp:x:update">>; get_ns({version, _, _, _}) -> <<"jabber:iq:version">>; get_ns({x_conference, _, _, _, _, _}) -> <<"jabber:x:conference">>; get_ns({xcaptcha, _}) -> <<"urn:xmpp:captcha">>; get_ns({xdata, _, _, _, _, _, _}) -> <<"jabber:x:data">>; get_ns({xdata_field, _, _, _, _, _, _, _, _}) -> <<"jabber:x:data">>; get_ns({xdata_option, _, _}) -> <<"jabber:x:data">>; get_ns({xevent, _, _, _, _, _}) -> <<"jabber:x:event">>; get_ns({xmpp_session, _}) -> <<"urn:ietf:params:xml:ns:xmpp-session">>. dec_int(Val) -> dec_int(Val, infinity, infinity). dec_int(Val, Min, Max) -> case list_to_integer(binary_to_list(Val)) of Int when Int =< Max, Min == infinity -> Int; Int when Int =< Max, Int >= Min -> Int end. enc_int(Int) -> list_to_binary(integer_to_list(Int)). dec_enum(Val, Enums) -> AtomVal = erlang:binary_to_existing_atom(Val, utf8), case lists:member(AtomVal, Enums) of true -> AtomVal end. enc_enum(Atom) -> erlang:atom_to_binary(Atom, utf8). format_error({bad_attr_value, Attr, Tag, XMLNS}) -> <<"Bad value of attribute '", Attr/binary, "' in tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({bad_cdata_value, <<>>, Tag, XMLNS}) -> <<"Bad value of cdata in tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({missing_tag, Tag, XMLNS}) -> <<"Missing tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({missing_attr, Attr, Tag, XMLNS}) -> <<"Missing attribute '", Attr/binary, "' in tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({missing_cdata, <<>>, Tag, XMLNS}) -> <<"Missing cdata in tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({unknown_tag, Tag, XMLNS}) -> <<"Unknown tag <", Tag/binary, "/> qualified by namespace '", XMLNS/binary, "'">>; format_error({missing_tag_xmlns, Tag}) -> <<"Missing namespace for tag <", Tag/binary, "/>">>. get_attr(Attr, Attrs) -> case lists:keyfind(Attr, 1, Attrs) of {_, Val} -> Val; false -> <<>> end. enc_xmlns_attrs(XMLNS, XMLNS) -> []; enc_xmlns_attrs(XMLNS, _) -> [{<<"xmlns">>, XMLNS}]. choose_top_xmlns(<<>>, NSList, TopXMLNS) -> case lists:member(TopXMLNS, NSList) of true -> TopXMLNS; false -> hd(NSList) end; choose_top_xmlns(XMLNS, _, _) -> XMLNS. pp(Term) -> io_lib_pretty:print(Term, fun pp/2). pp(last, 2) -> [seconds, status]; pp(version, 3) -> [name, ver, os]; pp(roster_item, 5) -> [jid, name, groups, subscription, ask]; pp(roster_query, 2) -> [items, ver]; pp(rosterver_feature, 0) -> []; pp(privacy_item, 8) -> [order, action, type, value, message, iq, presence_in, presence_out]; pp(privacy_list, 2) -> [name, items]; pp(privacy_query, 3) -> [lists, default, active]; pp(block, 1) -> [items]; pp(unblock, 1) -> [items]; pp(block_list, 1) -> [items]; pp(identity, 4) -> [category, type, lang, name]; pp(disco_info, 4) -> [node, identities, features, xdata]; pp(disco_item, 3) -> [jid, name, node]; pp(disco_items, 3) -> [node, items, rsm]; pp(private, 1) -> [xml_els]; pp(bookmark_conference, 5) -> [name, jid, autojoin, nick, password]; pp(bookmark_url, 2) -> [name, url]; pp(bookmark_storage, 2) -> [conference, url]; pp(stat_error, 2) -> [code, reason]; pp(stat, 4) -> [name, units, value, error]; pp(stats, 2) -> [list, node]; pp(iq, 6) -> [id, type, lang, from, to, sub_els]; pp(message, 9) -> [id, type, lang, from, to, subject, body, thread, sub_els]; pp(presence, 9) -> [id, type, lang, from, to, show, status, priority, sub_els]; pp(gone, 1) -> [uri]; pp(redirect, 1) -> [uri]; pp(stanza_error, 6) -> [type, code, by, reason, text, sub_els]; pp(bind, 2) -> [jid, resource]; pp(legacy_auth, 4) -> [username, password, digest, resource]; pp(sasl_auth, 2) -> [mechanism, text]; pp(sasl_abort, 0) -> []; pp(sasl_challenge, 1) -> [text]; pp(sasl_response, 1) -> [text]; pp(sasl_success, 1) -> [text]; pp(sasl_failure, 2) -> [reason, text]; pp(sasl_mechanisms, 1) -> [list]; pp(starttls, 1) -> [required]; pp(starttls_proceed, 0) -> []; pp(starttls_failure, 0) -> []; pp(compress_failure, 1) -> [reason]; pp(compress, 1) -> [methods]; pp(compressed, 0) -> []; pp(compression, 1) -> [methods]; pp(stream_features, 1) -> [sub_els]; pp(p1_push, 0) -> []; pp(p1_rebind, 0) -> []; pp(p1_ack, 0) -> []; pp(caps, 4) -> [node, version, hash, exts]; pp(feature_register, 0) -> []; pp(register, 22) -> [registered, remove, instructions, username, nick, password, name, first, last, email, address, city, state, zip, phone, url, date, misc, text, key, xdata, sub_els]; pp(xmpp_session, 1) -> [optional]; pp(ping, 0) -> []; pp(time, 2) -> [tzo, utc]; pp(text, 2) -> [lang, data]; pp('see-other-host', 1) -> [host]; pp(stream_error, 2) -> [reason, text]; pp(vcard_name, 5) -> [family, given, middle, prefix, suffix]; pp(vcard_adr, 14) -> [home, work, postal, parcel, dom, intl, pref, pobox, extadd, street, locality, region, pcode, ctry]; pp(vcard_label, 8) -> [home, work, postal, parcel, dom, intl, pref, line]; pp(vcard_tel, 14) -> [home, work, voice, fax, pager, msg, cell, video, bbs, modem, isdn, pcs, pref, number]; pp(vcard_email, 6) -> [home, work, internet, pref, x400, userid]; pp(vcard_geo, 2) -> [lat, lon]; pp(vcard_logo, 3) -> [type, binval, extval]; pp(vcard_photo, 3) -> [type, binval, extval]; pp(vcard_org, 2) -> [name, units]; pp(vcard_sound, 3) -> [phonetic, binval, extval]; pp(vcard_key, 2) -> [type, cred]; pp(vcard_temp, 29) -> [version, fn, n, nickname, photo, bday, adr, label, tel, email, jabberid, mailer, tz, geo, title, role, logo, org, categories, note, prodid, rev, sort_string, sound, uid, url, class, key, desc]; pp(xdata_option, 2) -> [label, value]; pp(xdata_field, 8) -> [label, type, var, required, desc, values, options, sub_els]; pp(xdata, 6) -> [type, instructions, title, reported, items, fields]; pp(ps_subscription, 6) -> [xmlns, jid, type, node, subid, expiry]; pp(ps_item, 5) -> [xmlns, id, xml_els, node, publisher]; pp(ps_items, 6) -> [xmlns, node, items, max_items, subid, retract]; pp(ps_event, 6) -> [items, purge, subscription, delete, create, configuration]; pp(ps_subscribe, 2) -> [node, jid]; pp(ps_unsubscribe, 3) -> [node, jid, subid]; pp(ps_publish, 2) -> [node, items]; pp(ps_options, 4) -> [node, jid, subid, xdata]; pp(ps_retract, 3) -> [node, notify, items]; pp(pubsub, 16) -> [subscriptions, subscription, affiliations, publish, publish_options, subscribe, unsubscribe, options, items, retract, create, configure, default, delete, purge, rsm]; pp(pubsub_owner, 6) -> [affiliations, configure, default, delete, purge, subscriptions]; pp(shim, 1) -> [headers]; pp(delay, 3) -> [stamp, from, desc]; pp(streamhost, 3) -> [jid, host, port]; pp(bytestreams, 6) -> [hosts, used, activate, dstaddr, mode, sid]; pp(muc_history, 4) -> [maxchars, maxstanzas, seconds, since]; pp(muc_decline, 3) -> [reason, from, to]; pp(muc_destroy, 4) -> [xmlns, jid, reason, password]; pp(muc_invite, 4) -> [reason, from, to, continue]; pp(muc_user, 6) -> [decline, destroy, invites, items, status_codes, password]; pp(muc_owner, 3) -> [destroy, config, items]; pp(muc_item, 7) -> [actor, continue, reason, affiliation, role, jid, nick]; pp(muc_actor, 2) -> [jid, nick]; pp(muc_admin, 1) -> [items]; pp(muc, 2) -> [history, password]; pp(muc_unique, 1) -> [name]; pp(x_conference, 5) -> [jid, password, reason, continue, thread]; pp(muc_subscriptions, 1) -> [list]; pp(muc_subscribe, 2) -> [nick, events]; pp(muc_unsubscribe, 0) -> []; pp(rsm_first, 2) -> [index, data]; pp(rsm_set, 7) -> ['after', before, count, first, index, last, max]; pp(mam_query, 8) -> [xmlns, id, start, 'end', with, withtext, rsm, xdata]; pp(mam_archived, 2) -> [by, id]; pp(mam_result, 4) -> [xmlns, queryid, id, sub_els]; pp(mam_prefs, 4) -> [xmlns, default, always, never]; pp(mam_fin, 5) -> [xmlns, id, rsm, stable, complete]; pp(forwarded, 2) -> [delay, xml_els]; pp(carbons_disable, 0) -> []; pp(carbons_enable, 0) -> []; pp(carbons_private, 0) -> []; pp(carbons_received, 1) -> [forwarded]; pp(carbons_sent, 1) -> [forwarded]; pp(feature_csi, 1) -> [xmlns]; pp(feature_sm, 1) -> [xmlns]; pp(sm_enable, 3) -> [max, resume, xmlns]; pp(sm_enabled, 5) -> [id, location, max, resume, xmlns]; pp(sm_resume, 3) -> [h, previd, xmlns]; pp(sm_resumed, 3) -> [h, previd, xmlns]; pp(sm_r, 1) -> [xmlns]; pp(sm_a, 2) -> [h, xmlns]; pp(sm_failed, 3) -> [reason, h, xmlns]; pp(offline_item, 2) -> [node, action]; pp(offline, 3) -> [items, purge, fetch]; pp(mix_join, 2) -> [jid, subscribe]; pp(mix_leave, 0) -> []; pp(mix_participant, 2) -> [jid, nick]; pp(search_item, 5) -> [jid, first, last, nick, email]; pp(search, 7) -> [instructions, first, last, nick, email, items, xdata]; pp(xevent, 5) -> [offline, delivered, displayed, composing, id]; pp(expire, 2) -> [seconds, stored]; pp(nick, 1) -> [name]; pp(address, 5) -> [type, jid, desc, node, delivered]; pp(addresses, 1) -> [list]; pp(stanza_id, 2) -> [by, id]; pp(client_id, 1) -> [id]; pp(adhoc_actions, 4) -> [execute, prev, next, complete]; pp(adhoc_note, 2) -> [type, data]; pp(adhoc_command, 8) -> [node, action, sid, status, lang, actions, notes, xdata]; pp(db_result, 5) -> [from, to, type, key, sub_els]; pp(db_verify, 6) -> [from, to, id, type, key, sub_els]; pp(handshake, 1) -> [data]; pp(stream_start, 8) -> [from, to, id, version, xmlns, stream_xmlns, db_xmlns, lang]; pp(bob_data, 4) -> [cid, 'max-age', type, data]; pp(xcaptcha, 1) -> [xdata]; pp(media_uri, 2) -> [type, uri]; pp(media, 3) -> [height, width, uri]; pp(oob_x, 3) -> [url, desc, sid]; pp(sic, 3) -> [ip, port, xmlns]; pp(upload_request, 4) -> [filename, size, 'content-type', xmlns]; pp(upload_slot, 3) -> [get, put, xmlns]; pp(thumbnail, 4) -> [uri, 'media-type', width, height]; pp(privilege_perm, 2) -> [access, type]; pp(privilege, 2) -> [perms, forwarded]; pp(delegated, 2) -> [ns, attrs]; pp(delegation, 2) -> [delegated, forwarded]; pp(delegation_query, 2) -> [to, delegate]; pp(_, _) -> no. enc_ps_aff(member) -> <<"member">>; enc_ps_aff(none) -> <<"none">>; enc_ps_aff(outcast) -> <<"outcast">>; enc_ps_aff(owner) -> <<"owner">>; enc_ps_aff(publisher) -> <<"publisher">>; enc_ps_aff(publish_only) -> <<"publish-only">>. dec_ps_aff(<<"member">>) -> member; dec_ps_aff(<<"none">>) -> none; dec_ps_aff(<<"outcast">>) -> outcast; dec_ps_aff(<<"owner">>) -> owner; dec_ps_aff(<<"publisher">>) -> publisher; dec_ps_aff(<<"publish-only">>) -> publish_only. enc_version({Maj, Min}) -> <<(integer_to_binary(Maj))/binary, $., (integer_to_binary(Min))/binary>>. dec_version(S) -> [Major, Minor] = binary:split(S, <<$.>>), {binary_to_integer(Major), binary_to_integer(Minor)}. enc_host_port(Host) when is_binary(Host) -> Host; enc_host_port({{_, _, _, _, _, _, _, _} = IPv6, Port}) -> enc_host_port({<<$[, (enc_ip(IPv6))/binary, $]>>, Port}); enc_host_port({{_, _, _, _} = IPv4, Port}) -> enc_host_port({enc_ip(IPv4), Port}); enc_host_port({Host, Port}) -> <>; enc_host_port(Addr) -> enc_ip(Addr). dec_host_port(<<$[, T/binary>>) -> [IP, <<$:, Port/binary>>] = binary:split(T, <<$]>>), {dec_ip(IP), dec_int(Port, 0, 65535)}; dec_host_port(S) -> case binary:split(S, <<$:>>) of [S] -> try dec_ip(S) catch _:_ -> S end; [S, P] -> {try dec_ip(S) catch _:_ -> S end, dec_int(P, 0, 65535)} end. enc_ip({0, 0, 0, 0, 0, 65535, A, B}) -> enc_ip({(A bsr 8) band 255, A band 255, (B bsr 8) band 255, B band 255}); enc_ip(Addr) -> list_to_binary(inet_parse:ntoa(Addr)). dec_ip(S) -> {ok, Addr} = inet_parse:address(binary_to_list(S)), Addr. join([], _Sep) -> <<>>; join([H | T], Sep) -> <> || X <- T >>/binary>>. enc_bool(false) -> <<"false">>; enc_bool(true) -> <<"true">>. dec_bool(<<"false">>) -> false; dec_bool(<<"0">>) -> false; dec_bool(<<"true">>) -> true; dec_bool(<<"1">>) -> true. nameprep(S) -> case jid:nameprep(S) of error -> erlang:error(badarg); S1 -> S1 end. resourceprep(R) -> case jid:resourceprep(R) of error -> erlang:error(badarg); R1 -> R1 end. enc_jid(J) -> jid:to_string(J). dec_jid(Val) -> case jid:from_string(Val) of error -> erlang:error(badarg); J -> J end. enc_utc(Val) -> xmpp_util:encode_timestamp(Val). dec_utc(Val) -> xmpp_util:decode_timestamp(Val). enc_tzo({H, M}) -> Sign = if H >= 0 -> <<>>; true -> <<"-">> end, list_to_binary([Sign, io_lib:format("~2..0w:~2..0w", [H, M])]). dec_tzo(Val) -> [H1, M1] = str:tokens(Val, <<":">>), H = binary_to_integer(H1), M = binary_to_integer(M1), if H >= -12, H =< 12, M >= 0, M < 60 -> {H, M} end. decode_delegation_query(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> Delegate = decode_delegation_query_els(__TopXMLNS, __IgnoreEls, _els, []), To = decode_delegation_query_attrs(__TopXMLNS, _attrs, undefined), {delegation_query, To, Delegate}. decode_delegation_query_els(__TopXMLNS, __IgnoreEls, [], Delegate) -> lists:reverse(Delegate); decode_delegation_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delegate">>, _attrs, _} = _el | _els], Delegate) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:delegation:1">> -> decode_delegation_query_els(__TopXMLNS, __IgnoreEls, _els, [decode_delegate(__TopXMLNS, __IgnoreEls, _el) | Delegate]); <<"urn:xmpp:delegation:1">> -> decode_delegation_query_els(__TopXMLNS, __IgnoreEls, _els, [decode_delegate(<<"urn:xmpp:delegation:1">>, __IgnoreEls, _el) | Delegate]); _ -> decode_delegation_query_els(__TopXMLNS, __IgnoreEls, _els, Delegate) end; decode_delegation_query_els(__TopXMLNS, __IgnoreEls, [_ | _els], Delegate) -> decode_delegation_query_els(__TopXMLNS, __IgnoreEls, _els, Delegate). decode_delegation_query_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], _To) -> decode_delegation_query_attrs(__TopXMLNS, _attrs, _val); decode_delegation_query_attrs(__TopXMLNS, [_ | _attrs], To) -> decode_delegation_query_attrs(__TopXMLNS, _attrs, To); decode_delegation_query_attrs(__TopXMLNS, [], To) -> decode_delegation_query_attr_to(__TopXMLNS, To). encode_delegation_query({delegation_query, To, Delegate}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delegation:1">>, [], __TopXMLNS), _els = lists:reverse('encode_delegation_query_$delegate'(Delegate, __NewTopXMLNS, [])), _attrs = encode_delegation_query_attr_to(To, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_delegation_query_$delegate'([], __TopXMLNS, _acc) -> _acc; 'encode_delegation_query_$delegate'([Delegate | _els], __TopXMLNS, _acc) -> 'encode_delegation_query_$delegate'(_els, __TopXMLNS, [encode_delegate(Delegate, __TopXMLNS) | _acc]). decode_delegation_query_attr_to(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"to">>, <<"query">>, __TopXMLNS}}); decode_delegation_query_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"query">>, __TopXMLNS}}); _res -> _res end. encode_delegation_query_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. decode_delegate(__TopXMLNS, __IgnoreEls, {xmlel, <<"delegate">>, _attrs, _els}) -> Namespace = decode_delegate_attrs(__TopXMLNS, _attrs, undefined), Namespace. decode_delegate_attrs(__TopXMLNS, [{<<"namespace">>, _val} | _attrs], _Namespace) -> decode_delegate_attrs(__TopXMLNS, _attrs, _val); decode_delegate_attrs(__TopXMLNS, [_ | _attrs], Namespace) -> decode_delegate_attrs(__TopXMLNS, _attrs, Namespace); decode_delegate_attrs(__TopXMLNS, [], Namespace) -> decode_delegate_attr_namespace(__TopXMLNS, Namespace). encode_delegate(Namespace, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delegation:1">>, [], __TopXMLNS), _els = [], _attrs = encode_delegate_attr_namespace(Namespace, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"delegate">>, _attrs, _els}. decode_delegate_attr_namespace(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"namespace">>, <<"delegate">>, __TopXMLNS}}); decode_delegate_attr_namespace(__TopXMLNS, _val) -> _val. encode_delegate_attr_namespace(_val, _acc) -> [{<<"namespace">>, _val} | _acc]. decode_delegation(__TopXMLNS, __IgnoreEls, {xmlel, <<"delegation">>, _attrs, _els}) -> {Forwarded, Delegated} = decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, undefined, []), {delegation, Delegated, Forwarded}. decode_delegation_els(__TopXMLNS, __IgnoreEls, [], Forwarded, Delegated) -> {Forwarded, lists:reverse(Delegated)}; decode_delegation_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delegated">>, _attrs, _} = _el | _els], Forwarded, Delegated) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:delegation:1">> -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, Forwarded, [decode_delegated(__TopXMLNS, __IgnoreEls, _el) | Delegated]); <<"urn:xmpp:delegation:1">> -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, Forwarded, [decode_delegated(<<"urn:xmpp:delegation:1">>, __IgnoreEls, _el) | Delegated]); _ -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, Forwarded, Delegated) end; decode_delegation_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Forwarded, Delegated) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:xmpp:forward:0">> -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, decode_forwarded(<<"urn:xmpp:forward:0">>, __IgnoreEls, _el), Delegated); _ -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, Forwarded, Delegated) end; decode_delegation_els(__TopXMLNS, __IgnoreEls, [_ | _els], Forwarded, Delegated) -> decode_delegation_els(__TopXMLNS, __IgnoreEls, _els, Forwarded, Delegated). encode_delegation({delegation, Delegated, Forwarded}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delegation:1">>, [], __TopXMLNS), _els = lists:reverse('encode_delegation_$forwarded'(Forwarded, __NewTopXMLNS, 'encode_delegation_$delegated'(Delegated, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"delegation">>, _attrs, _els}. 'encode_delegation_$forwarded'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_delegation_$forwarded'(Forwarded, __TopXMLNS, _acc) -> [encode_forwarded(Forwarded, __TopXMLNS) | _acc]. 'encode_delegation_$delegated'([], __TopXMLNS, _acc) -> _acc; 'encode_delegation_$delegated'([Delegated | _els], __TopXMLNS, _acc) -> 'encode_delegation_$delegated'(_els, __TopXMLNS, [encode_delegated(Delegated, __TopXMLNS) | _acc]). decode_delegated(__TopXMLNS, __IgnoreEls, {xmlel, <<"delegated">>, _attrs, _els}) -> Attrs = decode_delegated_els(__TopXMLNS, __IgnoreEls, _els, []), Ns = decode_delegated_attrs(__TopXMLNS, _attrs, undefined), {delegated, Ns, Attrs}. decode_delegated_els(__TopXMLNS, __IgnoreEls, [], Attrs) -> lists:reverse(Attrs); decode_delegated_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"attribute">>, _attrs, _} = _el | _els], Attrs) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:delegation:1">> -> decode_delegated_els(__TopXMLNS, __IgnoreEls, _els, [decode_delegated_attribute(__TopXMLNS, __IgnoreEls, _el) | Attrs]); <<"urn:xmpp:delegation:1">> -> decode_delegated_els(__TopXMLNS, __IgnoreEls, _els, [decode_delegated_attribute(<<"urn:xmpp:delegation:1">>, __IgnoreEls, _el) | Attrs]); _ -> decode_delegated_els(__TopXMLNS, __IgnoreEls, _els, Attrs) end; decode_delegated_els(__TopXMLNS, __IgnoreEls, [_ | _els], Attrs) -> decode_delegated_els(__TopXMLNS, __IgnoreEls, _els, Attrs). decode_delegated_attrs(__TopXMLNS, [{<<"namespace">>, _val} | _attrs], _Ns) -> decode_delegated_attrs(__TopXMLNS, _attrs, _val); decode_delegated_attrs(__TopXMLNS, [_ | _attrs], Ns) -> decode_delegated_attrs(__TopXMLNS, _attrs, Ns); decode_delegated_attrs(__TopXMLNS, [], Ns) -> decode_delegated_attr_namespace(__TopXMLNS, Ns). encode_delegated({delegated, Ns, Attrs}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delegation:1">>, [], __TopXMLNS), _els = lists:reverse('encode_delegated_$attrs'(Attrs, __NewTopXMLNS, [])), _attrs = encode_delegated_attr_namespace(Ns, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"delegated">>, _attrs, _els}. 'encode_delegated_$attrs'([], __TopXMLNS, _acc) -> _acc; 'encode_delegated_$attrs'([Attrs | _els], __TopXMLNS, _acc) -> 'encode_delegated_$attrs'(_els, __TopXMLNS, [encode_delegated_attribute(Attrs, __TopXMLNS) | _acc]). decode_delegated_attr_namespace(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"namespace">>, <<"delegated">>, __TopXMLNS}}); decode_delegated_attr_namespace(__TopXMLNS, _val) -> _val. encode_delegated_attr_namespace(_val, _acc) -> [{<<"namespace">>, _val} | _acc]. decode_delegated_attribute(__TopXMLNS, __IgnoreEls, {xmlel, <<"attribute">>, _attrs, _els}) -> Name = decode_delegated_attribute_attrs(__TopXMLNS, _attrs, undefined), Name. decode_delegated_attribute_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name) -> decode_delegated_attribute_attrs(__TopXMLNS, _attrs, _val); decode_delegated_attribute_attrs(__TopXMLNS, [_ | _attrs], Name) -> decode_delegated_attribute_attrs(__TopXMLNS, _attrs, Name); decode_delegated_attribute_attrs(__TopXMLNS, [], Name) -> decode_delegated_attribute_attr_name(__TopXMLNS, Name). encode_delegated_attribute(Name, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delegation:1">>, [], __TopXMLNS), _els = [], _attrs = encode_delegated_attribute_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"attribute">>, _attrs, _els}. decode_delegated_attribute_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"attribute">>, __TopXMLNS}}); decode_delegated_attribute_attr_name(__TopXMLNS, _val) -> _val. encode_delegated_attribute_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_privilege(__TopXMLNS, __IgnoreEls, {xmlel, <<"privilege">>, _attrs, _els}) -> {Perms, Forwarded} = decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, [], undefined), {privilege, Perms, Forwarded}. decode_privilege_els(__TopXMLNS, __IgnoreEls, [], Perms, Forwarded) -> {lists:reverse(Perms), Forwarded}; decode_privilege_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"perm">>, _attrs, _} = _el | _els], Perms, Forwarded) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:privilege:1">> -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, [decode_privilege_perm(__TopXMLNS, __IgnoreEls, _el) | Perms], Forwarded); <<"urn:xmpp:privilege:1">> -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, [decode_privilege_perm(<<"urn:xmpp:privilege:1">>, __IgnoreEls, _el) | Perms], Forwarded); _ -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, Perms, Forwarded) end; decode_privilege_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Perms, Forwarded) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:xmpp:forward:0">> -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, Perms, decode_forwarded(<<"urn:xmpp:forward:0">>, __IgnoreEls, _el)); _ -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, Perms, Forwarded) end; decode_privilege_els(__TopXMLNS, __IgnoreEls, [_ | _els], Perms, Forwarded) -> decode_privilege_els(__TopXMLNS, __IgnoreEls, _els, Perms, Forwarded). encode_privilege({privilege, Perms, Forwarded}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:privilege:1">>, [], __TopXMLNS), _els = lists:reverse('encode_privilege_$perms'(Perms, __NewTopXMLNS, 'encode_privilege_$forwarded'(Forwarded, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"privilege">>, _attrs, _els}. 'encode_privilege_$perms'([], __TopXMLNS, _acc) -> _acc; 'encode_privilege_$perms'([Perms | _els], __TopXMLNS, _acc) -> 'encode_privilege_$perms'(_els, __TopXMLNS, [encode_privilege_perm(Perms, __TopXMLNS) | _acc]). 'encode_privilege_$forwarded'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_privilege_$forwarded'(Forwarded, __TopXMLNS, _acc) -> [encode_forwarded(Forwarded, __TopXMLNS) | _acc]. decode_privilege_perm(__TopXMLNS, __IgnoreEls, {xmlel, <<"perm">>, _attrs, _els}) -> {Access, Type} = decode_privilege_perm_attrs(__TopXMLNS, _attrs, undefined, undefined), {privilege_perm, Access, Type}. decode_privilege_perm_attrs(__TopXMLNS, [{<<"access">>, _val} | _attrs], _Access, Type) -> decode_privilege_perm_attrs(__TopXMLNS, _attrs, _val, Type); decode_privilege_perm_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Access, _Type) -> decode_privilege_perm_attrs(__TopXMLNS, _attrs, Access, _val); decode_privilege_perm_attrs(__TopXMLNS, [_ | _attrs], Access, Type) -> decode_privilege_perm_attrs(__TopXMLNS, _attrs, Access, Type); decode_privilege_perm_attrs(__TopXMLNS, [], Access, Type) -> {decode_privilege_perm_attr_access(__TopXMLNS, Access), decode_privilege_perm_attr_type(__TopXMLNS, Type)}. encode_privilege_perm({privilege_perm, Access, Type}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:privilege:1">>, [], __TopXMLNS), _els = [], _attrs = encode_privilege_perm_attr_type(Type, encode_privilege_perm_attr_access(Access, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"perm">>, _attrs, _els}. decode_privilege_perm_attr_access(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"access">>, <<"perm">>, __TopXMLNS}}); decode_privilege_perm_attr_access(__TopXMLNS, _val) -> case catch dec_enum(_val, [roster, message, presence]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"access">>, <<"perm">>, __TopXMLNS}}); _res -> _res end. encode_privilege_perm_attr_access(_val, _acc) -> [{<<"access">>, enc_enum(_val)} | _acc]. decode_privilege_perm_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"perm">>, __TopXMLNS}}); decode_privilege_perm_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [none, get, set, both, outgoing, roster, managed_entity]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"perm">>, __TopXMLNS}}); _res -> _res end. encode_privilege_perm_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_thumbnail(__TopXMLNS, __IgnoreEls, {xmlel, <<"thumbnail">>, _attrs, _els}) -> {Uri, Media_type, Width, Height} = decode_thumbnail_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {thumbnail, Uri, Media_type, Width, Height}. decode_thumbnail_attrs(__TopXMLNS, [{<<"uri">>, _val} | _attrs], _Uri, Media_type, Width, Height) -> decode_thumbnail_attrs(__TopXMLNS, _attrs, _val, Media_type, Width, Height); decode_thumbnail_attrs(__TopXMLNS, [{<<"media-type">>, _val} | _attrs], Uri, _Media_type, Width, Height) -> decode_thumbnail_attrs(__TopXMLNS, _attrs, Uri, _val, Width, Height); decode_thumbnail_attrs(__TopXMLNS, [{<<"width">>, _val} | _attrs], Uri, Media_type, _Width, Height) -> decode_thumbnail_attrs(__TopXMLNS, _attrs, Uri, Media_type, _val, Height); decode_thumbnail_attrs(__TopXMLNS, [{<<"height">>, _val} | _attrs], Uri, Media_type, Width, _Height) -> decode_thumbnail_attrs(__TopXMLNS, _attrs, Uri, Media_type, Width, _val); decode_thumbnail_attrs(__TopXMLNS, [_ | _attrs], Uri, Media_type, Width, Height) -> decode_thumbnail_attrs(__TopXMLNS, _attrs, Uri, Media_type, Width, Height); decode_thumbnail_attrs(__TopXMLNS, [], Uri, Media_type, Width, Height) -> {decode_thumbnail_attr_uri(__TopXMLNS, Uri), 'decode_thumbnail_attr_media-type'(__TopXMLNS, Media_type), decode_thumbnail_attr_width(__TopXMLNS, Width), decode_thumbnail_attr_height(__TopXMLNS, Height)}. encode_thumbnail({thumbnail, Uri, Media_type, Width, Height}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:thumbs:1">>, [], __TopXMLNS), _els = [], _attrs = encode_thumbnail_attr_height(Height, encode_thumbnail_attr_width(Width, 'encode_thumbnail_attr_media-type'(Media_type, encode_thumbnail_attr_uri(Uri, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"thumbnail">>, _attrs, _els}. decode_thumbnail_attr_uri(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"uri">>, <<"thumbnail">>, __TopXMLNS}}); decode_thumbnail_attr_uri(__TopXMLNS, _val) -> _val. encode_thumbnail_attr_uri(_val, _acc) -> [{<<"uri">>, _val} | _acc]. 'decode_thumbnail_attr_media-type'(__TopXMLNS, undefined) -> <<>>; 'decode_thumbnail_attr_media-type'(__TopXMLNS, _val) -> _val. 'encode_thumbnail_attr_media-type'(<<>>, _acc) -> _acc; 'encode_thumbnail_attr_media-type'(_val, _acc) -> [{<<"media-type">>, _val} | _acc]. decode_thumbnail_attr_width(__TopXMLNS, undefined) -> undefined; decode_thumbnail_attr_width(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"width">>, <<"thumbnail">>, __TopXMLNS}}); _res -> _res end. encode_thumbnail_attr_width(undefined, _acc) -> _acc; encode_thumbnail_attr_width(_val, _acc) -> [{<<"width">>, enc_int(_val)} | _acc]. decode_thumbnail_attr_height(__TopXMLNS, undefined) -> undefined; decode_thumbnail_attr_height(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"height">>, <<"thumbnail">>, __TopXMLNS}}); _res -> _res end. encode_thumbnail_attr_height(undefined, _acc) -> _acc; encode_thumbnail_attr_height(_val, _acc) -> [{<<"height">>, enc_int(_val)} | _acc]. decode_upload_slot(__TopXMLNS, __IgnoreEls, {xmlel, <<"slot">>, _attrs, _els}) -> {Put, Get} = decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), Xmlns = decode_upload_slot_attrs(__TopXMLNS, _attrs, undefined), {upload_slot, Get, Put, Xmlns}. decode_upload_slot_els(__TopXMLNS, __IgnoreEls, [], Put, Get) -> {Put, Get}; decode_upload_slot_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"get">>, _attrs, _} = _el | _els], Put, Get) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"eu:siacs:conversations:http:upload">>; __TopXMLNS == <<"urn:xmpp:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, decode_upload_get(__TopXMLNS, __IgnoreEls, _el)); <<"urn:xmpp:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, decode_upload_get(<<"urn:xmpp:http:upload">>, __IgnoreEls, _el)); <<"eu:siacs:conversations:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, decode_upload_get(<<"eu:siacs:conversations:http:upload">>, __IgnoreEls, _el)); _ -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, Get) end; decode_upload_slot_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"put">>, _attrs, _} = _el | _els], Put, Get) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"eu:siacs:conversations:http:upload">>; __TopXMLNS == <<"urn:xmpp:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_put(__TopXMLNS, __IgnoreEls, _el), Get); <<"urn:xmpp:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_put(<<"urn:xmpp:http:upload">>, __IgnoreEls, _el), Get); <<"eu:siacs:conversations:http:upload">> -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_put(<<"eu:siacs:conversations:http:upload">>, __IgnoreEls, _el), Get); _ -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, Get) end; decode_upload_slot_els(__TopXMLNS, __IgnoreEls, [_ | _els], Put, Get) -> decode_upload_slot_els(__TopXMLNS, __IgnoreEls, _els, Put, Get). decode_upload_slot_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_upload_slot_attrs(__TopXMLNS, _attrs, _val); decode_upload_slot_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_upload_slot_attrs(__TopXMLNS, _attrs, Xmlns); decode_upload_slot_attrs(__TopXMLNS, [], Xmlns) -> decode_upload_slot_attr_xmlns(__TopXMLNS, Xmlns). encode_upload_slot({upload_slot, Get, Put, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = lists:reverse('encode_upload_slot_$put'(Put, __NewTopXMLNS, 'encode_upload_slot_$get'(Get, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"slot">>, _attrs, _els}. 'encode_upload_slot_$put'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_upload_slot_$put'(Put, __TopXMLNS, _acc) -> [encode_upload_put(Put, __TopXMLNS) | _acc]. 'encode_upload_slot_$get'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_upload_slot_$get'(Get, __TopXMLNS, _acc) -> [encode_upload_get(Get, __TopXMLNS) | _acc]. decode_upload_slot_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_upload_slot_attr_xmlns(__TopXMLNS, _val) -> _val. decode_upload_put(__TopXMLNS, __IgnoreEls, {xmlel, <<"put">>, _attrs, _els}) -> Cdata = decode_upload_put_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_upload_put_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_upload_put_cdata(__TopXMLNS, Cdata); decode_upload_put_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_upload_put_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_upload_put_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_upload_put_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_upload_put(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = encode_upload_put_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"put">>, _attrs, _els}. decode_upload_put_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"put">>, __TopXMLNS}}); decode_upload_put_cdata(__TopXMLNS, _val) -> _val. encode_upload_put_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_upload_get(__TopXMLNS, __IgnoreEls, {xmlel, <<"get">>, _attrs, _els}) -> Cdata = decode_upload_get_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_upload_get_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_upload_get_cdata(__TopXMLNS, Cdata); decode_upload_get_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_upload_get_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_upload_get_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_upload_get_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_upload_get(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = encode_upload_get_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"get">>, _attrs, _els}. decode_upload_get_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"get">>, __TopXMLNS}}); decode_upload_get_cdata(__TopXMLNS, _val) -> _val. encode_upload_get_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_upload_request(__TopXMLNS, __IgnoreEls, {xmlel, <<"request">>, _attrs, _els}) -> {Content_type, Size, Filename} = decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, <<>>, error, error), Xmlns = decode_upload_request_attrs(__TopXMLNS, _attrs, undefined), {upload_request, Filename, Size, Content_type, Xmlns}. decode_upload_request_els(__TopXMLNS, __IgnoreEls, [], Content_type, Size, Filename) -> {Content_type, case Size of error -> erlang:error({xmpp_codec, {missing_tag, <<"size">>, __TopXMLNS}}); {value, Size1} -> Size1 end, case Filename of error -> erlang:error({xmpp_codec, {missing_tag, <<"filename">>, __TopXMLNS}}); {value, Filename1} -> Filename1 end}; decode_upload_request_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"filename">>, _attrs, _} = _el | _els], Content_type, Size, Filename) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"eu:siacs:conversations:http:upload">>; __TopXMLNS == <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, {value, decode_upload_filename(__TopXMLNS, __IgnoreEls, _el)}); <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, {value, decode_upload_filename(<<"urn:xmpp:http:upload">>, __IgnoreEls, _el)}); <<"eu:siacs:conversations:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, {value, decode_upload_filename(<<"eu:siacs:conversations:http:upload">>, __IgnoreEls, _el)}); _ -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, Filename) end; decode_upload_request_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"size">>, _attrs, _} = _el | _els], Content_type, Size, Filename) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"eu:siacs:conversations:http:upload">>; __TopXMLNS == <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, {value, decode_upload_size(__TopXMLNS, __IgnoreEls, _el)}, Filename); <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, {value, decode_upload_size(<<"urn:xmpp:http:upload">>, __IgnoreEls, _el)}, Filename); <<"eu:siacs:conversations:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, {value, decode_upload_size(<<"eu:siacs:conversations:http:upload">>, __IgnoreEls, _el)}, Filename); _ -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, Filename) end; decode_upload_request_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"content-type">>, _attrs, _} = _el | _els], Content_type, Size, Filename) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"eu:siacs:conversations:http:upload">>; __TopXMLNS == <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_content_type(__TopXMLNS, __IgnoreEls, _el), Size, Filename); <<"urn:xmpp:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_content_type(<<"urn:xmpp:http:upload">>, __IgnoreEls, _el), Size, Filename); <<"eu:siacs:conversations:http:upload">> -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, decode_upload_content_type(<<"eu:siacs:conversations:http:upload">>, __IgnoreEls, _el), Size, Filename); _ -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, Filename) end; decode_upload_request_els(__TopXMLNS, __IgnoreEls, [_ | _els], Content_type, Size, Filename) -> decode_upload_request_els(__TopXMLNS, __IgnoreEls, _els, Content_type, Size, Filename). decode_upload_request_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_upload_request_attrs(__TopXMLNS, _attrs, _val); decode_upload_request_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_upload_request_attrs(__TopXMLNS, _attrs, Xmlns); decode_upload_request_attrs(__TopXMLNS, [], Xmlns) -> decode_upload_request_attr_xmlns(__TopXMLNS, Xmlns). encode_upload_request({upload_request, Filename, Size, Content_type, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = lists:reverse('encode_upload_request_$content-type'(Content_type, __NewTopXMLNS, 'encode_upload_request_$size'(Size, __NewTopXMLNS, 'encode_upload_request_$filename'(Filename, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"request">>, _attrs, _els}. 'encode_upload_request_$content-type'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_upload_request_$content-type'(Content_type, __TopXMLNS, _acc) -> [encode_upload_content_type(Content_type, __TopXMLNS) | _acc]. 'encode_upload_request_$size'(Size, __TopXMLNS, _acc) -> [encode_upload_size(Size, __TopXMLNS) | _acc]. 'encode_upload_request_$filename'(Filename, __TopXMLNS, _acc) -> [encode_upload_filename(Filename, __TopXMLNS) | _acc]. decode_upload_request_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_upload_request_attr_xmlns(__TopXMLNS, _val) -> _val. decode_upload_content_type(__TopXMLNS, __IgnoreEls, {xmlel, <<"content-type">>, _attrs, _els}) -> Cdata = decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_upload_content_type_cdata(__TopXMLNS, Cdata); decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_upload_content_type_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_upload_content_type(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = encode_upload_content_type_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"content-type">>, _attrs, _els}. decode_upload_content_type_cdata(__TopXMLNS, <<>>) -> <<>>; decode_upload_content_type_cdata(__TopXMLNS, _val) -> _val. encode_upload_content_type_cdata(<<>>, _acc) -> _acc; encode_upload_content_type_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_upload_size(__TopXMLNS, __IgnoreEls, {xmlel, <<"size">>, _attrs, _els}) -> Cdata = decode_upload_size_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_upload_size_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_upload_size_cdata(__TopXMLNS, Cdata); decode_upload_size_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_upload_size_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_upload_size_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_upload_size_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_upload_size(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = encode_upload_size_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"size">>, _attrs, _els}. decode_upload_size_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"size">>, __TopXMLNS}}); decode_upload_size_cdata(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"size">>, __TopXMLNS}}); _res -> _res end. encode_upload_size_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_upload_filename(__TopXMLNS, __IgnoreEls, {xmlel, <<"filename">>, _attrs, _els}) -> Cdata = decode_upload_filename_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_upload_filename_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_upload_filename_cdata(__TopXMLNS, Cdata); decode_upload_filename_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_upload_filename_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_upload_filename_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_upload_filename_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_upload_filename(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:http:upload">>, <<"eu:siacs:conversations:http:upload">>], __TopXMLNS), _els = encode_upload_filename_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"filename">>, _attrs, _els}. decode_upload_filename_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"filename">>, __TopXMLNS}}); decode_upload_filename_cdata(__TopXMLNS, _val) -> _val. encode_upload_filename_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_sic(__TopXMLNS, __IgnoreEls, {xmlel, <<"address">>, _attrs, _els}) -> {Ip, Port} = decode_sic_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), Xmlns = decode_sic_attrs(__TopXMLNS, _attrs, undefined), {sic, Ip, Port, Xmlns}. decode_sic_els(__TopXMLNS, __IgnoreEls, [], Ip, Port) -> {Ip, Port}; decode_sic_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ip">>, _attrs, _} = _el | _els], Ip, Port) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:sic:1">>; __TopXMLNS == <<"urn:xmpp:sic:0">> -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, decode_sic_ip(__TopXMLNS, __IgnoreEls, _el), Port); <<"urn:xmpp:sic:0">> -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, decode_sic_ip(<<"urn:xmpp:sic:0">>, __IgnoreEls, _el), Port); <<"urn:xmpp:sic:1">> -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, decode_sic_ip(<<"urn:xmpp:sic:1">>, __IgnoreEls, _el), Port); _ -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, Ip, Port) end; decode_sic_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"port">>, _attrs, _} = _el | _els], Ip, Port) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:sic:1">> -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, Ip, decode_sip_port(__TopXMLNS, __IgnoreEls, _el)); <<"urn:xmpp:sic:1">> -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, Ip, decode_sip_port(<<"urn:xmpp:sic:1">>, __IgnoreEls, _el)); _ -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, Ip, Port) end; decode_sic_els(__TopXMLNS, __IgnoreEls, [_ | _els], Ip, Port) -> decode_sic_els(__TopXMLNS, __IgnoreEls, _els, Ip, Port). decode_sic_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_sic_attrs(__TopXMLNS, _attrs, _val); decode_sic_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_sic_attrs(__TopXMLNS, _attrs, Xmlns); decode_sic_attrs(__TopXMLNS, [], Xmlns) -> decode_sic_attr_xmlns(__TopXMLNS, Xmlns). encode_sic({sic, Ip, Port, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sic:0">>, <<"urn:xmpp:sic:1">>], __TopXMLNS), _els = lists:reverse('encode_sic_$ip'(Ip, __NewTopXMLNS, 'encode_sic_$port'(Port, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"address">>, _attrs, _els}. 'encode_sic_$ip'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_sic_$ip'(Ip, __TopXMLNS, _acc) -> [encode_sic_ip(Ip, __TopXMLNS) | _acc]. 'encode_sic_$port'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_sic_$port'(Port, __TopXMLNS, _acc) -> [encode_sip_port(Port, __TopXMLNS) | _acc]. decode_sic_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sic_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sip_port(__TopXMLNS, __IgnoreEls, {xmlel, <<"port">>, _attrs, _els}) -> Cdata = decode_sip_port_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_sip_port_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_sip_port_cdata(__TopXMLNS, Cdata); decode_sip_port_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_sip_port_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sip_port_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_sip_port_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_sip_port(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:sic:1">>, [], __TopXMLNS), _els = encode_sip_port_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"port">>, _attrs, _els}. decode_sip_port_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"port">>, __TopXMLNS}}); decode_sip_port_cdata(__TopXMLNS, _val) -> case catch dec_int(_val, 0, 65535) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"port">>, __TopXMLNS}}); _res -> _res end. encode_sip_port_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_sic_ip(__TopXMLNS, __IgnoreEls, {xmlel, <<"ip">>, _attrs, _els}) -> Cdata = decode_sic_ip_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_sic_ip_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_sic_ip_cdata(__TopXMLNS, Cdata); decode_sic_ip_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_sic_ip_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sic_ip_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_sic_ip_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_sic_ip(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:sic:0">>, <<"urn:xmpp:sic:1">>], __TopXMLNS), _els = encode_sic_ip_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ip">>, _attrs, _els}. decode_sic_ip_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"ip">>, __TopXMLNS}}); decode_sic_ip_cdata(__TopXMLNS, _val) -> case catch dec_ip(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"ip">>, __TopXMLNS}}); _res -> _res end. encode_sic_ip_cdata(_val, _acc) -> [{xmlcdata, enc_ip(_val)} | _acc]. decode_oob_x(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Desc, Url} = decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, <<>>, error), Sid = decode_oob_x_attrs(__TopXMLNS, _attrs, undefined), {oob_x, Url, Desc, Sid}. decode_oob_x_els(__TopXMLNS, __IgnoreEls, [], Desc, Url) -> {Desc, case Url of error -> erlang:error({xmpp_codec, {missing_tag, <<"url">>, __TopXMLNS}}); {value, Url1} -> Url1 end}; decode_oob_x_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"url">>, _attrs, _} = _el | _els], Desc, Url) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:oob">> -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, Desc, {value, decode_oob_url(__TopXMLNS, __IgnoreEls, _el)}); <<"jabber:x:oob">> -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, Desc, {value, decode_oob_url(<<"jabber:x:oob">>, __IgnoreEls, _el)}); _ -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, Desc, Url) end; decode_oob_x_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"desc">>, _attrs, _} = _el | _els], Desc, Url) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:oob">> -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, decode_oob_desc(__TopXMLNS, __IgnoreEls, _el), Url); <<"jabber:x:oob">> -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, decode_oob_desc(<<"jabber:x:oob">>, __IgnoreEls, _el), Url); _ -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, Desc, Url) end; decode_oob_x_els(__TopXMLNS, __IgnoreEls, [_ | _els], Desc, Url) -> decode_oob_x_els(__TopXMLNS, __IgnoreEls, _els, Desc, Url). decode_oob_x_attrs(__TopXMLNS, [{<<"sid">>, _val} | _attrs], _Sid) -> decode_oob_x_attrs(__TopXMLNS, _attrs, _val); decode_oob_x_attrs(__TopXMLNS, [_ | _attrs], Sid) -> decode_oob_x_attrs(__TopXMLNS, _attrs, Sid); decode_oob_x_attrs(__TopXMLNS, [], Sid) -> decode_oob_x_attr_sid(__TopXMLNS, Sid). encode_oob_x({oob_x, Url, Desc, Sid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:oob">>, [], __TopXMLNS), _els = lists:reverse('encode_oob_x_$desc'(Desc, __NewTopXMLNS, 'encode_oob_x_$url'(Url, __NewTopXMLNS, []))), _attrs = encode_oob_x_attr_sid(Sid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"x">>, _attrs, _els}. 'encode_oob_x_$desc'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_oob_x_$desc'(Desc, __TopXMLNS, _acc) -> [encode_oob_desc(Desc, __TopXMLNS) | _acc]. 'encode_oob_x_$url'(Url, __TopXMLNS, _acc) -> [encode_oob_url(Url, __TopXMLNS) | _acc]. decode_oob_x_attr_sid(__TopXMLNS, undefined) -> <<>>; decode_oob_x_attr_sid(__TopXMLNS, _val) -> _val. encode_oob_x_attr_sid(<<>>, _acc) -> _acc; encode_oob_x_attr_sid(_val, _acc) -> [{<<"sid">>, _val} | _acc]. decode_oob_desc(__TopXMLNS, __IgnoreEls, {xmlel, <<"desc">>, _attrs, _els}) -> Cdata = decode_oob_desc_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_oob_desc_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_oob_desc_cdata(__TopXMLNS, Cdata); decode_oob_desc_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_oob_desc_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_oob_desc_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_oob_desc_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_oob_desc(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:oob">>, [], __TopXMLNS), _els = encode_oob_desc_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"desc">>, _attrs, _els}. decode_oob_desc_cdata(__TopXMLNS, <<>>) -> <<>>; decode_oob_desc_cdata(__TopXMLNS, _val) -> _val. encode_oob_desc_cdata(<<>>, _acc) -> _acc; encode_oob_desc_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_oob_url(__TopXMLNS, __IgnoreEls, {xmlel, <<"url">>, _attrs, _els}) -> Cdata = decode_oob_url_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_oob_url_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_oob_url_cdata(__TopXMLNS, Cdata); decode_oob_url_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_oob_url_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_oob_url_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_oob_url_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_oob_url(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:oob">>, [], __TopXMLNS), _els = encode_oob_url_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"url">>, _attrs, _els}. decode_oob_url_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"url">>, __TopXMLNS}}); decode_oob_url_cdata(__TopXMLNS, _val) -> _val. encode_oob_url_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_media(__TopXMLNS, __IgnoreEls, {xmlel, <<"media">>, _attrs, _els}) -> Uri = decode_media_els(__TopXMLNS, __IgnoreEls, _els, []), {Height, Width} = decode_media_attrs(__TopXMLNS, _attrs, undefined, undefined), {media, Height, Width, Uri}. decode_media_els(__TopXMLNS, __IgnoreEls, [], Uri) -> lists:reverse(Uri); decode_media_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"uri">>, _attrs, _} = _el | _els], Uri) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:media-element">> -> decode_media_els(__TopXMLNS, __IgnoreEls, _els, [decode_media_uri(__TopXMLNS, __IgnoreEls, _el) | Uri]); <<"urn:xmpp:media-element">> -> decode_media_els(__TopXMLNS, __IgnoreEls, _els, [decode_media_uri(<<"urn:xmpp:media-element">>, __IgnoreEls, _el) | Uri]); _ -> decode_media_els(__TopXMLNS, __IgnoreEls, _els, Uri) end; decode_media_els(__TopXMLNS, __IgnoreEls, [_ | _els], Uri) -> decode_media_els(__TopXMLNS, __IgnoreEls, _els, Uri). decode_media_attrs(__TopXMLNS, [{<<"height">>, _val} | _attrs], _Height, Width) -> decode_media_attrs(__TopXMLNS, _attrs, _val, Width); decode_media_attrs(__TopXMLNS, [{<<"width">>, _val} | _attrs], Height, _Width) -> decode_media_attrs(__TopXMLNS, _attrs, Height, _val); decode_media_attrs(__TopXMLNS, [_ | _attrs], Height, Width) -> decode_media_attrs(__TopXMLNS, _attrs, Height, Width); decode_media_attrs(__TopXMLNS, [], Height, Width) -> {decode_media_attr_height(__TopXMLNS, Height), decode_media_attr_width(__TopXMLNS, Width)}. encode_media({media, Height, Width, Uri}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:media-element">>, [], __TopXMLNS), _els = lists:reverse('encode_media_$uri'(Uri, __NewTopXMLNS, [])), _attrs = encode_media_attr_width(Width, encode_media_attr_height(Height, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"media">>, _attrs, _els}. 'encode_media_$uri'([], __TopXMLNS, _acc) -> _acc; 'encode_media_$uri'([Uri | _els], __TopXMLNS, _acc) -> 'encode_media_$uri'(_els, __TopXMLNS, [encode_media_uri(Uri, __TopXMLNS) | _acc]). decode_media_attr_height(__TopXMLNS, undefined) -> undefined; decode_media_attr_height(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"height">>, <<"media">>, __TopXMLNS}}); _res -> _res end. encode_media_attr_height(undefined, _acc) -> _acc; encode_media_attr_height(_val, _acc) -> [{<<"height">>, enc_int(_val)} | _acc]. decode_media_attr_width(__TopXMLNS, undefined) -> undefined; decode_media_attr_width(__TopXMLNS, _val) -> case catch dec_int(_val, 0, inifinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"width">>, <<"media">>, __TopXMLNS}}); _res -> _res end. encode_media_attr_width(undefined, _acc) -> _acc; encode_media_attr_width(_val, _acc) -> [{<<"width">>, enc_int(_val)} | _acc]. decode_media_uri(__TopXMLNS, __IgnoreEls, {xmlel, <<"uri">>, _attrs, _els}) -> Uri = decode_media_uri_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Type = decode_media_uri_attrs(__TopXMLNS, _attrs, undefined), {media_uri, Type, Uri}. decode_media_uri_els(__TopXMLNS, __IgnoreEls, [], Uri) -> decode_media_uri_cdata(__TopXMLNS, Uri); decode_media_uri_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Uri) -> decode_media_uri_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_media_uri_els(__TopXMLNS, __IgnoreEls, [_ | _els], Uri) -> decode_media_uri_els(__TopXMLNS, __IgnoreEls, _els, Uri). decode_media_uri_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], _Type) -> decode_media_uri_attrs(__TopXMLNS, _attrs, _val); decode_media_uri_attrs(__TopXMLNS, [_ | _attrs], Type) -> decode_media_uri_attrs(__TopXMLNS, _attrs, Type); decode_media_uri_attrs(__TopXMLNS, [], Type) -> decode_media_uri_attr_type(__TopXMLNS, Type). encode_media_uri({media_uri, Type, Uri}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:media-element">>, [], __TopXMLNS), _els = encode_media_uri_cdata(Uri, []), _attrs = encode_media_uri_attr_type(Type, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"uri">>, _attrs, _els}. decode_media_uri_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"uri">>, __TopXMLNS}}); decode_media_uri_attr_type(__TopXMLNS, _val) -> _val. encode_media_uri_attr_type(_val, _acc) -> [{<<"type">>, _val} | _acc]. decode_media_uri_cdata(__TopXMLNS, <<>>) -> <<>>; decode_media_uri_cdata(__TopXMLNS, _val) -> _val. encode_media_uri_cdata(<<>>, _acc) -> _acc; encode_media_uri_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_captcha(__TopXMLNS, __IgnoreEls, {xmlel, <<"captcha">>, _attrs, _els}) -> Xdata = decode_captcha_els(__TopXMLNS, __IgnoreEls, _els, error), {xcaptcha, Xdata}. decode_captcha_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> case Xdata of error -> erlang:error({xmpp_codec, {missing_tag, <<"x">>, __TopXMLNS}}); {value, Xdata1} -> Xdata1 end; decode_captcha_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_captcha_els(__TopXMLNS, __IgnoreEls, _els, {value, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)}); _ -> decode_captcha_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_captcha_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_captcha_els(__TopXMLNS, __IgnoreEls, _els, Xdata). encode_captcha({xcaptcha, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:captcha">>, [], __TopXMLNS), _els = lists:reverse('encode_captcha_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"captcha">>, _attrs, _els}. 'encode_captcha_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_bob_data(__TopXMLNS, __IgnoreEls, {xmlel, <<"data">>, _attrs, _els}) -> Data = decode_bob_data_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {Cid, Max_age, Type} = decode_bob_data_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {bob_data, Cid, Max_age, Type, Data}. decode_bob_data_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_bob_data_cdata(__TopXMLNS, Data); decode_bob_data_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_bob_data_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_bob_data_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_bob_data_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_bob_data_attrs(__TopXMLNS, [{<<"cid">>, _val} | _attrs], _Cid, Max_age, Type) -> decode_bob_data_attrs(__TopXMLNS, _attrs, _val, Max_age, Type); decode_bob_data_attrs(__TopXMLNS, [{<<"max-age">>, _val} | _attrs], Cid, _Max_age, Type) -> decode_bob_data_attrs(__TopXMLNS, _attrs, Cid, _val, Type); decode_bob_data_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Cid, Max_age, _Type) -> decode_bob_data_attrs(__TopXMLNS, _attrs, Cid, Max_age, _val); decode_bob_data_attrs(__TopXMLNS, [_ | _attrs], Cid, Max_age, Type) -> decode_bob_data_attrs(__TopXMLNS, _attrs, Cid, Max_age, Type); decode_bob_data_attrs(__TopXMLNS, [], Cid, Max_age, Type) -> {decode_bob_data_attr_cid(__TopXMLNS, Cid), 'decode_bob_data_attr_max-age'(__TopXMLNS, Max_age), decode_bob_data_attr_type(__TopXMLNS, Type)}. encode_bob_data({bob_data, Cid, Max_age, Type, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:bob">>, [], __TopXMLNS), _els = encode_bob_data_cdata(Data, []), _attrs = encode_bob_data_attr_type(Type, 'encode_bob_data_attr_max-age'(Max_age, encode_bob_data_attr_cid(Cid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"data">>, _attrs, _els}. decode_bob_data_attr_cid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"cid">>, <<"data">>, __TopXMLNS}}); decode_bob_data_attr_cid(__TopXMLNS, _val) -> _val. encode_bob_data_attr_cid(_val, _acc) -> [{<<"cid">>, _val} | _acc]. 'decode_bob_data_attr_max-age'(__TopXMLNS, undefined) -> undefined; 'decode_bob_data_attr_max-age'(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max-age">>, <<"data">>, __TopXMLNS}}); _res -> _res end. 'encode_bob_data_attr_max-age'(undefined, _acc) -> _acc; 'encode_bob_data_attr_max-age'(_val, _acc) -> [{<<"max-age">>, enc_int(_val)} | _acc]. decode_bob_data_attr_type(__TopXMLNS, undefined) -> <<>>; decode_bob_data_attr_type(__TopXMLNS, _val) -> _val. encode_bob_data_attr_type(<<>>, _acc) -> _acc; encode_bob_data_attr_type(_val, _acc) -> [{<<"type">>, _val} | _acc]. decode_bob_data_cdata(__TopXMLNS, <<>>) -> <<>>; decode_bob_data_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"data">>, __TopXMLNS}}); _res -> _res end. encode_bob_data_cdata(<<>>, _acc) -> _acc; encode_bob_data_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_stream_start(__TopXMLNS, __IgnoreEls, {xmlel, <<"stream:stream">>, _attrs, _els}) -> {From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id} = decode_stream_start_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), {stream_start, From, To, Id, Version, Xmlns, Stream_xmlns, Db_xmlns, Lang}. decode_stream_start_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], _From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, _val, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], From, _To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, _val, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], From, To, _Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, _val, Stream_xmlns, Db_xmlns, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"xmlns:stream">>, _val} | _attrs], From, To, Xmlns, _Stream_xmlns, Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, _val, Db_xmlns, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"xmlns:db">>, _val} | _attrs], From, To, Xmlns, Stream_xmlns, _Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, Stream_xmlns, _val, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], From, To, Xmlns, Stream_xmlns, Db_xmlns, _Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, Stream_xmlns, Db_xmlns, _val, Version, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"version">>, _val} | _attrs], From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, _Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, _val, Id); decode_stream_start_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, _Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, _val); decode_stream_start_attrs(__TopXMLNS, [_ | _attrs], From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id) -> decode_stream_start_attrs(__TopXMLNS, _attrs, From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id); decode_stream_start_attrs(__TopXMLNS, [], From, To, Xmlns, Stream_xmlns, Db_xmlns, Lang, Version, Id) -> {decode_stream_start_attr_from(__TopXMLNS, From), decode_stream_start_attr_to(__TopXMLNS, To), decode_stream_start_attr_xmlns(__TopXMLNS, Xmlns), 'decode_stream_start_attr_xmlns:stream'(__TopXMLNS, Stream_xmlns), 'decode_stream_start_attr_xmlns:db'(__TopXMLNS, Db_xmlns), 'decode_stream_start_attr_xml:lang'(__TopXMLNS, Lang), decode_stream_start_attr_version(__TopXMLNS, Version), decode_stream_start_attr_id(__TopXMLNS, Id)}. encode_stream_start({stream_start, From, To, Id, Version, Xmlns, Stream_xmlns, Db_xmlns, Lang}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = [], _attrs = encode_stream_start_attr_id(Id, encode_stream_start_attr_version(Version, 'encode_stream_start_attr_xml:lang'(Lang, 'encode_stream_start_attr_xmlns:db'(Db_xmlns, 'encode_stream_start_attr_xmlns:stream'(Stream_xmlns, encode_stream_start_attr_to(To, encode_stream_start_attr_from(From, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))))), {xmlel, <<"stream:stream">>, _attrs, _els}. decode_stream_start_attr_from(__TopXMLNS, undefined) -> undefined; decode_stream_start_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"stream:stream">>, __TopXMLNS}}); _res -> _res end. encode_stream_start_attr_from(undefined, _acc) -> _acc; encode_stream_start_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_stream_start_attr_to(__TopXMLNS, undefined) -> undefined; decode_stream_start_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"stream:stream">>, __TopXMLNS}}); _res -> _res end. encode_stream_start_attr_to(undefined, _acc) -> _acc; encode_stream_start_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. decode_stream_start_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_stream_start_attr_xmlns(__TopXMLNS, _val) -> _val. 'decode_stream_start_attr_xmlns:stream'(__TopXMLNS, undefined) -> <<>>; 'decode_stream_start_attr_xmlns:stream'(__TopXMLNS, _val) -> _val. 'encode_stream_start_attr_xmlns:stream'(<<>>, _acc) -> _acc; 'encode_stream_start_attr_xmlns:stream'(_val, _acc) -> [{<<"xmlns:stream">>, _val} | _acc]. 'decode_stream_start_attr_xmlns:db'(__TopXMLNS, undefined) -> <<>>; 'decode_stream_start_attr_xmlns:db'(__TopXMLNS, _val) -> _val. 'encode_stream_start_attr_xmlns:db'(<<>>, _acc) -> _acc; 'encode_stream_start_attr_xmlns:db'(_val, _acc) -> [{<<"xmlns:db">>, _val} | _acc]. 'decode_stream_start_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_stream_start_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_stream_start_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_stream_start_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_stream_start_attr_version(__TopXMLNS, undefined) -> undefined; decode_stream_start_attr_version(__TopXMLNS, _val) -> case catch dec_version(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"version">>, <<"stream:stream">>, __TopXMLNS}}); _res -> _res end. encode_stream_start_attr_version(undefined, _acc) -> _acc; encode_stream_start_attr_version(_val, _acc) -> [{<<"version">>, enc_version(_val)} | _acc]. decode_stream_start_attr_id(__TopXMLNS, undefined) -> <<>>; decode_stream_start_attr_id(__TopXMLNS, _val) -> _val. encode_stream_start_attr_id(<<>>, _acc) -> _acc; encode_stream_start_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_handshake(__TopXMLNS, __IgnoreEls, {xmlel, <<"handshake">>, _attrs, _els}) -> Data = decode_handshake_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {handshake, Data}. decode_handshake_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_handshake_cdata(__TopXMLNS, Data); decode_handshake_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_handshake_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_handshake_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_handshake_els(__TopXMLNS, __IgnoreEls, _els, Data). encode_handshake({handshake, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:component:accept">>, [], __TopXMLNS), _els = encode_handshake_cdata(Data, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"handshake">>, _attrs, _els}. decode_handshake_cdata(__TopXMLNS, <<>>) -> <<>>; decode_handshake_cdata(__TopXMLNS, _val) -> _val. encode_handshake_cdata(<<>>, _acc) -> _acc; encode_handshake_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_db_verify(__TopXMLNS, __IgnoreEls, {xmlel, <<"db:verify">>, _attrs, _els}) -> {Key, __Els} = decode_db_verify_els(__TopXMLNS, __IgnoreEls, _els, <<>>, []), {From, To, Id, Type} = decode_db_verify_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {db_verify, From, To, Id, Type, Key, __Els}. decode_db_verify_els(__TopXMLNS, __IgnoreEls, [], Key, __Els) -> {decode_db_verify_cdata(__TopXMLNS, Key), lists:reverse(__Els)}; decode_db_verify_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Key, __Els) -> decode_db_verify_els(__TopXMLNS, __IgnoreEls, _els, <>, __Els); decode_db_verify_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Key, __Els) -> if __IgnoreEls -> decode_db_verify_els(__TopXMLNS, __IgnoreEls, _els, Key, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_db_verify_els(__TopXMLNS, __IgnoreEls, _els, Key, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_db_verify_els(__TopXMLNS, __IgnoreEls, _els, Key, __Els) end end. decode_db_verify_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], _From, To, Id, Type) -> decode_db_verify_attrs(__TopXMLNS, _attrs, _val, To, Id, Type); decode_db_verify_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], From, _To, Id, Type) -> decode_db_verify_attrs(__TopXMLNS, _attrs, From, _val, Id, Type); decode_db_verify_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], From, To, _Id, Type) -> decode_db_verify_attrs(__TopXMLNS, _attrs, From, To, _val, Type); decode_db_verify_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], From, To, Id, _Type) -> decode_db_verify_attrs(__TopXMLNS, _attrs, From, To, Id, _val); decode_db_verify_attrs(__TopXMLNS, [_ | _attrs], From, To, Id, Type) -> decode_db_verify_attrs(__TopXMLNS, _attrs, From, To, Id, Type); decode_db_verify_attrs(__TopXMLNS, [], From, To, Id, Type) -> {decode_db_verify_attr_from(__TopXMLNS, From), decode_db_verify_attr_to(__TopXMLNS, To), decode_db_verify_attr_id(__TopXMLNS, Id), decode_db_verify_attr_type(__TopXMLNS, Type)}. encode_db_verify({db_verify, From, To, Id, Type, Key, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:server">>, [], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ encode_db_verify_cdata(Key, []), _attrs = encode_db_verify_attr_type(Type, encode_db_verify_attr_id(Id, encode_db_verify_attr_to(To, encode_db_verify_attr_from(From, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"db:verify">>, _attrs, _els}. decode_db_verify_attr_from(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"from">>, <<"db:verify">>, __TopXMLNS}}); decode_db_verify_attr_from(__TopXMLNS, _val) -> case catch nameprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"db:verify">>, __TopXMLNS}}); _res -> _res end. encode_db_verify_attr_from(_val, _acc) -> [{<<"from">>, nameprep(_val)} | _acc]. decode_db_verify_attr_to(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"to">>, <<"db:verify">>, __TopXMLNS}}); decode_db_verify_attr_to(__TopXMLNS, _val) -> case catch nameprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"db:verify">>, __TopXMLNS}}); _res -> _res end. encode_db_verify_attr_to(_val, _acc) -> [{<<"to">>, nameprep(_val)} | _acc]. decode_db_verify_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"id">>, <<"db:verify">>, __TopXMLNS}}); decode_db_verify_attr_id(__TopXMLNS, _val) -> _val. encode_db_verify_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_db_verify_attr_type(__TopXMLNS, undefined) -> undefined; decode_db_verify_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [valid, invalid, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"db:verify">>, __TopXMLNS}}); _res -> _res end. encode_db_verify_attr_type(undefined, _acc) -> _acc; encode_db_verify_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_db_verify_cdata(__TopXMLNS, <<>>) -> <<>>; decode_db_verify_cdata(__TopXMLNS, _val) -> _val. encode_db_verify_cdata(<<>>, _acc) -> _acc; encode_db_verify_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_db_result(__TopXMLNS, __IgnoreEls, {xmlel, <<"db:result">>, _attrs, _els}) -> {Key, __Els} = decode_db_result_els(__TopXMLNS, __IgnoreEls, _els, <<>>, []), {From, To, Type} = decode_db_result_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {db_result, From, To, Type, Key, __Els}. decode_db_result_els(__TopXMLNS, __IgnoreEls, [], Key, __Els) -> {decode_db_result_cdata(__TopXMLNS, Key), lists:reverse(__Els)}; decode_db_result_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Key, __Els) -> decode_db_result_els(__TopXMLNS, __IgnoreEls, _els, <>, __Els); decode_db_result_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Key, __Els) -> if __IgnoreEls -> decode_db_result_els(__TopXMLNS, __IgnoreEls, _els, Key, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_db_result_els(__TopXMLNS, __IgnoreEls, _els, Key, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_db_result_els(__TopXMLNS, __IgnoreEls, _els, Key, __Els) end end. decode_db_result_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], _From, To, Type) -> decode_db_result_attrs(__TopXMLNS, _attrs, _val, To, Type); decode_db_result_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], From, _To, Type) -> decode_db_result_attrs(__TopXMLNS, _attrs, From, _val, Type); decode_db_result_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], From, To, _Type) -> decode_db_result_attrs(__TopXMLNS, _attrs, From, To, _val); decode_db_result_attrs(__TopXMLNS, [_ | _attrs], From, To, Type) -> decode_db_result_attrs(__TopXMLNS, _attrs, From, To, Type); decode_db_result_attrs(__TopXMLNS, [], From, To, Type) -> {decode_db_result_attr_from(__TopXMLNS, From), decode_db_result_attr_to(__TopXMLNS, To), decode_db_result_attr_type(__TopXMLNS, Type)}. encode_db_result({db_result, From, To, Type, Key, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:server">>, [], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ encode_db_result_cdata(Key, []), _attrs = encode_db_result_attr_type(Type, encode_db_result_attr_to(To, encode_db_result_attr_from(From, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"db:result">>, _attrs, _els}. decode_db_result_attr_from(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"from">>, <<"db:result">>, __TopXMLNS}}); decode_db_result_attr_from(__TopXMLNS, _val) -> case catch nameprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"db:result">>, __TopXMLNS}}); _res -> _res end. encode_db_result_attr_from(_val, _acc) -> [{<<"from">>, nameprep(_val)} | _acc]. decode_db_result_attr_to(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"to">>, <<"db:result">>, __TopXMLNS}}); decode_db_result_attr_to(__TopXMLNS, _val) -> case catch nameprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"db:result">>, __TopXMLNS}}); _res -> _res end. encode_db_result_attr_to(_val, _acc) -> [{<<"to">>, nameprep(_val)} | _acc]. decode_db_result_attr_type(__TopXMLNS, undefined) -> undefined; decode_db_result_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [valid, invalid, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"db:result">>, __TopXMLNS}}); _res -> _res end. encode_db_result_attr_type(undefined, _acc) -> _acc; encode_db_result_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_db_result_cdata(__TopXMLNS, <<>>) -> <<>>; decode_db_result_cdata(__TopXMLNS, _val) -> _val. encode_db_result_cdata(<<>>, _acc) -> _acc; encode_db_result_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_adhoc_command(__TopXMLNS, __IgnoreEls, {xmlel, <<"command">>, _attrs, _els}) -> {Xdata, Notes, Actions} = decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, undefined, [], undefined), {Node, Lang, Sid, Status, Action} = decode_adhoc_command_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {adhoc_command, Node, Action, Sid, Status, Lang, Actions, Notes, Xdata}. decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, [], Xdata, Notes, Actions) -> {Xdata, lists:reverse(Notes), Actions}; decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"actions">>, _attrs, _} = _el | _els], Xdata, Notes, Actions) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, decode_adhoc_command_actions(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, decode_adhoc_command_actions(<<"http://jabber.org/protocol/commands">>, __IgnoreEls, _el)); _ -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, Actions) end; decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata, Notes, Actions) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el), Notes, Actions); _ -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, Actions) end; decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"note">>, _attrs, _} = _el | _els], Xdata, Notes, Actions) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_adhoc_command_notes(__TopXMLNS, __IgnoreEls, _el) | Notes], Actions); <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_adhoc_command_notes(<<"http://jabber.org/protocol/commands">>, __IgnoreEls, _el) | Notes], Actions); _ -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, Actions) end; decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata, Notes, Actions) -> decode_adhoc_command_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Notes, Actions). decode_adhoc_command_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Lang, Sid, Status, Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, _val, Lang, Sid, Status, Action); decode_adhoc_command_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], Node, _Lang, Sid, Status, Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, Node, _val, Sid, Status, Action); decode_adhoc_command_attrs(__TopXMLNS, [{<<"sessionid">>, _val} | _attrs], Node, Lang, _Sid, Status, Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, Node, Lang, _val, Status, Action); decode_adhoc_command_attrs(__TopXMLNS, [{<<"status">>, _val} | _attrs], Node, Lang, Sid, _Status, Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, Node, Lang, Sid, _val, Action); decode_adhoc_command_attrs(__TopXMLNS, [{<<"action">>, _val} | _attrs], Node, Lang, Sid, Status, _Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, Node, Lang, Sid, Status, _val); decode_adhoc_command_attrs(__TopXMLNS, [_ | _attrs], Node, Lang, Sid, Status, Action) -> decode_adhoc_command_attrs(__TopXMLNS, _attrs, Node, Lang, Sid, Status, Action); decode_adhoc_command_attrs(__TopXMLNS, [], Node, Lang, Sid, Status, Action) -> {decode_adhoc_command_attr_node(__TopXMLNS, Node), 'decode_adhoc_command_attr_xml:lang'(__TopXMLNS, Lang), decode_adhoc_command_attr_sessionid(__TopXMLNS, Sid), decode_adhoc_command_attr_status(__TopXMLNS, Status), decode_adhoc_command_attr_action(__TopXMLNS, Action)}. encode_adhoc_command({adhoc_command, Node, Action, Sid, Status, Lang, Actions, Notes, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = lists:reverse('encode_adhoc_command_$xdata'(Xdata, __NewTopXMLNS, 'encode_adhoc_command_$notes'(Notes, __NewTopXMLNS, 'encode_adhoc_command_$actions'(Actions, __NewTopXMLNS, [])))), _attrs = encode_adhoc_command_attr_action(Action, encode_adhoc_command_attr_status(Status, encode_adhoc_command_attr_sessionid(Sid, 'encode_adhoc_command_attr_xml:lang'(Lang, encode_adhoc_command_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"command">>, _attrs, _els}. 'encode_adhoc_command_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. 'encode_adhoc_command_$notes'([], __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_$notes'([Notes | _els], __TopXMLNS, _acc) -> 'encode_adhoc_command_$notes'(_els, __TopXMLNS, [encode_adhoc_command_notes(Notes, __TopXMLNS) | _acc]). 'encode_adhoc_command_$actions'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_$actions'(Actions, __TopXMLNS, _acc) -> [encode_adhoc_command_actions(Actions, __TopXMLNS) | _acc]. decode_adhoc_command_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"command">>, __TopXMLNS}}); decode_adhoc_command_attr_node(__TopXMLNS, _val) -> _val. encode_adhoc_command_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. 'decode_adhoc_command_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_adhoc_command_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_adhoc_command_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_adhoc_command_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_adhoc_command_attr_sessionid(__TopXMLNS, undefined) -> <<>>; decode_adhoc_command_attr_sessionid(__TopXMLNS, _val) -> _val. encode_adhoc_command_attr_sessionid(<<>>, _acc) -> _acc; encode_adhoc_command_attr_sessionid(_val, _acc) -> [{<<"sessionid">>, _val} | _acc]. decode_adhoc_command_attr_status(__TopXMLNS, undefined) -> undefined; decode_adhoc_command_attr_status(__TopXMLNS, _val) -> case catch dec_enum(_val, [canceled, completed, executing]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"status">>, <<"command">>, __TopXMLNS}}); _res -> _res end. encode_adhoc_command_attr_status(undefined, _acc) -> _acc; encode_adhoc_command_attr_status(_val, _acc) -> [{<<"status">>, enc_enum(_val)} | _acc]. decode_adhoc_command_attr_action(__TopXMLNS, undefined) -> execute; decode_adhoc_command_attr_action(__TopXMLNS, _val) -> case catch dec_enum(_val, [cancel, complete, execute, next, prev]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"action">>, <<"command">>, __TopXMLNS}}); _res -> _res end. encode_adhoc_command_attr_action(execute, _acc) -> _acc; encode_adhoc_command_attr_action(_val, _acc) -> [{<<"action">>, enc_enum(_val)} | _acc]. decode_adhoc_command_notes(__TopXMLNS, __IgnoreEls, {xmlel, <<"note">>, _attrs, _els}) -> Data = decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Type = decode_adhoc_command_notes_attrs(__TopXMLNS, _attrs, undefined), {adhoc_note, Type, Data}. decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_adhoc_command_notes_cdata(__TopXMLNS, Data); decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_adhoc_command_notes_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_adhoc_command_notes_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], _Type) -> decode_adhoc_command_notes_attrs(__TopXMLNS, _attrs, _val); decode_adhoc_command_notes_attrs(__TopXMLNS, [_ | _attrs], Type) -> decode_adhoc_command_notes_attrs(__TopXMLNS, _attrs, Type); decode_adhoc_command_notes_attrs(__TopXMLNS, [], Type) -> decode_adhoc_command_notes_attr_type(__TopXMLNS, Type). encode_adhoc_command_notes({adhoc_note, Type, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = encode_adhoc_command_notes_cdata(Data, []), _attrs = encode_adhoc_command_notes_attr_type(Type, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"note">>, _attrs, _els}. decode_adhoc_command_notes_attr_type(__TopXMLNS, undefined) -> info; decode_adhoc_command_notes_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [info, warn, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"note">>, __TopXMLNS}}); _res -> _res end. encode_adhoc_command_notes_attr_type(info, _acc) -> _acc; encode_adhoc_command_notes_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_adhoc_command_notes_cdata(__TopXMLNS, <<>>) -> <<>>; decode_adhoc_command_notes_cdata(__TopXMLNS, _val) -> _val. encode_adhoc_command_notes_cdata(<<>>, _acc) -> _acc; encode_adhoc_command_notes_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_adhoc_command_actions(__TopXMLNS, __IgnoreEls, {xmlel, <<"actions">>, _attrs, _els}) -> {Next, Complete, Prev} = decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, false, false, false), Execute = decode_adhoc_command_actions_attrs(__TopXMLNS, _attrs, undefined), {adhoc_actions, Execute, Prev, Next, Complete}. decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, [], Next, Complete, Prev) -> {Next, Complete, Prev}; decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"prev">>, _attrs, _} = _el | _els], Next, Complete, Prev) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, decode_adhoc_command_prev(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, decode_adhoc_command_prev(<<"http://jabber.org/protocol/commands">>, __IgnoreEls, _el)); _ -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, Prev) end; decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"next">>, _attrs, _} = _el | _els], Next, Complete, Prev) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, decode_adhoc_command_next(__TopXMLNS, __IgnoreEls, _el), Complete, Prev); <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, decode_adhoc_command_next(<<"http://jabber.org/protocol/commands">>, __IgnoreEls, _el), Complete, Prev); _ -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, Prev) end; decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"complete">>, _attrs, _} = _el | _els], Next, Complete, Prev) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, decode_adhoc_command_complete(__TopXMLNS, __IgnoreEls, _el), Prev); <<"http://jabber.org/protocol/commands">> -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, decode_adhoc_command_complete(<<"http://jabber.org/protocol/commands">>, __IgnoreEls, _el), Prev); _ -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, Prev) end; decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, [_ | _els], Next, Complete, Prev) -> decode_adhoc_command_actions_els(__TopXMLNS, __IgnoreEls, _els, Next, Complete, Prev). decode_adhoc_command_actions_attrs(__TopXMLNS, [{<<"execute">>, _val} | _attrs], _Execute) -> decode_adhoc_command_actions_attrs(__TopXMLNS, _attrs, _val); decode_adhoc_command_actions_attrs(__TopXMLNS, [_ | _attrs], Execute) -> decode_adhoc_command_actions_attrs(__TopXMLNS, _attrs, Execute); decode_adhoc_command_actions_attrs(__TopXMLNS, [], Execute) -> decode_adhoc_command_actions_attr_execute(__TopXMLNS, Execute). encode_adhoc_command_actions({adhoc_actions, Execute, Prev, Next, Complete}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = lists:reverse('encode_adhoc_command_actions_$next'(Next, __NewTopXMLNS, 'encode_adhoc_command_actions_$complete'(Complete, __NewTopXMLNS, 'encode_adhoc_command_actions_$prev'(Prev, __NewTopXMLNS, [])))), _attrs = encode_adhoc_command_actions_attr_execute(Execute, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"actions">>, _attrs, _els}. 'encode_adhoc_command_actions_$next'(false, __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_actions_$next'(Next, __TopXMLNS, _acc) -> [encode_adhoc_command_next(Next, __TopXMLNS) | _acc]. 'encode_adhoc_command_actions_$complete'(false, __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_actions_$complete'(Complete, __TopXMLNS, _acc) -> [encode_adhoc_command_complete(Complete, __TopXMLNS) | _acc]. 'encode_adhoc_command_actions_$prev'(false, __TopXMLNS, _acc) -> _acc; 'encode_adhoc_command_actions_$prev'(Prev, __TopXMLNS, _acc) -> [encode_adhoc_command_prev(Prev, __TopXMLNS) | _acc]. decode_adhoc_command_actions_attr_execute(__TopXMLNS, undefined) -> undefined; decode_adhoc_command_actions_attr_execute(__TopXMLNS, _val) -> case catch dec_enum(_val, [complete, next, prev]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"execute">>, <<"actions">>, __TopXMLNS}}); _res -> _res end. encode_adhoc_command_actions_attr_execute(undefined, _acc) -> _acc; encode_adhoc_command_actions_attr_execute(_val, _acc) -> [{<<"execute">>, enc_enum(_val)} | _acc]. decode_adhoc_command_complete(__TopXMLNS, __IgnoreEls, {xmlel, <<"complete">>, _attrs, _els}) -> true. encode_adhoc_command_complete(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"complete">>, _attrs, _els}. decode_adhoc_command_next(__TopXMLNS, __IgnoreEls, {xmlel, <<"next">>, _attrs, _els}) -> true. encode_adhoc_command_next(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"next">>, _attrs, _els}. decode_adhoc_command_prev(__TopXMLNS, __IgnoreEls, {xmlel, <<"prev">>, _attrs, _els}) -> true. encode_adhoc_command_prev(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/commands">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"prev">>, _attrs, _els}. decode_client_id(__TopXMLNS, __IgnoreEls, {xmlel, <<"client-id">>, _attrs, _els}) -> Id = decode_client_id_attrs(__TopXMLNS, _attrs, undefined), {client_id, Id}. decode_client_id_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id) -> decode_client_id_attrs(__TopXMLNS, _attrs, _val); decode_client_id_attrs(__TopXMLNS, [_ | _attrs], Id) -> decode_client_id_attrs(__TopXMLNS, _attrs, Id); decode_client_id_attrs(__TopXMLNS, [], Id) -> decode_client_id_attr_id(__TopXMLNS, Id). encode_client_id({client_id, Id}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:sid:0">>, [], __TopXMLNS), _els = [], _attrs = encode_client_id_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"client-id">>, _attrs, _els}. decode_client_id_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"id">>, <<"client-id">>, __TopXMLNS}}); decode_client_id_attr_id(__TopXMLNS, _val) -> _val. encode_client_id_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_stanza_id(__TopXMLNS, __IgnoreEls, {xmlel, <<"stanza-id">>, _attrs, _els}) -> {Id, By} = decode_stanza_id_attrs(__TopXMLNS, _attrs, undefined, undefined), {stanza_id, By, Id}. decode_stanza_id_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, By) -> decode_stanza_id_attrs(__TopXMLNS, _attrs, _val, By); decode_stanza_id_attrs(__TopXMLNS, [{<<"by">>, _val} | _attrs], Id, _By) -> decode_stanza_id_attrs(__TopXMLNS, _attrs, Id, _val); decode_stanza_id_attrs(__TopXMLNS, [_ | _attrs], Id, By) -> decode_stanza_id_attrs(__TopXMLNS, _attrs, Id, By); decode_stanza_id_attrs(__TopXMLNS, [], Id, By) -> {decode_stanza_id_attr_id(__TopXMLNS, Id), decode_stanza_id_attr_by(__TopXMLNS, By)}. encode_stanza_id({stanza_id, By, Id}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:sid:0">>, [], __TopXMLNS), _els = [], _attrs = encode_stanza_id_attr_by(By, encode_stanza_id_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"stanza-id">>, _attrs, _els}. decode_stanza_id_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"id">>, <<"stanza-id">>, __TopXMLNS}}); decode_stanza_id_attr_id(__TopXMLNS, _val) -> _val. encode_stanza_id_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_stanza_id_attr_by(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"by">>, <<"stanza-id">>, __TopXMLNS}}); decode_stanza_id_attr_by(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"by">>, <<"stanza-id">>, __TopXMLNS}}); _res -> _res end. encode_stanza_id_attr_by(_val, _acc) -> [{<<"by">>, enc_jid(_val)} | _acc]. decode_addresses(__TopXMLNS, __IgnoreEls, {xmlel, <<"addresses">>, _attrs, _els}) -> List = decode_addresses_els(__TopXMLNS, __IgnoreEls, _els, []), {addresses, List}. decode_addresses_els(__TopXMLNS, __IgnoreEls, [], List) -> lists:reverse(List); decode_addresses_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"address">>, _attrs, _} = _el | _els], List) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/address">> -> decode_addresses_els(__TopXMLNS, __IgnoreEls, _els, [decode_address(__TopXMLNS, __IgnoreEls, _el) | List]); <<"http://jabber.org/protocol/address">> -> decode_addresses_els(__TopXMLNS, __IgnoreEls, _els, [decode_address(<<"http://jabber.org/protocol/address">>, __IgnoreEls, _el) | List]); _ -> decode_addresses_els(__TopXMLNS, __IgnoreEls, _els, List) end; decode_addresses_els(__TopXMLNS, __IgnoreEls, [_ | _els], List) -> decode_addresses_els(__TopXMLNS, __IgnoreEls, _els, List). encode_addresses({addresses, List}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/address">>, [], __TopXMLNS), _els = lists:reverse('encode_addresses_$list'(List, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"addresses">>, _attrs, _els}. 'encode_addresses_$list'([], __TopXMLNS, _acc) -> _acc; 'encode_addresses_$list'([List | _els], __TopXMLNS, _acc) -> 'encode_addresses_$list'(_els, __TopXMLNS, [encode_address(List, __TopXMLNS) | _acc]). decode_address(__TopXMLNS, __IgnoreEls, {xmlel, <<"address">>, _attrs, _els}) -> {Type, Jid, Desc, Node, Delivered} = decode_address_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {address, Type, Jid, Desc, Node, Delivered}. decode_address_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], _Type, Jid, Desc, Node, Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, _val, Jid, Desc, Node, Delivered); decode_address_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Type, _Jid, Desc, Node, Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, Type, _val, Desc, Node, Delivered); decode_address_attrs(__TopXMLNS, [{<<"desc">>, _val} | _attrs], Type, Jid, _Desc, Node, Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, Type, Jid, _val, Node, Delivered); decode_address_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Type, Jid, Desc, _Node, Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, Type, Jid, Desc, _val, Delivered); decode_address_attrs(__TopXMLNS, [{<<"delivered">>, _val} | _attrs], Type, Jid, Desc, Node, _Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, Type, Jid, Desc, Node, _val); decode_address_attrs(__TopXMLNS, [_ | _attrs], Type, Jid, Desc, Node, Delivered) -> decode_address_attrs(__TopXMLNS, _attrs, Type, Jid, Desc, Node, Delivered); decode_address_attrs(__TopXMLNS, [], Type, Jid, Desc, Node, Delivered) -> {decode_address_attr_type(__TopXMLNS, Type), decode_address_attr_jid(__TopXMLNS, Jid), decode_address_attr_desc(__TopXMLNS, Desc), decode_address_attr_node(__TopXMLNS, Node), decode_address_attr_delivered(__TopXMLNS, Delivered)}. encode_address({address, Type, Jid, Desc, Node, Delivered}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/address">>, [], __TopXMLNS), _els = [], _attrs = encode_address_attr_delivered(Delivered, encode_address_attr_node(Node, encode_address_attr_desc(Desc, encode_address_attr_jid(Jid, encode_address_attr_type(Type, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"address">>, _attrs, _els}. decode_address_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"address">>, __TopXMLNS}}); decode_address_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [bcc, cc, noreply, ofrom, replyroom, replyto, to]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"address">>, __TopXMLNS}}); _res -> _res end. encode_address_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_address_attr_jid(__TopXMLNS, undefined) -> undefined; decode_address_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"address">>, __TopXMLNS}}); _res -> _res end. encode_address_attr_jid(undefined, _acc) -> _acc; encode_address_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_address_attr_desc(__TopXMLNS, undefined) -> <<>>; decode_address_attr_desc(__TopXMLNS, _val) -> _val. encode_address_attr_desc(<<>>, _acc) -> _acc; encode_address_attr_desc(_val, _acc) -> [{<<"desc">>, _val} | _acc]. decode_address_attr_node(__TopXMLNS, undefined) -> <<>>; decode_address_attr_node(__TopXMLNS, _val) -> _val. encode_address_attr_node(<<>>, _acc) -> _acc; encode_address_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_address_attr_delivered(__TopXMLNS, undefined) -> undefined; decode_address_attr_delivered(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"delivered">>, <<"address">>, __TopXMLNS}}); _res -> _res end. encode_address_attr_delivered(undefined, _acc) -> _acc; encode_address_attr_delivered(_val, _acc) -> [{<<"delivered">>, enc_bool(_val)} | _acc]. decode_nick(__TopXMLNS, __IgnoreEls, {xmlel, <<"nick">>, _attrs, _els}) -> Name = decode_nick_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {nick, Name}. decode_nick_els(__TopXMLNS, __IgnoreEls, [], Name) -> decode_nick_cdata(__TopXMLNS, Name); decode_nick_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Name) -> decode_nick_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_nick_els(__TopXMLNS, __IgnoreEls, [_ | _els], Name) -> decode_nick_els(__TopXMLNS, __IgnoreEls, _els, Name). encode_nick({nick, Name}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/nick">>, [], __TopXMLNS), _els = encode_nick_cdata(Name, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"nick">>, _attrs, _els}. decode_nick_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"nick">>, __TopXMLNS}}); decode_nick_cdata(__TopXMLNS, _val) -> _val. encode_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_expire(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Seconds, Stored} = decode_expire_attrs(__TopXMLNS, _attrs, undefined, undefined), {expire, Seconds, Stored}. decode_expire_attrs(__TopXMLNS, [{<<"seconds">>, _val} | _attrs], _Seconds, Stored) -> decode_expire_attrs(__TopXMLNS, _attrs, _val, Stored); decode_expire_attrs(__TopXMLNS, [{<<"stored">>, _val} | _attrs], Seconds, _Stored) -> decode_expire_attrs(__TopXMLNS, _attrs, Seconds, _val); decode_expire_attrs(__TopXMLNS, [_ | _attrs], Seconds, Stored) -> decode_expire_attrs(__TopXMLNS, _attrs, Seconds, Stored); decode_expire_attrs(__TopXMLNS, [], Seconds, Stored) -> {decode_expire_attr_seconds(__TopXMLNS, Seconds), decode_expire_attr_stored(__TopXMLNS, Stored)}. encode_expire({expire, Seconds, Stored}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:expire">>, [], __TopXMLNS), _els = [], _attrs = encode_expire_attr_stored(Stored, encode_expire_attr_seconds(Seconds, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"x">>, _attrs, _els}. decode_expire_attr_seconds(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"seconds">>, <<"x">>, __TopXMLNS}}); decode_expire_attr_seconds(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"seconds">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_expire_attr_seconds(_val, _acc) -> [{<<"seconds">>, enc_int(_val)} | _acc]. decode_expire_attr_stored(__TopXMLNS, undefined) -> undefined; decode_expire_attr_stored(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"stored">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_expire_attr_stored(undefined, _acc) -> _acc; encode_expire_attr_stored(_val, _acc) -> [{<<"stored">>, enc_int(_val)} | _acc]. decode_xevent(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Id, Displayed, Delivered, Offline, Composing} = decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, undefined, false, false, false, false), {xevent, Offline, Delivered, Displayed, Composing, Id}. decode_xevent_els(__TopXMLNS, __IgnoreEls, [], Id, Displayed, Delivered, Offline, Composing) -> {Id, Displayed, Delivered, Offline, Composing}; decode_xevent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"offline">>, _attrs, _} = _el | _els], Id, Displayed, Delivered, Offline, Composing) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, decode_xevent_offline(__TopXMLNS, __IgnoreEls, _el), Composing); <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, decode_xevent_offline(<<"jabber:x:event">>, __IgnoreEls, _el), Composing); _ -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing) end; decode_xevent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delivered">>, _attrs, _} = _el | _els], Id, Displayed, Delivered, Offline, Composing) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, decode_xevent_delivered(__TopXMLNS, __IgnoreEls, _el), Offline, Composing); <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, decode_xevent_delivered(<<"jabber:x:event">>, __IgnoreEls, _el), Offline, Composing); _ -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing) end; decode_xevent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"displayed">>, _attrs, _} = _el | _els], Id, Displayed, Delivered, Offline, Composing) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, decode_xevent_displayed(__TopXMLNS, __IgnoreEls, _el), Delivered, Offline, Composing); <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, decode_xevent_displayed(<<"jabber:x:event">>, __IgnoreEls, _el), Delivered, Offline, Composing); _ -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing) end; decode_xevent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"composing">>, _attrs, _} = _el | _els], Id, Displayed, Delivered, Offline, Composing) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, decode_xevent_composing(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, decode_xevent_composing(<<"jabber:x:event">>, __IgnoreEls, _el)); _ -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing) end; decode_xevent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"id">>, _attrs, _} = _el | _els], Id, Displayed, Delivered, Offline, Composing) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, decode_xevent_id(__TopXMLNS, __IgnoreEls, _el), Displayed, Delivered, Offline, Composing); <<"jabber:x:event">> -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, decode_xevent_id(<<"jabber:x:event">>, __IgnoreEls, _el), Displayed, Delivered, Offline, Composing); _ -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing) end; decode_xevent_els(__TopXMLNS, __IgnoreEls, [_ | _els], Id, Displayed, Delivered, Offline, Composing) -> decode_xevent_els(__TopXMLNS, __IgnoreEls, _els, Id, Displayed, Delivered, Offline, Composing). encode_xevent({xevent, Offline, Delivered, Displayed, Composing, Id}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = lists:reverse('encode_xevent_$id'(Id, __NewTopXMLNS, 'encode_xevent_$displayed'(Displayed, __NewTopXMLNS, 'encode_xevent_$delivered'(Delivered, __NewTopXMLNS, 'encode_xevent_$offline'(Offline, __NewTopXMLNS, 'encode_xevent_$composing'(Composing, __NewTopXMLNS, [])))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"x">>, _attrs, _els}. 'encode_xevent_$id'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_xevent_$id'(Id, __TopXMLNS, _acc) -> [encode_xevent_id(Id, __TopXMLNS) | _acc]. 'encode_xevent_$displayed'(false, __TopXMLNS, _acc) -> _acc; 'encode_xevent_$displayed'(Displayed, __TopXMLNS, _acc) -> [encode_xevent_displayed(Displayed, __TopXMLNS) | _acc]. 'encode_xevent_$delivered'(false, __TopXMLNS, _acc) -> _acc; 'encode_xevent_$delivered'(Delivered, __TopXMLNS, _acc) -> [encode_xevent_delivered(Delivered, __TopXMLNS) | _acc]. 'encode_xevent_$offline'(false, __TopXMLNS, _acc) -> _acc; 'encode_xevent_$offline'(Offline, __TopXMLNS, _acc) -> [encode_xevent_offline(Offline, __TopXMLNS) | _acc]. 'encode_xevent_$composing'(false, __TopXMLNS, _acc) -> _acc; 'encode_xevent_$composing'(Composing, __TopXMLNS, _acc) -> [encode_xevent_composing(Composing, __TopXMLNS) | _acc]. decode_xevent_id(__TopXMLNS, __IgnoreEls, {xmlel, <<"id">>, _attrs, _els}) -> Cdata = decode_xevent_id_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_xevent_id_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_xevent_id_cdata(__TopXMLNS, Cdata); decode_xevent_id_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_xevent_id_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_xevent_id_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_xevent_id_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_xevent_id(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = encode_xevent_id_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"id">>, _attrs, _els}. decode_xevent_id_cdata(__TopXMLNS, <<>>) -> <<>>; decode_xevent_id_cdata(__TopXMLNS, _val) -> _val. encode_xevent_id_cdata(<<>>, _acc) -> _acc; encode_xevent_id_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_xevent_composing(__TopXMLNS, __IgnoreEls, {xmlel, <<"composing">>, _attrs, _els}) -> true. encode_xevent_composing(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"composing">>, _attrs, _els}. decode_xevent_displayed(__TopXMLNS, __IgnoreEls, {xmlel, <<"displayed">>, _attrs, _els}) -> true. encode_xevent_displayed(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"displayed">>, _attrs, _els}. decode_xevent_delivered(__TopXMLNS, __IgnoreEls, {xmlel, <<"delivered">>, _attrs, _els}) -> true. encode_xevent_delivered(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"delivered">>, _attrs, _els}. decode_xevent_offline(__TopXMLNS, __IgnoreEls, {xmlel, <<"offline">>, _attrs, _els}) -> true. encode_xevent_offline(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:event">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"offline">>, _attrs, _els}. decode_search(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Xdata, Items, Instructions, Last, First, Nick, Email} = decode_search_els(__TopXMLNS, __IgnoreEls, _els, undefined, [], undefined, undefined, undefined, undefined, undefined), {search, Instructions, First, Last, Nick, Email, Items, Xdata}. decode_search_els(__TopXMLNS, __IgnoreEls, [], Xdata, Items, Instructions, Last, First, Nick, Email) -> {Xdata, lists:reverse(Items), Instructions, Last, First, Nick, Email}; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"instructions">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, decode_search_instructions(__TopXMLNS, __IgnoreEls, _el), Last, First, Nick, Email); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, decode_search_instructions(<<"jabber:iq:search">>, __IgnoreEls, _el), Last, First, Nick, Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"first">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, decode_search_first(__TopXMLNS, __IgnoreEls, _el), Nick, Email); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, decode_search_first(<<"jabber:iq:search">>, __IgnoreEls, _el), Nick, Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"last">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, decode_search_last(__TopXMLNS, __IgnoreEls, _el), First, Nick, Email); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, decode_search_last(<<"jabber:iq:search">>, __IgnoreEls, _el), First, Nick, Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, decode_search_nick(__TopXMLNS, __IgnoreEls, _el), Email); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, decode_search_nick(<<"jabber:iq:search">>, __IgnoreEls, _el), Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"email">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, decode_search_email(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, decode_search_email(<<"jabber:iq:search">>, __IgnoreEls, _el)); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_search_item(__TopXMLNS, __IgnoreEls, _el) | Items], Instructions, Last, First, Nick, Email); <<"jabber:iq:search">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_search_item(<<"jabber:iq:search">>, __IgnoreEls, _el) | Items], Instructions, Last, First, Nick, Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el), Items, Instructions, Last, First, Nick, Email); _ -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email) end; decode_search_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata, Items, Instructions, Last, First, Nick, Email) -> decode_search_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Items, Instructions, Last, First, Nick, Email). encode_search({search, Instructions, First, Last, Nick, Email, Items, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = lists:reverse('encode_search_$xdata'(Xdata, __NewTopXMLNS, 'encode_search_$items'(Items, __NewTopXMLNS, 'encode_search_$instructions'(Instructions, __NewTopXMLNS, 'encode_search_$last'(Last, __NewTopXMLNS, 'encode_search_$first'(First, __NewTopXMLNS, 'encode_search_$nick'(Nick, __NewTopXMLNS, 'encode_search_$email'(Email, __NewTopXMLNS, [])))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_search_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. 'encode_search_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_search_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_search_$items'(_els, __TopXMLNS, [encode_search_item(Items, __TopXMLNS) | _acc]). 'encode_search_$instructions'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$instructions'(Instructions, __TopXMLNS, _acc) -> [encode_search_instructions(Instructions, __TopXMLNS) | _acc]. 'encode_search_$last'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$last'(Last, __TopXMLNS, _acc) -> [encode_search_last(Last, __TopXMLNS) | _acc]. 'encode_search_$first'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$first'(First, __TopXMLNS, _acc) -> [encode_search_first(First, __TopXMLNS) | _acc]. 'encode_search_$nick'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$nick'(Nick, __TopXMLNS, _acc) -> [encode_search_nick(Nick, __TopXMLNS) | _acc]. 'encode_search_$email'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_$email'(Email, __TopXMLNS, _acc) -> [encode_search_email(Email, __TopXMLNS) | _acc]. decode_search_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Last, First, Nick, Email} = decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined), Jid = decode_search_item_attrs(__TopXMLNS, _attrs, undefined), {search_item, Jid, First, Last, Nick, Email}. decode_search_item_els(__TopXMLNS, __IgnoreEls, [], Last, First, Nick, Email) -> {Last, First, Nick, Email}; decode_search_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"first">>, _attrs, _} = _el | _els], Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, decode_search_first(__TopXMLNS, __IgnoreEls, _el), Nick, Email); <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, decode_search_first(<<"jabber:iq:search">>, __IgnoreEls, _el), Nick, Email); _ -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, Email) end; decode_search_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"last">>, _attrs, _} = _el | _els], Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, decode_search_last(__TopXMLNS, __IgnoreEls, _el), First, Nick, Email); <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, decode_search_last(<<"jabber:iq:search">>, __IgnoreEls, _el), First, Nick, Email); _ -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, Email) end; decode_search_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, decode_search_nick(__TopXMLNS, __IgnoreEls, _el), Email); <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, decode_search_nick(<<"jabber:iq:search">>, __IgnoreEls, _el), Email); _ -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, Email) end; decode_search_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"email">>, _attrs, _} = _el | _els], Last, First, Nick, Email) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, decode_search_email(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:search">> -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, decode_search_email(<<"jabber:iq:search">>, __IgnoreEls, _el)); _ -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, Email) end; decode_search_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Last, First, Nick, Email) -> decode_search_item_els(__TopXMLNS, __IgnoreEls, _els, Last, First, Nick, Email). decode_search_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid) -> decode_search_item_attrs(__TopXMLNS, _attrs, _val); decode_search_item_attrs(__TopXMLNS, [_ | _attrs], Jid) -> decode_search_item_attrs(__TopXMLNS, _attrs, Jid); decode_search_item_attrs(__TopXMLNS, [], Jid) -> decode_search_item_attr_jid(__TopXMLNS, Jid). encode_search_item({search_item, Jid, First, Last, Nick, Email}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = lists:reverse('encode_search_item_$last'(Last, __NewTopXMLNS, 'encode_search_item_$first'(First, __NewTopXMLNS, 'encode_search_item_$nick'(Nick, __NewTopXMLNS, 'encode_search_item_$email'(Email, __NewTopXMLNS, []))))), _attrs = encode_search_item_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"item">>, _attrs, _els}. 'encode_search_item_$last'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_item_$last'(Last, __TopXMLNS, _acc) -> [encode_search_last(Last, __TopXMLNS) | _acc]. 'encode_search_item_$first'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_item_$first'(First, __TopXMLNS, _acc) -> [encode_search_first(First, __TopXMLNS) | _acc]. 'encode_search_item_$nick'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_item_$nick'(Nick, __TopXMLNS, _acc) -> [encode_search_nick(Nick, __TopXMLNS) | _acc]. 'encode_search_item_$email'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_search_item_$email'(Email, __TopXMLNS, _acc) -> [encode_search_email(Email, __TopXMLNS) | _acc]. decode_search_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); decode_search_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_search_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_search_email(__TopXMLNS, __IgnoreEls, {xmlel, <<"email">>, _attrs, _els}) -> Cdata = decode_search_email_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_search_email_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_search_email_cdata(__TopXMLNS, Cdata); decode_search_email_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_search_email_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_search_email_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_search_email_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_search_email(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = encode_search_email_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"email">>, _attrs, _els}. decode_search_email_cdata(__TopXMLNS, <<>>) -> <<>>; decode_search_email_cdata(__TopXMLNS, _val) -> _val. encode_search_email_cdata(<<>>, _acc) -> _acc; encode_search_email_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_search_nick(__TopXMLNS, __IgnoreEls, {xmlel, <<"nick">>, _attrs, _els}) -> Cdata = decode_search_nick_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_search_nick_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_search_nick_cdata(__TopXMLNS, Cdata); decode_search_nick_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_search_nick_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_search_nick_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_search_nick_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_search_nick(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = encode_search_nick_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"nick">>, _attrs, _els}. decode_search_nick_cdata(__TopXMLNS, <<>>) -> <<>>; decode_search_nick_cdata(__TopXMLNS, _val) -> _val. encode_search_nick_cdata(<<>>, _acc) -> _acc; encode_search_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_search_last(__TopXMLNS, __IgnoreEls, {xmlel, <<"last">>, _attrs, _els}) -> Cdata = decode_search_last_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_search_last_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_search_last_cdata(__TopXMLNS, Cdata); decode_search_last_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_search_last_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_search_last_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_search_last_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_search_last(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = encode_search_last_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"last">>, _attrs, _els}. decode_search_last_cdata(__TopXMLNS, <<>>) -> <<>>; decode_search_last_cdata(__TopXMLNS, _val) -> _val. encode_search_last_cdata(<<>>, _acc) -> _acc; encode_search_last_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_search_first(__TopXMLNS, __IgnoreEls, {xmlel, <<"first">>, _attrs, _els}) -> Cdata = decode_search_first_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_search_first_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_search_first_cdata(__TopXMLNS, Cdata); decode_search_first_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_search_first_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_search_first_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_search_first_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_search_first(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = encode_search_first_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"first">>, _attrs, _els}. decode_search_first_cdata(__TopXMLNS, <<>>) -> <<>>; decode_search_first_cdata(__TopXMLNS, _val) -> _val. encode_search_first_cdata(<<>>, _acc) -> _acc; encode_search_first_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_search_instructions(__TopXMLNS, __IgnoreEls, {xmlel, <<"instructions">>, _attrs, _els}) -> Cdata = decode_search_instructions_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_search_instructions_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_search_instructions_cdata(__TopXMLNS, Cdata); decode_search_instructions_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_search_instructions_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_search_instructions_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_search_instructions_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_search_instructions(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:search">>, [], __TopXMLNS), _els = encode_search_instructions_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"instructions">>, _attrs, _els}. decode_search_instructions_cdata(__TopXMLNS, <<>>) -> <<>>; decode_search_instructions_cdata(__TopXMLNS, _val) -> _val. encode_search_instructions_cdata(<<>>, _acc) -> _acc; encode_search_instructions_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_hint_no_permanent_storage(__TopXMLNS, __IgnoreEls, {xmlel, <<"no-permanent-storage">>, _attrs, _els}) -> {hint, 'no-permanent-storage'}. encode_hint_no_permanent_storage({hint, 'no-permanent-storage'}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"no-permanent-storage">>, _attrs, _els}. decode_hint_no_permanent_store(__TopXMLNS, __IgnoreEls, {xmlel, <<"no-permanent-store">>, _attrs, _els}) -> {hint, 'no-permanent-store'}. encode_hint_no_permanent_store({hint, 'no-permanent-store'}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"no-permanent-store">>, _attrs, _els}. decode_hint_store(__TopXMLNS, __IgnoreEls, {xmlel, <<"store">>, _attrs, _els}) -> {hint, store}. encode_hint_store({hint, store}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"store">>, _attrs, _els}. decode_hint_no_storage(__TopXMLNS, __IgnoreEls, {xmlel, <<"no-storage">>, _attrs, _els}) -> {hint, 'no-storage'}. encode_hint_no_storage({hint, 'no-storage'}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"no-storage">>, _attrs, _els}. decode_hint_no_store(__TopXMLNS, __IgnoreEls, {xmlel, <<"no-store">>, _attrs, _els}) -> {hint, 'no-store'}. encode_hint_no_store({hint, 'no-store'}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"no-store">>, _attrs, _els}. decode_hint_no_copy(__TopXMLNS, __IgnoreEls, {xmlel, <<"no-copy">>, _attrs, _els}) -> {hint, 'no-copy'}. encode_hint_no_copy({hint, 'no-copy'}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:hints">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"no-copy">>, _attrs, _els}. decode_mix_participant(__TopXMLNS, __IgnoreEls, {xmlel, <<"participant">>, _attrs, _els}) -> {Jid, Nick} = decode_mix_participant_attrs(__TopXMLNS, _attrs, undefined, undefined), {mix_participant, Jid, Nick}. decode_mix_participant_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Nick) -> decode_mix_participant_attrs(__TopXMLNS, _attrs, _val, Nick); decode_mix_participant_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Jid, _Nick) -> decode_mix_participant_attrs(__TopXMLNS, _attrs, Jid, _val); decode_mix_participant_attrs(__TopXMLNS, [_ | _attrs], Jid, Nick) -> decode_mix_participant_attrs(__TopXMLNS, _attrs, Jid, Nick); decode_mix_participant_attrs(__TopXMLNS, [], Jid, Nick) -> {decode_mix_participant_attr_jid(__TopXMLNS, Jid), decode_mix_participant_attr_nick(__TopXMLNS, Nick)}. encode_mix_participant({mix_participant, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mix:0">>, [], __TopXMLNS), _els = [], _attrs = encode_mix_participant_attr_nick(Nick, encode_mix_participant_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"participant">>, _attrs, _els}. decode_mix_participant_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"participant">>, __TopXMLNS}}); decode_mix_participant_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"participant">>, __TopXMLNS}}); _res -> _res end. encode_mix_participant_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_mix_participant_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_mix_participant_attr_nick(__TopXMLNS, _val) -> _val. encode_mix_participant_attr_nick(<<>>, _acc) -> _acc; encode_mix_participant_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_mix_leave(__TopXMLNS, __IgnoreEls, {xmlel, <<"leave">>, _attrs, _els}) -> {mix_leave}. encode_mix_leave({mix_leave}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mix:0">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"leave">>, _attrs, _els}. decode_mix_join(__TopXMLNS, __IgnoreEls, {xmlel, <<"join">>, _attrs, _els}) -> Subscribe = decode_mix_join_els(__TopXMLNS, __IgnoreEls, _els, []), Jid = decode_mix_join_attrs(__TopXMLNS, _attrs, undefined), {mix_join, Jid, Subscribe}. decode_mix_join_els(__TopXMLNS, __IgnoreEls, [], Subscribe) -> lists:reverse(Subscribe); decode_mix_join_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscribe">>, _attrs, _} = _el | _els], Subscribe) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mix:0">> -> decode_mix_join_els(__TopXMLNS, __IgnoreEls, _els, [decode_mix_subscribe(__TopXMLNS, __IgnoreEls, _el) | Subscribe]); <<"urn:xmpp:mix:0">> -> decode_mix_join_els(__TopXMLNS, __IgnoreEls, _els, [decode_mix_subscribe(<<"urn:xmpp:mix:0">>, __IgnoreEls, _el) | Subscribe]); _ -> decode_mix_join_els(__TopXMLNS, __IgnoreEls, _els, Subscribe) end; decode_mix_join_els(__TopXMLNS, __IgnoreEls, [_ | _els], Subscribe) -> decode_mix_join_els(__TopXMLNS, __IgnoreEls, _els, Subscribe). decode_mix_join_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid) -> decode_mix_join_attrs(__TopXMLNS, _attrs, _val); decode_mix_join_attrs(__TopXMLNS, [_ | _attrs], Jid) -> decode_mix_join_attrs(__TopXMLNS, _attrs, Jid); decode_mix_join_attrs(__TopXMLNS, [], Jid) -> decode_mix_join_attr_jid(__TopXMLNS, Jid). encode_mix_join({mix_join, Jid, Subscribe}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mix:0">>, [], __TopXMLNS), _els = lists:reverse('encode_mix_join_$subscribe'(Subscribe, __NewTopXMLNS, [])), _attrs = encode_mix_join_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"join">>, _attrs, _els}. 'encode_mix_join_$subscribe'([], __TopXMLNS, _acc) -> _acc; 'encode_mix_join_$subscribe'([Subscribe | _els], __TopXMLNS, _acc) -> 'encode_mix_join_$subscribe'(_els, __TopXMLNS, [encode_mix_subscribe(Subscribe, __TopXMLNS) | _acc]). decode_mix_join_attr_jid(__TopXMLNS, undefined) -> undefined; decode_mix_join_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"join">>, __TopXMLNS}}); _res -> _res end. encode_mix_join_attr_jid(undefined, _acc) -> _acc; encode_mix_join_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_mix_subscribe(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscribe">>, _attrs, _els}) -> Node = decode_mix_subscribe_attrs(__TopXMLNS, _attrs, undefined), Node. decode_mix_subscribe_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_mix_subscribe_attrs(__TopXMLNS, _attrs, _val); decode_mix_subscribe_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_mix_subscribe_attrs(__TopXMLNS, _attrs, Node); decode_mix_subscribe_attrs(__TopXMLNS, [], Node) -> decode_mix_subscribe_attr_node(__TopXMLNS, Node). encode_mix_subscribe(Node, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mix:0">>, [], __TopXMLNS), _els = [], _attrs = encode_mix_subscribe_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"subscribe">>, _attrs, _els}. decode_mix_subscribe_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"subscribe">>, __TopXMLNS}}); decode_mix_subscribe_attr_node(__TopXMLNS, _val) -> _val. encode_mix_subscribe_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_offline(__TopXMLNS, __IgnoreEls, {xmlel, <<"offline">>, _attrs, _els}) -> {Items, Purge, Fetch} = decode_offline_els(__TopXMLNS, __IgnoreEls, _els, [], false, false), {offline, Items, Purge, Fetch}. decode_offline_els(__TopXMLNS, __IgnoreEls, [], Items, Purge, Fetch) -> {lists:reverse(Items), Purge, Fetch}; decode_offline_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"purge">>, _attrs, _} = _el | _els], Items, Purge, Fetch) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_offline_purge(__TopXMLNS, __IgnoreEls, _el), Fetch); <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_offline_purge(<<"http://jabber.org/protocol/offline">>, __IgnoreEls, _el), Fetch); _ -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, Fetch) end; decode_offline_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"fetch">>, _attrs, _} = _el | _els], Items, Purge, Fetch) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, decode_offline_fetch(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, decode_offline_fetch(<<"http://jabber.org/protocol/offline">>, __IgnoreEls, _el)); _ -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, Fetch) end; decode_offline_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items, Purge, Fetch) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, [decode_offline_item(__TopXMLNS, __IgnoreEls, _el) | Items], Purge, Fetch); <<"http://jabber.org/protocol/offline">> -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, [decode_offline_item(<<"http://jabber.org/protocol/offline">>, __IgnoreEls, _el) | Items], Purge, Fetch); _ -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, Fetch) end; decode_offline_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items, Purge, Fetch) -> decode_offline_els(__TopXMLNS, __IgnoreEls, _els, Items, Purge, Fetch). encode_offline({offline, Items, Purge, Fetch}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/offline">>, [], __TopXMLNS), _els = lists:reverse('encode_offline_$items'(Items, __NewTopXMLNS, 'encode_offline_$purge'(Purge, __NewTopXMLNS, 'encode_offline_$fetch'(Fetch, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"offline">>, _attrs, _els}. 'encode_offline_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_offline_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_offline_$items'(_els, __TopXMLNS, [encode_offline_item(Items, __TopXMLNS) | _acc]). 'encode_offline_$purge'(false, __TopXMLNS, _acc) -> _acc; 'encode_offline_$purge'(Purge, __TopXMLNS, _acc) -> [encode_offline_purge(Purge, __TopXMLNS) | _acc]. 'encode_offline_$fetch'(false, __TopXMLNS, _acc) -> _acc; 'encode_offline_$fetch'(Fetch, __TopXMLNS, _acc) -> [encode_offline_fetch(Fetch, __TopXMLNS) | _acc]. decode_offline_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Node, Action} = decode_offline_item_attrs(__TopXMLNS, _attrs, undefined, undefined), {offline_item, Node, Action}. decode_offline_item_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Action) -> decode_offline_item_attrs(__TopXMLNS, _attrs, _val, Action); decode_offline_item_attrs(__TopXMLNS, [{<<"action">>, _val} | _attrs], Node, _Action) -> decode_offline_item_attrs(__TopXMLNS, _attrs, Node, _val); decode_offline_item_attrs(__TopXMLNS, [_ | _attrs], Node, Action) -> decode_offline_item_attrs(__TopXMLNS, _attrs, Node, Action); decode_offline_item_attrs(__TopXMLNS, [], Node, Action) -> {decode_offline_item_attr_node(__TopXMLNS, Node), decode_offline_item_attr_action(__TopXMLNS, Action)}. encode_offline_item({offline_item, Node, Action}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/offline">>, [], __TopXMLNS), _els = [], _attrs = encode_offline_item_attr_action(Action, encode_offline_item_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"item">>, _attrs, _els}. decode_offline_item_attr_node(__TopXMLNS, undefined) -> <<>>; decode_offline_item_attr_node(__TopXMLNS, _val) -> _val. encode_offline_item_attr_node(<<>>, _acc) -> _acc; encode_offline_item_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_offline_item_attr_action(__TopXMLNS, undefined) -> undefined; decode_offline_item_attr_action(__TopXMLNS, _val) -> case catch dec_enum(_val, [view, remove]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"action">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_offline_item_attr_action(undefined, _acc) -> _acc; encode_offline_item_attr_action(_val, _acc) -> [{<<"action">>, enc_enum(_val)} | _acc]. decode_offline_fetch(__TopXMLNS, __IgnoreEls, {xmlel, <<"fetch">>, _attrs, _els}) -> true. encode_offline_fetch(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/offline">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"fetch">>, _attrs, _els}. decode_offline_purge(__TopXMLNS, __IgnoreEls, {xmlel, <<"purge">>, _attrs, _els}) -> true. encode_offline_purge(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/offline">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"purge">>, _attrs, _els}. decode_sm_failed(__TopXMLNS, __IgnoreEls, {xmlel, <<"failed">>, _attrs, _els}) -> Reason = decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, undefined), {H, Xmlns} = decode_sm_failed_attrs(__TopXMLNS, _attrs, undefined, undefined), {sm_failed, Reason, H, Xmlns}. decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [], Reason) -> Reason; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"bad-request">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"feature-not-implemented">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forbidden">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"gone">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item-not-found">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"jid-malformed">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-acceptable">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-allowed">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"recipient-unavailable">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"registration-required">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remote-server-not-found">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remote-server-timeout">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"service-unavailable">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription-required">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unexpected-request">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el)); _ -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_sm_failed_els(__TopXMLNS, __IgnoreEls, [_ | _els], Reason) -> decode_sm_failed_els(__TopXMLNS, __IgnoreEls, _els, Reason). decode_sm_failed_attrs(__TopXMLNS, [{<<"h">>, _val} | _attrs], _H, Xmlns) -> decode_sm_failed_attrs(__TopXMLNS, _attrs, _val, Xmlns); decode_sm_failed_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], H, _Xmlns) -> decode_sm_failed_attrs(__TopXMLNS, _attrs, H, _val); decode_sm_failed_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns) -> decode_sm_failed_attrs(__TopXMLNS, _attrs, H, Xmlns); decode_sm_failed_attrs(__TopXMLNS, [], H, Xmlns) -> {decode_sm_failed_attr_h(__TopXMLNS, H), decode_sm_failed_attr_xmlns(__TopXMLNS, Xmlns)}. encode_sm_failed({sm_failed, Reason, H, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = lists:reverse('encode_sm_failed_$reason'(Reason, __NewTopXMLNS, [])), _attrs = encode_sm_failed_attr_h(H, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"failed">>, _attrs, _els}. 'encode_sm_failed_$reason'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_sm_failed_$reason'('bad-request' = Reason, __TopXMLNS, _acc) -> [encode_error_bad_request(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'(conflict = Reason, __TopXMLNS, _acc) -> [encode_error_conflict(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('feature-not-implemented' = Reason, __TopXMLNS, _acc) -> [encode_error_feature_not_implemented(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'(forbidden = Reason, __TopXMLNS, _acc) -> [encode_error_forbidden(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'({gone, _} = Reason, __TopXMLNS, _acc) -> [encode_error_gone(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('internal-server-error' = Reason, __TopXMLNS, _acc) -> [encode_error_internal_server_error(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('item-not-found' = Reason, __TopXMLNS, _acc) -> [encode_error_item_not_found(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('jid-malformed' = Reason, __TopXMLNS, _acc) -> [encode_error_jid_malformed(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('not-acceptable' = Reason, __TopXMLNS, _acc) -> [encode_error_not_acceptable(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('not-allowed' = Reason, __TopXMLNS, _acc) -> [encode_error_not_allowed(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('not-authorized' = Reason, __TopXMLNS, _acc) -> [encode_error_not_authorized(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('policy-violation' = Reason, __TopXMLNS, _acc) -> [encode_error_policy_violation(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('recipient-unavailable' = Reason, __TopXMLNS, _acc) -> [encode_error_recipient_unavailable(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'({redirect, _} = Reason, __TopXMLNS, _acc) -> [encode_error_redirect(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('registration-required' = Reason, __TopXMLNS, _acc) -> [encode_error_registration_required(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('remote-server-not-found' = Reason, __TopXMLNS, _acc) -> [encode_error_remote_server_not_found(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('remote-server-timeout' = Reason, __TopXMLNS, _acc) -> [encode_error_remote_server_timeout(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('resource-constraint' = Reason, __TopXMLNS, _acc) -> [encode_error_resource_constraint(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('service-unavailable' = Reason, __TopXMLNS, _acc) -> [encode_error_service_unavailable(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('subscription-required' = Reason, __TopXMLNS, _acc) -> [encode_error_subscription_required(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('undefined-condition' = Reason, __TopXMLNS, _acc) -> [encode_error_undefined_condition(Reason, __TopXMLNS) | _acc]; 'encode_sm_failed_$reason'('unexpected-request' = Reason, __TopXMLNS, _acc) -> [encode_error_unexpected_request(Reason, __TopXMLNS) | _acc]. decode_sm_failed_attr_h(__TopXMLNS, undefined) -> undefined; decode_sm_failed_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"h">>, <<"failed">>, __TopXMLNS}}); _res -> _res end. encode_sm_failed_attr_h(undefined, _acc) -> _acc; encode_sm_failed_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. decode_sm_failed_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_failed_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_a(__TopXMLNS, __IgnoreEls, {xmlel, <<"a">>, _attrs, _els}) -> {H, Xmlns} = decode_sm_a_attrs(__TopXMLNS, _attrs, undefined, undefined), {sm_a, H, Xmlns}. decode_sm_a_attrs(__TopXMLNS, [{<<"h">>, _val} | _attrs], _H, Xmlns) -> decode_sm_a_attrs(__TopXMLNS, _attrs, _val, Xmlns); decode_sm_a_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], H, _Xmlns) -> decode_sm_a_attrs(__TopXMLNS, _attrs, H, _val); decode_sm_a_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns) -> decode_sm_a_attrs(__TopXMLNS, _attrs, H, Xmlns); decode_sm_a_attrs(__TopXMLNS, [], H, Xmlns) -> {decode_sm_a_attr_h(__TopXMLNS, H), decode_sm_a_attr_xmlns(__TopXMLNS, Xmlns)}. encode_sm_a({sm_a, H, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = encode_sm_a_attr_h(H, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"a">>, _attrs, _els}. decode_sm_a_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"h">>, <<"a">>, __TopXMLNS}}); decode_sm_a_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"h">>, <<"a">>, __TopXMLNS}}); _res -> _res end. encode_sm_a_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. decode_sm_a_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_a_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_r(__TopXMLNS, __IgnoreEls, {xmlel, <<"r">>, _attrs, _els}) -> Xmlns = decode_sm_r_attrs(__TopXMLNS, _attrs, undefined), {sm_r, Xmlns}. decode_sm_r_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_sm_r_attrs(__TopXMLNS, _attrs, _val); decode_sm_r_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_sm_r_attrs(__TopXMLNS, _attrs, Xmlns); decode_sm_r_attrs(__TopXMLNS, [], Xmlns) -> decode_sm_r_attr_xmlns(__TopXMLNS, Xmlns). encode_sm_r({sm_r, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"r">>, _attrs, _els}. decode_sm_r_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_r_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_resumed(__TopXMLNS, __IgnoreEls, {xmlel, <<"resumed">>, _attrs, _els}) -> {H, Xmlns, Previd} = decode_sm_resumed_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {sm_resumed, H, Previd, Xmlns}. decode_sm_resumed_attrs(__TopXMLNS, [{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) -> decode_sm_resumed_attrs(__TopXMLNS, _attrs, _val, Xmlns, Previd); decode_sm_resumed_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) -> decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, _val, Previd); decode_sm_resumed_attrs(__TopXMLNS, [{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) -> decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, Xmlns, _val); decode_sm_resumed_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns, Previd) -> decode_sm_resumed_attrs(__TopXMLNS, _attrs, H, Xmlns, Previd); decode_sm_resumed_attrs(__TopXMLNS, [], H, Xmlns, Previd) -> {decode_sm_resumed_attr_h(__TopXMLNS, H), decode_sm_resumed_attr_xmlns(__TopXMLNS, Xmlns), decode_sm_resumed_attr_previd(__TopXMLNS, Previd)}. encode_sm_resumed({sm_resumed, H, Previd, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = encode_sm_resumed_attr_previd(Previd, encode_sm_resumed_attr_h(H, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"resumed">>, _attrs, _els}. decode_sm_resumed_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"h">>, <<"resumed">>, __TopXMLNS}}); decode_sm_resumed_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"h">>, <<"resumed">>, __TopXMLNS}}); _res -> _res end. encode_sm_resumed_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. decode_sm_resumed_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_resumed_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_resumed_attr_previd(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"previd">>, <<"resumed">>, __TopXMLNS}}); decode_sm_resumed_attr_previd(__TopXMLNS, _val) -> _val. encode_sm_resumed_attr_previd(_val, _acc) -> [{<<"previd">>, _val} | _acc]. decode_sm_resume(__TopXMLNS, __IgnoreEls, {xmlel, <<"resume">>, _attrs, _els}) -> {H, Xmlns, Previd} = decode_sm_resume_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {sm_resume, H, Previd, Xmlns}. decode_sm_resume_attrs(__TopXMLNS, [{<<"h">>, _val} | _attrs], _H, Xmlns, Previd) -> decode_sm_resume_attrs(__TopXMLNS, _attrs, _val, Xmlns, Previd); decode_sm_resume_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], H, _Xmlns, Previd) -> decode_sm_resume_attrs(__TopXMLNS, _attrs, H, _val, Previd); decode_sm_resume_attrs(__TopXMLNS, [{<<"previd">>, _val} | _attrs], H, Xmlns, _Previd) -> decode_sm_resume_attrs(__TopXMLNS, _attrs, H, Xmlns, _val); decode_sm_resume_attrs(__TopXMLNS, [_ | _attrs], H, Xmlns, Previd) -> decode_sm_resume_attrs(__TopXMLNS, _attrs, H, Xmlns, Previd); decode_sm_resume_attrs(__TopXMLNS, [], H, Xmlns, Previd) -> {decode_sm_resume_attr_h(__TopXMLNS, H), decode_sm_resume_attr_xmlns(__TopXMLNS, Xmlns), decode_sm_resume_attr_previd(__TopXMLNS, Previd)}. encode_sm_resume({sm_resume, H, Previd, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = encode_sm_resume_attr_previd(Previd, encode_sm_resume_attr_h(H, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"resume">>, _attrs, _els}. decode_sm_resume_attr_h(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"h">>, <<"resume">>, __TopXMLNS}}); decode_sm_resume_attr_h(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"h">>, <<"resume">>, __TopXMLNS}}); _res -> _res end. encode_sm_resume_attr_h(_val, _acc) -> [{<<"h">>, enc_int(_val)} | _acc]. decode_sm_resume_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_resume_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_resume_attr_previd(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"previd">>, <<"resume">>, __TopXMLNS}}); decode_sm_resume_attr_previd(__TopXMLNS, _val) -> _val. encode_sm_resume_attr_previd(_val, _acc) -> [{<<"previd">>, _val} | _acc]. decode_sm_enabled(__TopXMLNS, __IgnoreEls, {xmlel, <<"enabled">>, _attrs, _els}) -> {Id, Location, Xmlns, Max, Resume} = decode_sm_enabled_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {sm_enabled, Id, Location, Max, Resume, Xmlns}. decode_sm_enabled_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, Location, Xmlns, Max, Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, _val, Location, Xmlns, Max, Resume); decode_sm_enabled_attrs(__TopXMLNS, [{<<"location">>, _val} | _attrs], Id, _Location, Xmlns, Max, Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, _val, Xmlns, Max, Resume); decode_sm_enabled_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Id, Location, _Xmlns, Max, Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, Location, _val, Max, Resume); decode_sm_enabled_attrs(__TopXMLNS, [{<<"max">>, _val} | _attrs], Id, Location, Xmlns, _Max, Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, Location, Xmlns, _val, Resume); decode_sm_enabled_attrs(__TopXMLNS, [{<<"resume">>, _val} | _attrs], Id, Location, Xmlns, Max, _Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, Location, Xmlns, Max, _val); decode_sm_enabled_attrs(__TopXMLNS, [_ | _attrs], Id, Location, Xmlns, Max, Resume) -> decode_sm_enabled_attrs(__TopXMLNS, _attrs, Id, Location, Xmlns, Max, Resume); decode_sm_enabled_attrs(__TopXMLNS, [], Id, Location, Xmlns, Max, Resume) -> {decode_sm_enabled_attr_id(__TopXMLNS, Id), decode_sm_enabled_attr_location(__TopXMLNS, Location), decode_sm_enabled_attr_xmlns(__TopXMLNS, Xmlns), decode_sm_enabled_attr_max(__TopXMLNS, Max), decode_sm_enabled_attr_resume(__TopXMLNS, Resume)}. encode_sm_enabled({sm_enabled, Id, Location, Max, Resume, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = encode_sm_enabled_attr_resume(Resume, encode_sm_enabled_attr_max(Max, encode_sm_enabled_attr_location(Location, encode_sm_enabled_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"enabled">>, _attrs, _els}. decode_sm_enabled_attr_id(__TopXMLNS, undefined) -> <<>>; decode_sm_enabled_attr_id(__TopXMLNS, _val) -> _val. encode_sm_enabled_attr_id(<<>>, _acc) -> _acc; encode_sm_enabled_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_sm_enabled_attr_location(__TopXMLNS, undefined) -> <<>>; decode_sm_enabled_attr_location(__TopXMLNS, _val) -> _val. encode_sm_enabled_attr_location(<<>>, _acc) -> _acc; encode_sm_enabled_attr_location(_val, _acc) -> [{<<"location">>, _val} | _acc]. decode_sm_enabled_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_enabled_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_enabled_attr_max(__TopXMLNS, undefined) -> undefined; decode_sm_enabled_attr_max(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max">>, <<"enabled">>, __TopXMLNS}}); _res -> _res end. encode_sm_enabled_attr_max(undefined, _acc) -> _acc; encode_sm_enabled_attr_max(_val, _acc) -> [{<<"max">>, enc_int(_val)} | _acc]. decode_sm_enabled_attr_resume(__TopXMLNS, undefined) -> false; decode_sm_enabled_attr_resume(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"resume">>, <<"enabled">>, __TopXMLNS}}); _res -> _res end. encode_sm_enabled_attr_resume(false, _acc) -> _acc; encode_sm_enabled_attr_resume(_val, _acc) -> [{<<"resume">>, enc_bool(_val)} | _acc]. decode_sm_enable(__TopXMLNS, __IgnoreEls, {xmlel, <<"enable">>, _attrs, _els}) -> {Max, Xmlns, Resume} = decode_sm_enable_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {sm_enable, Max, Resume, Xmlns}. decode_sm_enable_attrs(__TopXMLNS, [{<<"max">>, _val} | _attrs], _Max, Xmlns, Resume) -> decode_sm_enable_attrs(__TopXMLNS, _attrs, _val, Xmlns, Resume); decode_sm_enable_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Max, _Xmlns, Resume) -> decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, _val, Resume); decode_sm_enable_attrs(__TopXMLNS, [{<<"resume">>, _val} | _attrs], Max, Xmlns, _Resume) -> decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, Xmlns, _val); decode_sm_enable_attrs(__TopXMLNS, [_ | _attrs], Max, Xmlns, Resume) -> decode_sm_enable_attrs(__TopXMLNS, _attrs, Max, Xmlns, Resume); decode_sm_enable_attrs(__TopXMLNS, [], Max, Xmlns, Resume) -> {decode_sm_enable_attr_max(__TopXMLNS, Max), decode_sm_enable_attr_xmlns(__TopXMLNS, Xmlns), decode_sm_enable_attr_resume(__TopXMLNS, Resume)}. encode_sm_enable({sm_enable, Max, Resume, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = encode_sm_enable_attr_resume(Resume, encode_sm_enable_attr_max(Max, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"enable">>, _attrs, _els}. decode_sm_enable_attr_max(__TopXMLNS, undefined) -> undefined; decode_sm_enable_attr_max(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max">>, <<"enable">>, __TopXMLNS}}); _res -> _res end. encode_sm_enable_attr_max(undefined, _acc) -> _acc; encode_sm_enable_attr_max(_val, _acc) -> [{<<"max">>, enc_int(_val)} | _acc]. decode_sm_enable_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_sm_enable_attr_xmlns(__TopXMLNS, _val) -> _val. decode_sm_enable_attr_resume(__TopXMLNS, undefined) -> false; decode_sm_enable_attr_resume(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"resume">>, <<"enable">>, __TopXMLNS}}); _res -> _res end. encode_sm_enable_attr_resume(false, _acc) -> _acc; encode_sm_enable_attr_resume(_val, _acc) -> [{<<"resume">>, enc_bool(_val)} | _acc]. decode_feature_sm(__TopXMLNS, __IgnoreEls, {xmlel, <<"sm">>, _attrs, _els}) -> Xmlns = decode_feature_sm_attrs(__TopXMLNS, _attrs, undefined), {feature_sm, Xmlns}. decode_feature_sm_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_feature_sm_attrs(__TopXMLNS, _attrs, _val); decode_feature_sm_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_feature_sm_attrs(__TopXMLNS, _attrs, Xmlns); decode_feature_sm_attrs(__TopXMLNS, [], Xmlns) -> decode_feature_sm_attr_xmlns(__TopXMLNS, Xmlns). encode_feature_sm({feature_sm, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:sm:2">>, <<"urn:xmpp:sm:3">>], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"sm">>, _attrs, _els}. decode_feature_sm_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_feature_sm_attr_xmlns(__TopXMLNS, _val) -> _val. decode_csi_inactive(__TopXMLNS, __IgnoreEls, {xmlel, <<"inactive">>, _attrs, _els}) -> {csi, inactive}. encode_csi_inactive({csi, inactive}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:csi:0">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"inactive">>, _attrs, _els}. decode_csi_active(__TopXMLNS, __IgnoreEls, {xmlel, <<"active">>, _attrs, _els}) -> {csi, active}. encode_csi_active({csi, active}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:csi:0">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"active">>, _attrs, _els}. decode_feature_csi(__TopXMLNS, __IgnoreEls, {xmlel, <<"csi">>, _attrs, _els}) -> Xmlns = decode_feature_csi_attrs(__TopXMLNS, _attrs, undefined), {feature_csi, Xmlns}. decode_feature_csi_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns) -> decode_feature_csi_attrs(__TopXMLNS, _attrs, _val); decode_feature_csi_attrs(__TopXMLNS, [_ | _attrs], Xmlns) -> decode_feature_csi_attrs(__TopXMLNS, _attrs, Xmlns); decode_feature_csi_attrs(__TopXMLNS, [], Xmlns) -> decode_feature_csi_attr_xmlns(__TopXMLNS, Xmlns). encode_feature_csi({feature_csi, Xmlns}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:csi:0">>], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"csi">>, _attrs, _els}. decode_feature_csi_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_feature_csi_attr_xmlns(__TopXMLNS, _val) -> _val. decode_carbons_sent(__TopXMLNS, __IgnoreEls, {xmlel, <<"sent">>, _attrs, _els}) -> Forwarded = decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, _els, error), {carbons_sent, Forwarded}. decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, [], Forwarded) -> case Forwarded of error -> erlang:error({xmpp_codec, {missing_tag, <<"forwarded">>, __TopXMLNS}}); {value, Forwarded1} -> Forwarded1 end; decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Forwarded) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:xmpp:forward:0">> -> decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, _els, {value, decode_forwarded(<<"urn:xmpp:forward:0">>, __IgnoreEls, _el)}); _ -> decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, _els, Forwarded) end; decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, [_ | _els], Forwarded) -> decode_carbons_sent_els(__TopXMLNS, __IgnoreEls, _els, Forwarded). encode_carbons_sent({carbons_sent, Forwarded}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:carbons:2">>, [], __TopXMLNS), _els = lists:reverse('encode_carbons_sent_$forwarded'(Forwarded, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"sent">>, _attrs, _els}. 'encode_carbons_sent_$forwarded'(Forwarded, __TopXMLNS, _acc) -> [encode_forwarded(Forwarded, __TopXMLNS) | _acc]. decode_carbons_received(__TopXMLNS, __IgnoreEls, {xmlel, <<"received">>, _attrs, _els}) -> Forwarded = decode_carbons_received_els(__TopXMLNS, __IgnoreEls, _els, error), {carbons_received, Forwarded}. decode_carbons_received_els(__TopXMLNS, __IgnoreEls, [], Forwarded) -> case Forwarded of error -> erlang:error({xmpp_codec, {missing_tag, <<"forwarded">>, __TopXMLNS}}); {value, Forwarded1} -> Forwarded1 end; decode_carbons_received_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forwarded">>, _attrs, _} = _el | _els], Forwarded) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:xmpp:forward:0">> -> decode_carbons_received_els(__TopXMLNS, __IgnoreEls, _els, {value, decode_forwarded(<<"urn:xmpp:forward:0">>, __IgnoreEls, _el)}); _ -> decode_carbons_received_els(__TopXMLNS, __IgnoreEls, _els, Forwarded) end; decode_carbons_received_els(__TopXMLNS, __IgnoreEls, [_ | _els], Forwarded) -> decode_carbons_received_els(__TopXMLNS, __IgnoreEls, _els, Forwarded). encode_carbons_received({carbons_received, Forwarded}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:carbons:2">>, [], __TopXMLNS), _els = lists:reverse('encode_carbons_received_$forwarded'(Forwarded, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"received">>, _attrs, _els}. 'encode_carbons_received_$forwarded'(Forwarded, __TopXMLNS, _acc) -> [encode_forwarded(Forwarded, __TopXMLNS) | _acc]. decode_carbons_private(__TopXMLNS, __IgnoreEls, {xmlel, <<"private">>, _attrs, _els}) -> {carbons_private}. encode_carbons_private({carbons_private}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:carbons:2">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"private">>, _attrs, _els}. decode_carbons_enable(__TopXMLNS, __IgnoreEls, {xmlel, <<"enable">>, _attrs, _els}) -> {carbons_enable}. encode_carbons_enable({carbons_enable}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:carbons:2">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"enable">>, _attrs, _els}. decode_carbons_disable(__TopXMLNS, __IgnoreEls, {xmlel, <<"disable">>, _attrs, _els}) -> {carbons_disable}. encode_carbons_disable({carbons_disable}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:carbons:2">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"disable">>, _attrs, _els}. decode_forwarded(__TopXMLNS, __IgnoreEls, {xmlel, <<"forwarded">>, _attrs, _els}) -> {Delay, __Xmls} = decode_forwarded_els(__TopXMLNS, __IgnoreEls, _els, undefined, []), {forwarded, Delay, __Xmls}. decode_forwarded_els(__TopXMLNS, __IgnoreEls, [], Delay, __Xmls) -> {Delay, lists:reverse(__Xmls)}; decode_forwarded_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delay">>, _attrs, _} = _el | _els], Delay, __Xmls) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:xmpp:delay">> -> decode_forwarded_els(__TopXMLNS, __IgnoreEls, _els, decode_delay(<<"urn:xmpp:delay">>, __IgnoreEls, _el), __Xmls); _ -> decode_forwarded_els(__TopXMLNS, __IgnoreEls, _els, Delay, __Xmls) end; decode_forwarded_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Delay, __Xmls) -> decode_forwarded_els(__TopXMLNS, __IgnoreEls, _els, Delay, [_el | __Xmls]); decode_forwarded_els(__TopXMLNS, __IgnoreEls, [_ | _els], Delay, __Xmls) -> decode_forwarded_els(__TopXMLNS, __IgnoreEls, _els, Delay, __Xmls). encode_forwarded({forwarded, Delay, __Xmls}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:forward:0">>, [], __TopXMLNS), _els = __Xmls ++ lists:reverse('encode_forwarded_$delay'(Delay, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"forwarded">>, _attrs, _els}. 'encode_forwarded_$delay'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_forwarded_$delay'(Delay, __TopXMLNS, _acc) -> [encode_delay(Delay, __TopXMLNS) | _acc]. decode_mam_fin(__TopXMLNS, __IgnoreEls, {xmlel, <<"fin">>, _attrs, _els}) -> Rsm = decode_mam_fin_els(__TopXMLNS, __IgnoreEls, _els, undefined), {Id, Xmlns, Stable, Complete} = decode_mam_fin_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {mam_fin, Xmlns, Id, Rsm, Stable, Complete}. decode_mam_fin_els(__TopXMLNS, __IgnoreEls, [], Rsm) -> Rsm; decode_mam_fin_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"set">>, _attrs, _} = _el | _els], Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/rsm">> -> decode_mam_fin_els(__TopXMLNS, __IgnoreEls, _els, decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el)); _ -> decode_mam_fin_els(__TopXMLNS, __IgnoreEls, _els, Rsm) end; decode_mam_fin_els(__TopXMLNS, __IgnoreEls, [_ | _els], Rsm) -> decode_mam_fin_els(__TopXMLNS, __IgnoreEls, _els, Rsm). decode_mam_fin_attrs(__TopXMLNS, [{<<"queryid">>, _val} | _attrs], _Id, Xmlns, Stable, Complete) -> decode_mam_fin_attrs(__TopXMLNS, _attrs, _val, Xmlns, Stable, Complete); decode_mam_fin_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Id, _Xmlns, Stable, Complete) -> decode_mam_fin_attrs(__TopXMLNS, _attrs, Id, _val, Stable, Complete); decode_mam_fin_attrs(__TopXMLNS, [{<<"stable">>, _val} | _attrs], Id, Xmlns, _Stable, Complete) -> decode_mam_fin_attrs(__TopXMLNS, _attrs, Id, Xmlns, _val, Complete); decode_mam_fin_attrs(__TopXMLNS, [{<<"complete">>, _val} | _attrs], Id, Xmlns, Stable, _Complete) -> decode_mam_fin_attrs(__TopXMLNS, _attrs, Id, Xmlns, Stable, _val); decode_mam_fin_attrs(__TopXMLNS, [_ | _attrs], Id, Xmlns, Stable, Complete) -> decode_mam_fin_attrs(__TopXMLNS, _attrs, Id, Xmlns, Stable, Complete); decode_mam_fin_attrs(__TopXMLNS, [], Id, Xmlns, Stable, Complete) -> {decode_mam_fin_attr_queryid(__TopXMLNS, Id), decode_mam_fin_attr_xmlns(__TopXMLNS, Xmlns), decode_mam_fin_attr_stable(__TopXMLNS, Stable), decode_mam_fin_attr_complete(__TopXMLNS, Complete)}. encode_mam_fin({mam_fin, Xmlns, Id, Rsm, Stable, Complete}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>], __TopXMLNS), _els = lists:reverse('encode_mam_fin_$rsm'(Rsm, __NewTopXMLNS, [])), _attrs = encode_mam_fin_attr_complete(Complete, encode_mam_fin_attr_stable(Stable, encode_mam_fin_attr_queryid(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"fin">>, _attrs, _els}. 'encode_mam_fin_$rsm'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_fin_$rsm'(Rsm, __TopXMLNS, _acc) -> [encode_rsm_set(Rsm, __TopXMLNS) | _acc]. decode_mam_fin_attr_queryid(__TopXMLNS, undefined) -> <<>>; decode_mam_fin_attr_queryid(__TopXMLNS, _val) -> _val. encode_mam_fin_attr_queryid(<<>>, _acc) -> _acc; encode_mam_fin_attr_queryid(_val, _acc) -> [{<<"queryid">>, _val} | _acc]. decode_mam_fin_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_mam_fin_attr_xmlns(__TopXMLNS, _val) -> _val. decode_mam_fin_attr_stable(__TopXMLNS, undefined) -> undefined; decode_mam_fin_attr_stable(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"stable">>, <<"fin">>, __TopXMLNS}}); _res -> _res end. encode_mam_fin_attr_stable(undefined, _acc) -> _acc; encode_mam_fin_attr_stable(_val, _acc) -> [{<<"stable">>, enc_bool(_val)} | _acc]. decode_mam_fin_attr_complete(__TopXMLNS, undefined) -> undefined; decode_mam_fin_attr_complete(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"complete">>, <<"fin">>, __TopXMLNS}}); _res -> _res end. encode_mam_fin_attr_complete(undefined, _acc) -> _acc; encode_mam_fin_attr_complete(_val, _acc) -> [{<<"complete">>, enc_bool(_val)} | _acc]. decode_mam_prefs(__TopXMLNS, __IgnoreEls, {xmlel, <<"prefs">>, _attrs, _els}) -> {Never, Always} = decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {Default, Xmlns} = decode_mam_prefs_attrs(__TopXMLNS, _attrs, undefined, undefined), {mam_prefs, Xmlns, Default, Always, Never}. decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, [], Never, Always) -> {Never, Always}; decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"always">>, _attrs, _} = _el | _els], Never, Always) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:1">>; __TopXMLNS == <<"urn:xmpp:mam:0">>; __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, decode_mam_always(__TopXMLNS, __IgnoreEls, _el)); <<"urn:xmpp:mam:0">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, decode_mam_always(<<"urn:xmpp:mam:0">>, __IgnoreEls, _el)); <<"urn:xmpp:mam:1">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, decode_mam_always(<<"urn:xmpp:mam:1">>, __IgnoreEls, _el)); <<"urn:xmpp:mam:tmp">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, decode_mam_always(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el)); _ -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, Always) end; decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"never">>, _attrs, _} = _el | _els], Never, Always) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:1">>; __TopXMLNS == <<"urn:xmpp:mam:0">>; __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, decode_mam_never(__TopXMLNS, __IgnoreEls, _el), Always); <<"urn:xmpp:mam:0">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, decode_mam_never(<<"urn:xmpp:mam:0">>, __IgnoreEls, _el), Always); <<"urn:xmpp:mam:1">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, decode_mam_never(<<"urn:xmpp:mam:1">>, __IgnoreEls, _el), Always); <<"urn:xmpp:mam:tmp">> -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, decode_mam_never(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el), Always); _ -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, Always) end; decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, [_ | _els], Never, Always) -> decode_mam_prefs_els(__TopXMLNS, __IgnoreEls, _els, Never, Always). decode_mam_prefs_attrs(__TopXMLNS, [{<<"default">>, _val} | _attrs], _Default, Xmlns) -> decode_mam_prefs_attrs(__TopXMLNS, _attrs, _val, Xmlns); decode_mam_prefs_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Default, _Xmlns) -> decode_mam_prefs_attrs(__TopXMLNS, _attrs, Default, _val); decode_mam_prefs_attrs(__TopXMLNS, [_ | _attrs], Default, Xmlns) -> decode_mam_prefs_attrs(__TopXMLNS, _attrs, Default, Xmlns); decode_mam_prefs_attrs(__TopXMLNS, [], Default, Xmlns) -> {decode_mam_prefs_attr_default(__TopXMLNS, Default), decode_mam_prefs_attr_xmlns(__TopXMLNS, Xmlns)}. encode_mam_prefs({mam_prefs, Xmlns, Default, Always, Never}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = lists:reverse('encode_mam_prefs_$never'(Never, __NewTopXMLNS, 'encode_mam_prefs_$always'(Always, __NewTopXMLNS, []))), _attrs = encode_mam_prefs_attr_default(Default, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"prefs">>, _attrs, _els}. 'encode_mam_prefs_$never'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_prefs_$never'(Never, __TopXMLNS, _acc) -> [encode_mam_never(Never, __TopXMLNS) | _acc]. 'encode_mam_prefs_$always'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_prefs_$always'(Always, __TopXMLNS, _acc) -> [encode_mam_always(Always, __TopXMLNS) | _acc]. decode_mam_prefs_attr_default(__TopXMLNS, undefined) -> undefined; decode_mam_prefs_attr_default(__TopXMLNS, _val) -> case catch dec_enum(_val, [always, never, roster]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"default">>, <<"prefs">>, __TopXMLNS}}); _res -> _res end. encode_mam_prefs_attr_default(undefined, _acc) -> _acc; encode_mam_prefs_attr_default(_val, _acc) -> [{<<"default">>, enc_enum(_val)} | _acc]. decode_mam_prefs_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_mam_prefs_attr_xmlns(__TopXMLNS, _val) -> _val. decode_mam_always(__TopXMLNS, __IgnoreEls, {xmlel, <<"always">>, _attrs, _els}) -> Jids = decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, []), Jids. decode_mam_always_els(__TopXMLNS, __IgnoreEls, [], Jids) -> lists:reverse(Jids); decode_mam_always_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"jid">>, _attrs, _} = _el | _els], Jids) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:1">>; __TopXMLNS == <<"urn:xmpp:mam:0">>; __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(__TopXMLNS, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:0">> -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:0">>, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:1">> -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:1">>, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:tmp">> -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el) | Jids]); _ -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, Jids) end; decode_mam_always_els(__TopXMLNS, __IgnoreEls, [_ | _els], Jids) -> decode_mam_always_els(__TopXMLNS, __IgnoreEls, _els, Jids). encode_mam_always(Jids, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = lists:reverse('encode_mam_always_$jids'(Jids, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"always">>, _attrs, _els}. 'encode_mam_always_$jids'([], __TopXMLNS, _acc) -> _acc; 'encode_mam_always_$jids'([Jids | _els], __TopXMLNS, _acc) -> 'encode_mam_always_$jids'(_els, __TopXMLNS, [encode_mam_jid(Jids, __TopXMLNS) | _acc]). decode_mam_never(__TopXMLNS, __IgnoreEls, {xmlel, <<"never">>, _attrs, _els}) -> Jids = decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, []), Jids. decode_mam_never_els(__TopXMLNS, __IgnoreEls, [], Jids) -> lists:reverse(Jids); decode_mam_never_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"jid">>, _attrs, _} = _el | _els], Jids) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:1">>; __TopXMLNS == <<"urn:xmpp:mam:0">>; __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(__TopXMLNS, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:0">> -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:0">>, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:1">> -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:1">>, __IgnoreEls, _el) | Jids]); <<"urn:xmpp:mam:tmp">> -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, [decode_mam_jid(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el) | Jids]); _ -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, Jids) end; decode_mam_never_els(__TopXMLNS, __IgnoreEls, [_ | _els], Jids) -> decode_mam_never_els(__TopXMLNS, __IgnoreEls, _els, Jids). encode_mam_never(Jids, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = lists:reverse('encode_mam_never_$jids'(Jids, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"never">>, _attrs, _els}. 'encode_mam_never_$jids'([], __TopXMLNS, _acc) -> _acc; 'encode_mam_never_$jids'([Jids | _els], __TopXMLNS, _acc) -> 'encode_mam_never_$jids'(_els, __TopXMLNS, [encode_mam_jid(Jids, __TopXMLNS) | _acc]). decode_mam_jid(__TopXMLNS, __IgnoreEls, {xmlel, <<"jid">>, _attrs, _els}) -> Cdata = decode_mam_jid_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_mam_jid_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_mam_jid_cdata(__TopXMLNS, Cdata); decode_mam_jid_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_mam_jid_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_mam_jid_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_mam_jid_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_mam_jid(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = encode_mam_jid_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"jid">>, _attrs, _els}. decode_mam_jid_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"jid">>, __TopXMLNS}}); decode_mam_jid_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"jid">>, __TopXMLNS}}); _res -> _res end. encode_mam_jid_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. decode_mam_result(__TopXMLNS, __IgnoreEls, {xmlel, <<"result">>, _attrs, _els}) -> __Els = decode_mam_result_els(__TopXMLNS, __IgnoreEls, _els, []), {Queryid, Xmlns, Id} = decode_mam_result_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {mam_result, Xmlns, Queryid, Id, __Els}. decode_mam_result_els(__TopXMLNS, __IgnoreEls, [], __Els) -> lists:reverse(__Els); decode_mam_result_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], __Els) -> if __IgnoreEls -> decode_mam_result_els(__TopXMLNS, __IgnoreEls, _els, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_mam_result_els(__TopXMLNS, __IgnoreEls, _els, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_mam_result_els(__TopXMLNS, __IgnoreEls, _els, __Els) end end; decode_mam_result_els(__TopXMLNS, __IgnoreEls, [_ | _els], __Els) -> decode_mam_result_els(__TopXMLNS, __IgnoreEls, _els, __Els). decode_mam_result_attrs(__TopXMLNS, [{<<"queryid">>, _val} | _attrs], _Queryid, Xmlns, Id) -> decode_mam_result_attrs(__TopXMLNS, _attrs, _val, Xmlns, Id); decode_mam_result_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Queryid, _Xmlns, Id) -> decode_mam_result_attrs(__TopXMLNS, _attrs, Queryid, _val, Id); decode_mam_result_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], Queryid, Xmlns, _Id) -> decode_mam_result_attrs(__TopXMLNS, _attrs, Queryid, Xmlns, _val); decode_mam_result_attrs(__TopXMLNS, [_ | _attrs], Queryid, Xmlns, Id) -> decode_mam_result_attrs(__TopXMLNS, _attrs, Queryid, Xmlns, Id); decode_mam_result_attrs(__TopXMLNS, [], Queryid, Xmlns, Id) -> {decode_mam_result_attr_queryid(__TopXMLNS, Queryid), decode_mam_result_attr_xmlns(__TopXMLNS, Xmlns), decode_mam_result_attr_id(__TopXMLNS, Id)}. encode_mam_result({mam_result, Xmlns, Queryid, Id, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els], _attrs = encode_mam_result_attr_id(Id, encode_mam_result_attr_queryid(Queryid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"result">>, _attrs, _els}. decode_mam_result_attr_queryid(__TopXMLNS, undefined) -> <<>>; decode_mam_result_attr_queryid(__TopXMLNS, _val) -> _val. encode_mam_result_attr_queryid(<<>>, _acc) -> _acc; encode_mam_result_attr_queryid(_val, _acc) -> [{<<"queryid">>, _val} | _acc]. decode_mam_result_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_mam_result_attr_xmlns(__TopXMLNS, _val) -> _val. decode_mam_result_attr_id(__TopXMLNS, undefined) -> <<>>; decode_mam_result_attr_id(__TopXMLNS, _val) -> _val. encode_mam_result_attr_id(<<>>, _acc) -> _acc; encode_mam_result_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_mam_archived(__TopXMLNS, __IgnoreEls, {xmlel, <<"archived">>, _attrs, _els}) -> {Id, By} = decode_mam_archived_attrs(__TopXMLNS, _attrs, undefined, undefined), {mam_archived, By, Id}. decode_mam_archived_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, By) -> decode_mam_archived_attrs(__TopXMLNS, _attrs, _val, By); decode_mam_archived_attrs(__TopXMLNS, [{<<"by">>, _val} | _attrs], Id, _By) -> decode_mam_archived_attrs(__TopXMLNS, _attrs, Id, _val); decode_mam_archived_attrs(__TopXMLNS, [_ | _attrs], Id, By) -> decode_mam_archived_attrs(__TopXMLNS, _attrs, Id, By); decode_mam_archived_attrs(__TopXMLNS, [], Id, By) -> {decode_mam_archived_attr_id(__TopXMLNS, Id), decode_mam_archived_attr_by(__TopXMLNS, By)}. encode_mam_archived({mam_archived, By, Id}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mam:tmp">>, [], __TopXMLNS), _els = [], _attrs = encode_mam_archived_attr_by(By, encode_mam_archived_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"archived">>, _attrs, _els}. decode_mam_archived_attr_id(__TopXMLNS, undefined) -> <<>>; decode_mam_archived_attr_id(__TopXMLNS, _val) -> _val. encode_mam_archived_attr_id(<<>>, _acc) -> _acc; encode_mam_archived_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_mam_archived_attr_by(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"by">>, <<"archived">>, __TopXMLNS}}); decode_mam_archived_attr_by(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"by">>, <<"archived">>, __TopXMLNS}}); _res -> _res end. encode_mam_archived_attr_by(_val, _acc) -> [{<<"by">>, enc_jid(_val)} | _acc]. decode_mam_query(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Xdata, Withtext, End, Start, With, Rsm} = decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined), {Id, Xmlns} = decode_mam_query_attrs(__TopXMLNS, _attrs, undefined, undefined), {mam_query, Xmlns, Id, Start, End, With, Withtext, Rsm, Xdata}. decode_mam_query_els(__TopXMLNS, __IgnoreEls, [], Xdata, Withtext, End, Start, With, Rsm) -> {Xdata, Withtext, End, Start, With, Rsm}; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"start">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, decode_mam_start(__TopXMLNS, __IgnoreEls, _el), With, Rsm); <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, decode_mam_start(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el), With, Rsm); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"end">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, decode_mam_end(__TopXMLNS, __IgnoreEls, _el), Start, With, Rsm); <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, decode_mam_end(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el), Start, With, Rsm); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"with">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, decode_mam_with(__TopXMLNS, __IgnoreEls, _el), Rsm); <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, decode_mam_with(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el), Rsm); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"withtext">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, decode_mam_withtext(__TopXMLNS, __IgnoreEls, _el), End, Start, With, Rsm); <<"urn:xmpp:mam:tmp">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, decode_mam_withtext(<<"urn:xmpp:mam:tmp">>, __IgnoreEls, _el), End, Start, With, Rsm); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"set">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/rsm">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el)); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata, Withtext, End, Start, With, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el), Withtext, End, Start, With, Rsm); _ -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm) end; decode_mam_query_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata, Withtext, End, Start, With, Rsm) -> decode_mam_query_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Withtext, End, Start, With, Rsm). decode_mam_query_attrs(__TopXMLNS, [{<<"queryid">>, _val} | _attrs], _Id, Xmlns) -> decode_mam_query_attrs(__TopXMLNS, _attrs, _val, Xmlns); decode_mam_query_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Id, _Xmlns) -> decode_mam_query_attrs(__TopXMLNS, _attrs, Id, _val); decode_mam_query_attrs(__TopXMLNS, [_ | _attrs], Id, Xmlns) -> decode_mam_query_attrs(__TopXMLNS, _attrs, Id, Xmlns); decode_mam_query_attrs(__TopXMLNS, [], Id, Xmlns) -> {decode_mam_query_attr_queryid(__TopXMLNS, Id), decode_mam_query_attr_xmlns(__TopXMLNS, Xmlns)}. encode_mam_query({mam_query, Xmlns, Id, Start, End, With, Withtext, Rsm, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"urn:xmpp:mam:0">>, <<"urn:xmpp:mam:1">>, <<"urn:xmpp:mam:tmp">>], __TopXMLNS), _els = lists:reverse('encode_mam_query_$xdata'(Xdata, __NewTopXMLNS, 'encode_mam_query_$withtext'(Withtext, __NewTopXMLNS, 'encode_mam_query_$end'(End, __NewTopXMLNS, 'encode_mam_query_$start'(Start, __NewTopXMLNS, 'encode_mam_query_$with'(With, __NewTopXMLNS, 'encode_mam_query_$rsm'(Rsm, __NewTopXMLNS, []))))))), _attrs = encode_mam_query_attr_queryid(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_mam_query_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. 'encode_mam_query_$withtext'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$withtext'(Withtext, __TopXMLNS, _acc) -> [encode_mam_withtext(Withtext, __TopXMLNS) | _acc]. 'encode_mam_query_$end'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$end'(End, __TopXMLNS, _acc) -> [encode_mam_end(End, __TopXMLNS) | _acc]. 'encode_mam_query_$start'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$start'(Start, __TopXMLNS, _acc) -> [encode_mam_start(Start, __TopXMLNS) | _acc]. 'encode_mam_query_$with'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$with'(With, __TopXMLNS, _acc) -> [encode_mam_with(With, __TopXMLNS) | _acc]. 'encode_mam_query_$rsm'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_mam_query_$rsm'(Rsm, __TopXMLNS, _acc) -> [encode_rsm_set(Rsm, __TopXMLNS) | _acc]. decode_mam_query_attr_queryid(__TopXMLNS, undefined) -> <<>>; decode_mam_query_attr_queryid(__TopXMLNS, _val) -> _val. encode_mam_query_attr_queryid(<<>>, _acc) -> _acc; encode_mam_query_attr_queryid(_val, _acc) -> [{<<"queryid">>, _val} | _acc]. decode_mam_query_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_mam_query_attr_xmlns(__TopXMLNS, _val) -> _val. decode_mam_withtext(__TopXMLNS, __IgnoreEls, {xmlel, <<"withtext">>, _attrs, _els}) -> Cdata = decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_mam_withtext_cdata(__TopXMLNS, Cdata); decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_mam_withtext_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_mam_withtext(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mam:tmp">>, [], __TopXMLNS), _els = encode_mam_withtext_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"withtext">>, _attrs, _els}. decode_mam_withtext_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"withtext">>, __TopXMLNS}}); decode_mam_withtext_cdata(__TopXMLNS, _val) -> _val. encode_mam_withtext_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_mam_with(__TopXMLNS, __IgnoreEls, {xmlel, <<"with">>, _attrs, _els}) -> Cdata = decode_mam_with_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_mam_with_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_mam_with_cdata(__TopXMLNS, Cdata); decode_mam_with_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_mam_with_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_mam_with_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_mam_with_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_mam_with(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mam:tmp">>, [], __TopXMLNS), _els = encode_mam_with_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"with">>, _attrs, _els}. decode_mam_with_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"with">>, __TopXMLNS}}); decode_mam_with_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"with">>, __TopXMLNS}}); _res -> _res end. encode_mam_with_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. decode_mam_end(__TopXMLNS, __IgnoreEls, {xmlel, <<"end">>, _attrs, _els}) -> Cdata = decode_mam_end_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_mam_end_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_mam_end_cdata(__TopXMLNS, Cdata); decode_mam_end_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_mam_end_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_mam_end_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_mam_end_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_mam_end(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mam:tmp">>, [], __TopXMLNS), _els = encode_mam_end_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"end">>, _attrs, _els}. decode_mam_end_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"end">>, __TopXMLNS}}); decode_mam_end_cdata(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"end">>, __TopXMLNS}}); _res -> _res end. encode_mam_end_cdata(_val, _acc) -> [{xmlcdata, enc_utc(_val)} | _acc]. decode_mam_start(__TopXMLNS, __IgnoreEls, {xmlel, <<"start">>, _attrs, _els}) -> Cdata = decode_mam_start_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_mam_start_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_mam_start_cdata(__TopXMLNS, Cdata); decode_mam_start_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_mam_start_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_mam_start_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_mam_start_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_mam_start(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mam:tmp">>, [], __TopXMLNS), _els = encode_mam_start_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"start">>, _attrs, _els}. decode_mam_start_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"start">>, __TopXMLNS}}); decode_mam_start_cdata(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"start">>, __TopXMLNS}}); _res -> _res end. encode_mam_start_cdata(_val, _acc) -> [{xmlcdata, enc_utc(_val)} | _acc]. decode_rsm_set(__TopXMLNS, __IgnoreEls, {xmlel, <<"set">>, _attrs, _els}) -> {After, Last, First, Count, Before, Max, Index} = decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined, undefined), {rsm_set, After, Before, Count, First, Index, Last, Max}. decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [], After, Last, First, Count, Before, Max, Index) -> {After, Last, First, Count, Before, Max, Index}; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"after">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, decode_rsm_after(__TopXMLNS, __IgnoreEls, _el), Last, First, Count, Before, Max, Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, decode_rsm_after(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Last, First, Count, Before, Max, Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"before">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, decode_rsm_before(__TopXMLNS, __IgnoreEls, _el), Max, Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, decode_rsm_before(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Max, Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"count">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, decode_rsm_count(__TopXMLNS, __IgnoreEls, _el), Before, Max, Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, decode_rsm_count(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Before, Max, Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"first">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, decode_rsm_first(__TopXMLNS, __IgnoreEls, _el), Count, Before, Max, Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, decode_rsm_first(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Count, Before, Max, Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"index">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, decode_rsm_index(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, decode_rsm_index(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el)); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"last">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, decode_rsm_last(__TopXMLNS, __IgnoreEls, _el), First, Count, Before, Max, Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, decode_rsm_last(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), First, Count, Before, Max, Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"max">>, _attrs, _} = _el | _els], After, Last, First, Count, Before, Max, Index) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, decode_rsm_max(__TopXMLNS, __IgnoreEls, _el), Index); <<"http://jabber.org/protocol/rsm">> -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, decode_rsm_max(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Index); _ -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index) end; decode_rsm_set_els(__TopXMLNS, __IgnoreEls, [_ | _els], After, Last, First, Count, Before, Max, Index) -> decode_rsm_set_els(__TopXMLNS, __IgnoreEls, _els, After, Last, First, Count, Before, Max, Index). encode_rsm_set({rsm_set, After, Before, Count, First, Index, Last, Max}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = lists:reverse('encode_rsm_set_$after'(After, __NewTopXMLNS, 'encode_rsm_set_$last'(Last, __NewTopXMLNS, 'encode_rsm_set_$first'(First, __NewTopXMLNS, 'encode_rsm_set_$count'(Count, __NewTopXMLNS, 'encode_rsm_set_$before'(Before, __NewTopXMLNS, 'encode_rsm_set_$max'(Max, __NewTopXMLNS, 'encode_rsm_set_$index'(Index, __NewTopXMLNS, [])))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"set">>, _attrs, _els}. 'encode_rsm_set_$after'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$after'(After, __TopXMLNS, _acc) -> [encode_rsm_after(After, __TopXMLNS) | _acc]. 'encode_rsm_set_$last'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$last'(Last, __TopXMLNS, _acc) -> [encode_rsm_last(Last, __TopXMLNS) | _acc]. 'encode_rsm_set_$first'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$first'(First, __TopXMLNS, _acc) -> [encode_rsm_first(First, __TopXMLNS) | _acc]. 'encode_rsm_set_$count'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$count'(Count, __TopXMLNS, _acc) -> [encode_rsm_count(Count, __TopXMLNS) | _acc]. 'encode_rsm_set_$before'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$before'(Before, __TopXMLNS, _acc) -> [encode_rsm_before(Before, __TopXMLNS) | _acc]. 'encode_rsm_set_$max'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$max'(Max, __TopXMLNS, _acc) -> [encode_rsm_max(Max, __TopXMLNS) | _acc]. 'encode_rsm_set_$index'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_rsm_set_$index'(Index, __TopXMLNS, _acc) -> [encode_rsm_index(Index, __TopXMLNS) | _acc]. decode_rsm_first(__TopXMLNS, __IgnoreEls, {xmlel, <<"first">>, _attrs, _els}) -> Data = decode_rsm_first_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Index = decode_rsm_first_attrs(__TopXMLNS, _attrs, undefined), {rsm_first, Index, Data}. decode_rsm_first_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_rsm_first_cdata(__TopXMLNS, Data); decode_rsm_first_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_rsm_first_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_first_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_rsm_first_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_rsm_first_attrs(__TopXMLNS, [{<<"index">>, _val} | _attrs], _Index) -> decode_rsm_first_attrs(__TopXMLNS, _attrs, _val); decode_rsm_first_attrs(__TopXMLNS, [_ | _attrs], Index) -> decode_rsm_first_attrs(__TopXMLNS, _attrs, Index); decode_rsm_first_attrs(__TopXMLNS, [], Index) -> decode_rsm_first_attr_index(__TopXMLNS, Index). encode_rsm_first({rsm_first, Index, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_first_cdata(Data, []), _attrs = encode_rsm_first_attr_index(Index, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"first">>, _attrs, _els}. decode_rsm_first_attr_index(__TopXMLNS, undefined) -> undefined; decode_rsm_first_attr_index(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"index">>, <<"first">>, __TopXMLNS}}); _res -> _res end. encode_rsm_first_attr_index(undefined, _acc) -> _acc; encode_rsm_first_attr_index(_val, _acc) -> [{<<"index">>, enc_int(_val)} | _acc]. decode_rsm_first_cdata(__TopXMLNS, <<>>) -> <<>>; decode_rsm_first_cdata(__TopXMLNS, _val) -> _val. encode_rsm_first_cdata(<<>>, _acc) -> _acc; encode_rsm_first_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_rsm_max(__TopXMLNS, __IgnoreEls, {xmlel, <<"max">>, _attrs, _els}) -> Cdata = decode_rsm_max_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_max_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_max_cdata(__TopXMLNS, Cdata); decode_rsm_max_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_max_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_max_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_max_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_max(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_max_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"max">>, _attrs, _els}. decode_rsm_max_cdata(__TopXMLNS, <<>>) -> undefined; decode_rsm_max_cdata(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"max">>, __TopXMLNS}}); _res -> _res end. encode_rsm_max_cdata(undefined, _acc) -> _acc; encode_rsm_max_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_rsm_index(__TopXMLNS, __IgnoreEls, {xmlel, <<"index">>, _attrs, _els}) -> Cdata = decode_rsm_index_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_index_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_index_cdata(__TopXMLNS, Cdata); decode_rsm_index_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_index_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_index_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_index_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_index(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_index_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"index">>, _attrs, _els}. decode_rsm_index_cdata(__TopXMLNS, <<>>) -> undefined; decode_rsm_index_cdata(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"index">>, __TopXMLNS}}); _res -> _res end. encode_rsm_index_cdata(undefined, _acc) -> _acc; encode_rsm_index_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_rsm_count(__TopXMLNS, __IgnoreEls, {xmlel, <<"count">>, _attrs, _els}) -> Cdata = decode_rsm_count_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_count_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_count_cdata(__TopXMLNS, Cdata); decode_rsm_count_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_count_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_count_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_count_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_count(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_count_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"count">>, _attrs, _els}. decode_rsm_count_cdata(__TopXMLNS, <<>>) -> undefined; decode_rsm_count_cdata(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"count">>, __TopXMLNS}}); _res -> _res end. encode_rsm_count_cdata(undefined, _acc) -> _acc; encode_rsm_count_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_rsm_last(__TopXMLNS, __IgnoreEls, {xmlel, <<"last">>, _attrs, _els}) -> Cdata = decode_rsm_last_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_last_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_last_cdata(__TopXMLNS, Cdata); decode_rsm_last_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_last_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_last_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_last_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_last(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_last_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"last">>, _attrs, _els}. decode_rsm_last_cdata(__TopXMLNS, <<>>) -> <<>>; decode_rsm_last_cdata(__TopXMLNS, _val) -> _val. encode_rsm_last_cdata(<<>>, _acc) -> _acc; encode_rsm_last_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_rsm_before(__TopXMLNS, __IgnoreEls, {xmlel, <<"before">>, _attrs, _els}) -> Cdata = decode_rsm_before_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_before_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_before_cdata(__TopXMLNS, Cdata); decode_rsm_before_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_before_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_before_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_before_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_before(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_before_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"before">>, _attrs, _els}. decode_rsm_before_cdata(__TopXMLNS, <<>>) -> <<>>; decode_rsm_before_cdata(__TopXMLNS, _val) -> _val. encode_rsm_before_cdata(<<>>, _acc) -> _acc; encode_rsm_before_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_rsm_after(__TopXMLNS, __IgnoreEls, {xmlel, <<"after">>, _attrs, _els}) -> Cdata = decode_rsm_after_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_rsm_after_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_rsm_after_cdata(__TopXMLNS, Cdata); decode_rsm_after_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_rsm_after_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_rsm_after_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_rsm_after_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_rsm_after(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/rsm">>, [], __TopXMLNS), _els = encode_rsm_after_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"after">>, _attrs, _els}. decode_rsm_after_cdata(__TopXMLNS, <<>>) -> <<>>; decode_rsm_after_cdata(__TopXMLNS, _val) -> _val. encode_rsm_after_cdata(<<>>, _acc) -> _acc; encode_rsm_after_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_muc_unsubscribe(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsubscribe">>, _attrs, _els}) -> {muc_unsubscribe}. encode_muc_unsubscribe({muc_unsubscribe}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mucsub:0">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsubscribe">>, _attrs, _els}. decode_muc_subscribe(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscribe">>, _attrs, _els}) -> Events = decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, _els, []), Nick = decode_muc_subscribe_attrs(__TopXMLNS, _attrs, undefined), {muc_subscribe, Nick, Events}. decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, [], Events) -> lists:reverse(Events); decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"event">>, _attrs, _} = _el | _els], Events) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mucsub:0">> -> decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_subscribe_event(__TopXMLNS, __IgnoreEls, _el) | Events]); <<"urn:xmpp:mucsub:0">> -> decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_subscribe_event(<<"urn:xmpp:mucsub:0">>, __IgnoreEls, _el) | Events]); _ -> decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, _els, Events) end; decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, [_ | _els], Events) -> decode_muc_subscribe_els(__TopXMLNS, __IgnoreEls, _els, Events). decode_muc_subscribe_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], _Nick) -> decode_muc_subscribe_attrs(__TopXMLNS, _attrs, _val); decode_muc_subscribe_attrs(__TopXMLNS, [_ | _attrs], Nick) -> decode_muc_subscribe_attrs(__TopXMLNS, _attrs, Nick); decode_muc_subscribe_attrs(__TopXMLNS, [], Nick) -> decode_muc_subscribe_attr_nick(__TopXMLNS, Nick). encode_muc_subscribe({muc_subscribe, Nick, Events}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mucsub:0">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_subscribe_$events'(Events, __NewTopXMLNS, [])), _attrs = encode_muc_subscribe_attr_nick(Nick, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"subscribe">>, _attrs, _els}. 'encode_muc_subscribe_$events'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_subscribe_$events'([Events | _els], __TopXMLNS, _acc) -> 'encode_muc_subscribe_$events'(_els, __TopXMLNS, [encode_muc_subscribe_event(Events, __TopXMLNS) | _acc]). decode_muc_subscribe_attr_nick(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"nick">>, <<"subscribe">>, __TopXMLNS}}); decode_muc_subscribe_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_subscribe_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_subscribe_event(__TopXMLNS, __IgnoreEls, {xmlel, <<"event">>, _attrs, _els}) -> Node = decode_muc_subscribe_event_attrs(__TopXMLNS, _attrs, undefined), Node. decode_muc_subscribe_event_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_muc_subscribe_event_attrs(__TopXMLNS, _attrs, _val); decode_muc_subscribe_event_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_muc_subscribe_event_attrs(__TopXMLNS, _attrs, Node); decode_muc_subscribe_event_attrs(__TopXMLNS, [], Node) -> decode_muc_subscribe_event_attr_node(__TopXMLNS, Node). encode_muc_subscribe_event(Node, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mucsub:0">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_subscribe_event_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"event">>, _attrs, _els}. decode_muc_subscribe_event_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"event">>, __TopXMLNS}}); decode_muc_subscribe_event_attr_node(__TopXMLNS, _val) -> _val. encode_muc_subscribe_event_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_muc_subscriptions(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscriptions">>, _attrs, _els}) -> List = decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, []), {muc_subscriptions, List}. decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, [], List) -> lists:reverse(List); decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription">>, _attrs, _} = _el | _els], List) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:mucsub:0">> -> decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_subscription(__TopXMLNS, __IgnoreEls, _el) | List]); <<"urn:xmpp:mucsub:0">> -> decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_subscription(<<"urn:xmpp:mucsub:0">>, __IgnoreEls, _el) | List]); _ -> decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, List) end; decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, [_ | _els], List) -> decode_muc_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, List). encode_muc_subscriptions({muc_subscriptions, List}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mucsub:0">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_subscriptions_$list'(List, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"subscriptions">>, _attrs, _els}. 'encode_muc_subscriptions_$list'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_subscriptions_$list'([List | _els], __TopXMLNS, _acc) -> 'encode_muc_subscriptions_$list'(_els, __TopXMLNS, [encode_muc_subscription(List, __TopXMLNS) | _acc]). decode_muc_subscription(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscription">>, _attrs, _els}) -> Jid = decode_muc_subscription_attrs(__TopXMLNS, _attrs, undefined), Jid. decode_muc_subscription_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid) -> decode_muc_subscription_attrs(__TopXMLNS, _attrs, _val); decode_muc_subscription_attrs(__TopXMLNS, [_ | _attrs], Jid) -> decode_muc_subscription_attrs(__TopXMLNS, _attrs, Jid); decode_muc_subscription_attrs(__TopXMLNS, [], Jid) -> decode_muc_subscription_attr_jid(__TopXMLNS, Jid). encode_muc_subscription(Jid, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:mucsub:0">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_subscription_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"subscription">>, _attrs, _els}. decode_muc_subscription_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"subscription">>, __TopXMLNS}}); decode_muc_subscription_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"subscription">>, __TopXMLNS}}); _res -> _res end. encode_muc_subscription_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_x_conference(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Jid, Password, Reason, Thread, Continue} = decode_x_conference_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {x_conference, Jid, Password, Reason, Continue, Thread}. decode_x_conference_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Password, Reason, Thread, Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, _val, Password, Reason, Thread, Continue); decode_x_conference_attrs(__TopXMLNS, [{<<"password">>, _val} | _attrs], Jid, _Password, Reason, Thread, Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, Jid, _val, Reason, Thread, Continue); decode_x_conference_attrs(__TopXMLNS, [{<<"reason">>, _val} | _attrs], Jid, Password, _Reason, Thread, Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, Jid, Password, _val, Thread, Continue); decode_x_conference_attrs(__TopXMLNS, [{<<"thread">>, _val} | _attrs], Jid, Password, Reason, _Thread, Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, Jid, Password, Reason, _val, Continue); decode_x_conference_attrs(__TopXMLNS, [{<<"continue">>, _val} | _attrs], Jid, Password, Reason, Thread, _Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, Jid, Password, Reason, Thread, _val); decode_x_conference_attrs(__TopXMLNS, [_ | _attrs], Jid, Password, Reason, Thread, Continue) -> decode_x_conference_attrs(__TopXMLNS, _attrs, Jid, Password, Reason, Thread, Continue); decode_x_conference_attrs(__TopXMLNS, [], Jid, Password, Reason, Thread, Continue) -> {decode_x_conference_attr_jid(__TopXMLNS, Jid), decode_x_conference_attr_password(__TopXMLNS, Password), decode_x_conference_attr_reason(__TopXMLNS, Reason), decode_x_conference_attr_thread(__TopXMLNS, Thread), decode_x_conference_attr_continue(__TopXMLNS, Continue)}. encode_x_conference({x_conference, Jid, Password, Reason, Continue, Thread}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:conference">>, [], __TopXMLNS), _els = [], _attrs = encode_x_conference_attr_continue(Continue, encode_x_conference_attr_thread(Thread, encode_x_conference_attr_reason(Reason, encode_x_conference_attr_password(Password, encode_x_conference_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"x">>, _attrs, _els}. decode_x_conference_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"x">>, __TopXMLNS}}); decode_x_conference_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_x_conference_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_x_conference_attr_password(__TopXMLNS, undefined) -> <<>>; decode_x_conference_attr_password(__TopXMLNS, _val) -> _val. encode_x_conference_attr_password(<<>>, _acc) -> _acc; encode_x_conference_attr_password(_val, _acc) -> [{<<"password">>, _val} | _acc]. decode_x_conference_attr_reason(__TopXMLNS, undefined) -> <<>>; decode_x_conference_attr_reason(__TopXMLNS, _val) -> _val. encode_x_conference_attr_reason(<<>>, _acc) -> _acc; encode_x_conference_attr_reason(_val, _acc) -> [{<<"reason">>, _val} | _acc]. decode_x_conference_attr_thread(__TopXMLNS, undefined) -> <<>>; decode_x_conference_attr_thread(__TopXMLNS, _val) -> _val. encode_x_conference_attr_thread(<<>>, _acc) -> _acc; encode_x_conference_attr_thread(_val, _acc) -> [{<<"thread">>, _val} | _acc]. decode_x_conference_attr_continue(__TopXMLNS, undefined) -> undefined; decode_x_conference_attr_continue(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"continue">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_x_conference_attr_continue(undefined, _acc) -> _acc; encode_x_conference_attr_continue(_val, _acc) -> [{<<"continue">>, enc_bool(_val)} | _acc]. decode_muc_unique(__TopXMLNS, __IgnoreEls, {xmlel, <<"unique">>, _attrs, _els}) -> Name = decode_muc_unique_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {muc_unique, Name}. decode_muc_unique_els(__TopXMLNS, __IgnoreEls, [], Name) -> decode_muc_unique_cdata(__TopXMLNS, Name); decode_muc_unique_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Name) -> decode_muc_unique_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_muc_unique_els(__TopXMLNS, __IgnoreEls, [_ | _els], Name) -> decode_muc_unique_els(__TopXMLNS, __IgnoreEls, _els, Name). encode_muc_unique({muc_unique, Name}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#unique">>, [], __TopXMLNS), _els = encode_muc_unique_cdata(Name, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unique">>, _attrs, _els}. decode_muc_unique_cdata(__TopXMLNS, <<>>) -> <<>>; decode_muc_unique_cdata(__TopXMLNS, _val) -> _val. encode_muc_unique_cdata(<<>>, _acc) -> _acc; encode_muc_unique_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_muc(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Password, History} = decode_muc_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {muc, History, Password}. decode_muc_els(__TopXMLNS, __IgnoreEls, [], Password, History) -> {Password, History}; decode_muc_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"history">>, _attrs, _} = _el | _els], Password, History) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_history(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_history(<<"http://jabber.org/protocol/muc">>, __IgnoreEls, _el)); _ -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, Password, History) end; decode_muc_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Password, History) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(__TopXMLNS, __IgnoreEls, _el), History); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el), History); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), History); <<"http://jabber.org/protocol/muc">> -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc">>, __IgnoreEls, _el), History); _ -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, Password, History) end; decode_muc_els(__TopXMLNS, __IgnoreEls, [_ | _els], Password, History) -> decode_muc_els(__TopXMLNS, __IgnoreEls, _els, Password, History). encode_muc({muc, History, Password}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_$password'(Password, __NewTopXMLNS, 'encode_muc_$history'(History, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"x">>, _attrs, _els}. 'encode_muc_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_$password'(Password, __TopXMLNS, _acc) -> [encode_muc_password(Password, __TopXMLNS) | _acc]. 'encode_muc_$history'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_$history'(History, __TopXMLNS, _acc) -> [encode_muc_history(History, __TopXMLNS) | _acc]. decode_muc_admin(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> Items = decode_muc_admin_els(__TopXMLNS, __IgnoreEls, _els, []), {muc_admin, Items}. decode_muc_admin_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_muc_admin_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_admin_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_admin_item(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el) | Items]); _ -> decode_muc_admin_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_muc_admin_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_muc_admin_els(__TopXMLNS, __IgnoreEls, _els, Items). encode_muc_admin({muc_admin, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#admin">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_admin_$items'(Items, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_muc_admin_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_admin_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_muc_admin_$items'(_els, __TopXMLNS, [encode_muc_admin_item(Items, __TopXMLNS) | _acc]). decode_muc_admin_continue(__TopXMLNS, __IgnoreEls, {xmlel, <<"continue">>, _attrs, _els}) -> Thread = decode_muc_admin_continue_attrs(__TopXMLNS, _attrs, undefined), Thread. decode_muc_admin_continue_attrs(__TopXMLNS, [{<<"thread">>, _val} | _attrs], _Thread) -> decode_muc_admin_continue_attrs(__TopXMLNS, _attrs, _val); decode_muc_admin_continue_attrs(__TopXMLNS, [_ | _attrs], Thread) -> decode_muc_admin_continue_attrs(__TopXMLNS, _attrs, Thread); decode_muc_admin_continue_attrs(__TopXMLNS, [], Thread) -> decode_muc_admin_continue_attr_thread(__TopXMLNS, Thread). encode_muc_admin_continue(Thread, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#admin">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_admin_continue_attr_thread(Thread, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"continue">>, _attrs, _els}. decode_muc_admin_continue_attr_thread(__TopXMLNS, undefined) -> <<>>; decode_muc_admin_continue_attr_thread(__TopXMLNS, _val) -> _val. encode_muc_admin_continue_attr_thread(<<>>, _acc) -> _acc; encode_muc_admin_continue_attr_thread(_val, _acc) -> [{<<"thread">>, _val} | _acc]. decode_muc_admin_actor(__TopXMLNS, __IgnoreEls, {xmlel, <<"actor">>, _attrs, _els}) -> {Jid, Nick} = decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, undefined, undefined), {muc_actor, Jid, Nick}. decode_muc_admin_actor_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Nick) -> decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, _val, Nick); decode_muc_admin_actor_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Jid, _Nick) -> decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, Jid, _val); decode_muc_admin_actor_attrs(__TopXMLNS, [_ | _attrs], Jid, Nick) -> decode_muc_admin_actor_attrs(__TopXMLNS, _attrs, Jid, Nick); decode_muc_admin_actor_attrs(__TopXMLNS, [], Jid, Nick) -> {decode_muc_admin_actor_attr_jid(__TopXMLNS, Jid), decode_muc_admin_actor_attr_nick(__TopXMLNS, Nick)}. encode_muc_admin_actor({muc_actor, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#admin">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_admin_actor_attr_nick(Nick, encode_muc_admin_actor_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"actor">>, _attrs, _els}. decode_muc_admin_actor_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_admin_actor_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"actor">>, __TopXMLNS}}); _res -> _res end. encode_muc_admin_actor_attr_jid(undefined, _acc) -> _acc; encode_muc_admin_actor_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_admin_actor_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_muc_admin_actor_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_admin_actor_attr_nick(<<>>, _acc) -> _acc; encode_muc_admin_actor_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_admin_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Actor, Continue, Reason} = decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, <<>>), {Affiliation, Role, Jid, Nick} = decode_muc_admin_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}. decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, [], Actor, Continue, Reason) -> {Actor, Continue, Reason}; decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"actor">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_admin_actor(__TopXMLNS, __IgnoreEls, _el), Continue, Reason); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_admin_actor(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el), Continue, Reason); _ -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, decode_muc_admin_continue(__TopXMLNS, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, decode_muc_admin_continue(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el), Reason); _ -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Actor, Continue, Reason) -> decode_muc_admin_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason). decode_muc_admin_item_attrs(__TopXMLNS, [{<<"affiliation">>, _val} | _attrs], _Affiliation, Role, Jid, Nick) -> decode_muc_admin_item_attrs(__TopXMLNS, _attrs, _val, Role, Jid, Nick); decode_muc_admin_item_attrs(__TopXMLNS, [{<<"role">>, _val} | _attrs], Affiliation, _Role, Jid, Nick) -> decode_muc_admin_item_attrs(__TopXMLNS, _attrs, Affiliation, _val, Jid, Nick); decode_muc_admin_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Affiliation, Role, _Jid, Nick) -> decode_muc_admin_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, _val, Nick); decode_muc_admin_item_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Affiliation, Role, Jid, _Nick) -> decode_muc_admin_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, _val); decode_muc_admin_item_attrs(__TopXMLNS, [_ | _attrs], Affiliation, Role, Jid, Nick) -> decode_muc_admin_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, Nick); decode_muc_admin_item_attrs(__TopXMLNS, [], Affiliation, Role, Jid, Nick) -> {decode_muc_admin_item_attr_affiliation(__TopXMLNS, Affiliation), decode_muc_admin_item_attr_role(__TopXMLNS, Role), decode_muc_admin_item_attr_jid(__TopXMLNS, Jid), decode_muc_admin_item_attr_nick(__TopXMLNS, Nick)}. encode_muc_admin_item({muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#admin">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_admin_item_$actor'(Actor, __NewTopXMLNS, 'encode_muc_admin_item_$continue'(Continue, __NewTopXMLNS, 'encode_muc_admin_item_$reason'(Reason, __NewTopXMLNS, [])))), _attrs = encode_muc_admin_item_attr_nick(Nick, encode_muc_admin_item_attr_jid(Jid, encode_muc_admin_item_attr_role(Role, encode_muc_admin_item_attr_affiliation(Affiliation, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"item">>, _attrs, _els}. 'encode_muc_admin_item_$actor'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_admin_item_$actor'(Actor, __TopXMLNS, _acc) -> [encode_muc_admin_actor(Actor, __TopXMLNS) | _acc]. 'encode_muc_admin_item_$continue'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_admin_item_$continue'(Continue, __TopXMLNS, _acc) -> [encode_muc_admin_continue(Continue, __TopXMLNS) | _acc]. 'encode_muc_admin_item_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_admin_item_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_admin_item_attr_affiliation(__TopXMLNS, undefined) -> undefined; decode_muc_admin_item_attr_affiliation(__TopXMLNS, _val) -> case catch dec_enum(_val, [admin, member, none, outcast, owner]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_admin_item_attr_affiliation(undefined, _acc) -> _acc; encode_muc_admin_item_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. decode_muc_admin_item_attr_role(__TopXMLNS, undefined) -> undefined; decode_muc_admin_item_attr_role(__TopXMLNS, _val) -> case catch dec_enum(_val, [moderator, none, participant, visitor]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"role">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_admin_item_attr_role(undefined, _acc) -> _acc; encode_muc_admin_item_attr_role(_val, _acc) -> [{<<"role">>, enc_enum(_val)} | _acc]. decode_muc_admin_item_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_admin_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_admin_item_attr_jid(undefined, _acc) -> _acc; encode_muc_admin_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_admin_item_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_muc_admin_item_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_admin_item_attr_nick(<<>>, _acc) -> _acc; encode_muc_admin_item_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_owner_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Actor, Continue, Reason} = decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, <<>>), {Affiliation, Role, Jid, Nick} = decode_muc_owner_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}. decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, [], Actor, Continue, Reason) -> {Actor, Continue, Reason}; decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"actor">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_admin_actor(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el), Continue, Reason); _ -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, decode_muc_admin_continue(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el), Reason); _ -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Actor, Continue, Reason) -> decode_muc_owner_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason). decode_muc_owner_item_attrs(__TopXMLNS, [{<<"affiliation">>, _val} | _attrs], _Affiliation, Role, Jid, Nick) -> decode_muc_owner_item_attrs(__TopXMLNS, _attrs, _val, Role, Jid, Nick); decode_muc_owner_item_attrs(__TopXMLNS, [{<<"role">>, _val} | _attrs], Affiliation, _Role, Jid, Nick) -> decode_muc_owner_item_attrs(__TopXMLNS, _attrs, Affiliation, _val, Jid, Nick); decode_muc_owner_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Affiliation, Role, _Jid, Nick) -> decode_muc_owner_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, _val, Nick); decode_muc_owner_item_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Affiliation, Role, Jid, _Nick) -> decode_muc_owner_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, _val); decode_muc_owner_item_attrs(__TopXMLNS, [_ | _attrs], Affiliation, Role, Jid, Nick) -> decode_muc_owner_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, Nick); decode_muc_owner_item_attrs(__TopXMLNS, [], Affiliation, Role, Jid, Nick) -> {decode_muc_owner_item_attr_affiliation(__TopXMLNS, Affiliation), decode_muc_owner_item_attr_role(__TopXMLNS, Role), decode_muc_owner_item_attr_jid(__TopXMLNS, Jid), decode_muc_owner_item_attr_nick(__TopXMLNS, Nick)}. encode_muc_owner_item({muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#owner">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_owner_item_$actor'(Actor, __NewTopXMLNS, 'encode_muc_owner_item_$continue'(Continue, __NewTopXMLNS, 'encode_muc_owner_item_$reason'(Reason, __NewTopXMLNS, [])))), _attrs = encode_muc_owner_item_attr_nick(Nick, encode_muc_owner_item_attr_jid(Jid, encode_muc_owner_item_attr_role(Role, encode_muc_owner_item_attr_affiliation(Affiliation, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"item">>, _attrs, _els}. 'encode_muc_owner_item_$actor'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_item_$actor'(Actor, __TopXMLNS, _acc) -> [encode_muc_admin_actor(Actor, __TopXMLNS) | _acc]. 'encode_muc_owner_item_$continue'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_item_$continue'(Continue, __TopXMLNS, _acc) -> [encode_muc_admin_continue(Continue, __TopXMLNS) | _acc]. 'encode_muc_owner_item_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_item_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_owner_item_attr_affiliation(__TopXMLNS, undefined) -> undefined; decode_muc_owner_item_attr_affiliation(__TopXMLNS, _val) -> case catch dec_enum(_val, [admin, member, none, outcast, owner]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_owner_item_attr_affiliation(undefined, _acc) -> _acc; encode_muc_owner_item_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. decode_muc_owner_item_attr_role(__TopXMLNS, undefined) -> undefined; decode_muc_owner_item_attr_role(__TopXMLNS, _val) -> case catch dec_enum(_val, [moderator, none, participant, visitor]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"role">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_owner_item_attr_role(undefined, _acc) -> _acc; encode_muc_owner_item_attr_role(_val, _acc) -> [{<<"role">>, enc_enum(_val)} | _acc]. decode_muc_owner_item_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_owner_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_owner_item_attr_jid(undefined, _acc) -> _acc; encode_muc_owner_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_owner_item_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_muc_owner_item_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_owner_item_attr_nick(<<>>, _acc) -> _acc; encode_muc_owner_item_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_owner(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Items, Config, Destroy} = decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, [], undefined, undefined), {muc_owner, Destroy, Config, Items}. decode_muc_owner_els(__TopXMLNS, __IgnoreEls, [], Items, Config, Destroy) -> {lists:reverse(Items), Config, Destroy}; decode_muc_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"destroy">>, _attrs, _} = _el | _els], Items, Config, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, decode_muc_destroy(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, decode_muc_destroy(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, decode_muc_destroy(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, Destroy) end; decode_muc_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Items, Config, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el), Destroy); _ -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, Destroy) end; decode_muc_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items, Config, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_owner_item(__TopXMLNS, __IgnoreEls, _el) | Items], Config, Destroy); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, [decode_muc_owner_item(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el) | Items], Config, Destroy); _ -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, Destroy) end; decode_muc_owner_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items, Config, Destroy) -> decode_muc_owner_els(__TopXMLNS, __IgnoreEls, _els, Items, Config, Destroy). encode_muc_owner({muc_owner, Destroy, Config, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#owner">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_owner_$items'(Items, __NewTopXMLNS, 'encode_muc_owner_$config'(Config, __NewTopXMLNS, 'encode_muc_owner_$destroy'(Destroy, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_muc_owner_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_muc_owner_$items'(_els, __TopXMLNS, [encode_muc_owner_item(Items, __TopXMLNS) | _acc]). 'encode_muc_owner_$config'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_$config'(Config, __TopXMLNS, _acc) -> [encode_xdata(Config, __TopXMLNS) | _acc]. 'encode_muc_owner_$destroy'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_owner_$destroy'(Destroy, __TopXMLNS, _acc) -> [encode_muc_destroy(Destroy, __TopXMLNS) | _acc]. decode_muc_password(__TopXMLNS, __IgnoreEls, {xmlel, <<"password">>, _attrs, _els}) -> Cdata = decode_muc_password_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_muc_password_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_muc_password_cdata(__TopXMLNS, Cdata); decode_muc_password_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_muc_password_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_muc_password_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_muc_password_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_muc_password(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/muc#owner">>, <<"http://jabber.org/protocol/muc#user">>, <<"http://jabber.org/protocol/muc">>], __TopXMLNS), _els = encode_muc_password_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"password">>, _attrs, _els}. decode_muc_password_cdata(__TopXMLNS, <<>>) -> <<>>; decode_muc_password_cdata(__TopXMLNS, _val) -> _val. encode_muc_password_cdata(<<>>, _acc) -> _acc; encode_muc_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_muc_user(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Status_codes, Items, Invites, Password, Decline, Destroy} = decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, [], [], [], undefined, undefined, undefined), {muc_user, Decline, Destroy, Invites, Items, Status_codes, Password}. decode_muc_user_els(__TopXMLNS, __IgnoreEls, [], Status_codes, Items, Invites, Password, Decline, Destroy) -> {lists:reverse(Status_codes), lists:reverse(Items), lists:reverse(Invites), Password, Decline, Destroy}; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"decline">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, decode_muc_user_decline(__TopXMLNS, __IgnoreEls, _el), Destroy); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, decode_muc_user_decline(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Destroy); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"destroy">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, decode_muc_destroy(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, decode_muc_destroy(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, decode_muc_destroy(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, decode_muc_password(__TopXMLNS, __IgnoreEls, _el), Decline, Destroy); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, decode_muc_password(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el), Decline, Destroy); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, decode_muc_password(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Decline, Destroy); <<"http://jabber.org/protocol/muc">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, decode_muc_password(<<"http://jabber.org/protocol/muc">>, __IgnoreEls, _el), Decline, Destroy); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invite">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, [decode_muc_user_invite(__TopXMLNS, __IgnoreEls, _el) | Invites], Password, Decline, Destroy); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, [decode_muc_user_invite(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el) | Invites], Password, Decline, Destroy); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, [decode_muc_user_item(__TopXMLNS, __IgnoreEls, _el) | Items], Invites, Password, Decline, Destroy); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, [decode_muc_user_item(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el) | Items], Invites, Password, Decline, Destroy); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"status">>, _attrs, _} = _el | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, case decode_muc_user_status(__TopXMLNS, __IgnoreEls, _el) of undefined -> Status_codes; _new_el -> [_new_el | Status_codes] end, Items, Invites, Password, Decline, Destroy); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, case decode_muc_user_status(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el) of undefined -> Status_codes; _new_el -> [_new_el | Status_codes] end, Items, Invites, Password, Decline, Destroy); _ -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy) end; decode_muc_user_els(__TopXMLNS, __IgnoreEls, [_ | _els], Status_codes, Items, Invites, Password, Decline, Destroy) -> decode_muc_user_els(__TopXMLNS, __IgnoreEls, _els, Status_codes, Items, Invites, Password, Decline, Destroy). encode_muc_user({muc_user, Decline, Destroy, Invites, Items, Status_codes, Password}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_user_$status_codes'(Status_codes, __NewTopXMLNS, 'encode_muc_user_$items'(Items, __NewTopXMLNS, 'encode_muc_user_$invites'(Invites, __NewTopXMLNS, 'encode_muc_user_$password'(Password, __NewTopXMLNS, 'encode_muc_user_$decline'(Decline, __NewTopXMLNS, 'encode_muc_user_$destroy'(Destroy, __NewTopXMLNS, []))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"x">>, _attrs, _els}. 'encode_muc_user_$status_codes'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$status_codes'([Status_codes | _els], __TopXMLNS, _acc) -> 'encode_muc_user_$status_codes'(_els, __TopXMLNS, [encode_muc_user_status(Status_codes, __TopXMLNS) | _acc]). 'encode_muc_user_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_muc_user_$items'(_els, __TopXMLNS, [encode_muc_user_item(Items, __TopXMLNS) | _acc]). 'encode_muc_user_$invites'([], __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$invites'([Invites | _els], __TopXMLNS, _acc) -> 'encode_muc_user_$invites'(_els, __TopXMLNS, [encode_muc_user_invite(Invites, __TopXMLNS) | _acc]). 'encode_muc_user_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$password'(Password, __TopXMLNS, _acc) -> [encode_muc_password(Password, __TopXMLNS) | _acc]. 'encode_muc_user_$decline'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$decline'(Decline, __TopXMLNS, _acc) -> [encode_muc_user_decline(Decline, __TopXMLNS) | _acc]. 'encode_muc_user_$destroy'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_$destroy'(Destroy, __TopXMLNS, _acc) -> [encode_muc_destroy(Destroy, __TopXMLNS) | _acc]. decode_muc_user_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Actor, Continue, Reason} = decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, <<>>), {Affiliation, Role, Jid, Nick} = decode_muc_user_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}. decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, [], Actor, Continue, Reason) -> {Actor, Continue, Reason}; decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"actor">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_user_actor(__TopXMLNS, __IgnoreEls, _el), Continue, Reason); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_user_actor(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Continue, Reason); _ -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, decode_muc_user_continue(__TopXMLNS, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, decode_muc_user_continue(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Reason); _ -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Actor, Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason) end; decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Actor, Continue, Reason) -> decode_muc_user_item_els(__TopXMLNS, __IgnoreEls, _els, Actor, Continue, Reason). decode_muc_user_item_attrs(__TopXMLNS, [{<<"affiliation">>, _val} | _attrs], _Affiliation, Role, Jid, Nick) -> decode_muc_user_item_attrs(__TopXMLNS, _attrs, _val, Role, Jid, Nick); decode_muc_user_item_attrs(__TopXMLNS, [{<<"role">>, _val} | _attrs], Affiliation, _Role, Jid, Nick) -> decode_muc_user_item_attrs(__TopXMLNS, _attrs, Affiliation, _val, Jid, Nick); decode_muc_user_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Affiliation, Role, _Jid, Nick) -> decode_muc_user_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, _val, Nick); decode_muc_user_item_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Affiliation, Role, Jid, _Nick) -> decode_muc_user_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, _val); decode_muc_user_item_attrs(__TopXMLNS, [_ | _attrs], Affiliation, Role, Jid, Nick) -> decode_muc_user_item_attrs(__TopXMLNS, _attrs, Affiliation, Role, Jid, Nick); decode_muc_user_item_attrs(__TopXMLNS, [], Affiliation, Role, Jid, Nick) -> {decode_muc_user_item_attr_affiliation(__TopXMLNS, Affiliation), decode_muc_user_item_attr_role(__TopXMLNS, Role), decode_muc_user_item_attr_jid(__TopXMLNS, Jid), decode_muc_user_item_attr_nick(__TopXMLNS, Nick)}. encode_muc_user_item({muc_item, Actor, Continue, Reason, Affiliation, Role, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_user_item_$actor'(Actor, __NewTopXMLNS, 'encode_muc_user_item_$continue'(Continue, __NewTopXMLNS, 'encode_muc_user_item_$reason'(Reason, __NewTopXMLNS, [])))), _attrs = encode_muc_user_item_attr_nick(Nick, encode_muc_user_item_attr_jid(Jid, encode_muc_user_item_attr_role(Role, encode_muc_user_item_attr_affiliation(Affiliation, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"item">>, _attrs, _els}. 'encode_muc_user_item_$actor'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_item_$actor'(Actor, __TopXMLNS, _acc) -> [encode_muc_user_actor(Actor, __TopXMLNS) | _acc]. 'encode_muc_user_item_$continue'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_item_$continue'(Continue, __TopXMLNS, _acc) -> [encode_muc_user_continue(Continue, __TopXMLNS) | _acc]. 'encode_muc_user_item_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_item_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_user_item_attr_affiliation(__TopXMLNS, undefined) -> undefined; decode_muc_user_item_attr_affiliation(__TopXMLNS, _val) -> case catch dec_enum(_val, [admin, member, none, outcast, owner]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_item_attr_affiliation(undefined, _acc) -> _acc; encode_muc_user_item_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_enum(_val)} | _acc]. decode_muc_user_item_attr_role(__TopXMLNS, undefined) -> undefined; decode_muc_user_item_attr_role(__TopXMLNS, _val) -> case catch dec_enum(_val, [moderator, none, participant, visitor]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"role">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_item_attr_role(undefined, _acc) -> _acc; encode_muc_user_item_attr_role(_val, _acc) -> [{<<"role">>, enc_enum(_val)} | _acc]. decode_muc_user_item_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_user_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_item_attr_jid(undefined, _acc) -> _acc; encode_muc_user_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_user_item_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_muc_user_item_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_user_item_attr_nick(<<>>, _acc) -> _acc; encode_muc_user_item_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_user_status(__TopXMLNS, __IgnoreEls, {xmlel, <<"status">>, _attrs, _els}) -> Code = decode_muc_user_status_attrs(__TopXMLNS, _attrs, undefined), Code. decode_muc_user_status_attrs(__TopXMLNS, [{<<"code">>, _val} | _attrs], _Code) -> decode_muc_user_status_attrs(__TopXMLNS, _attrs, _val); decode_muc_user_status_attrs(__TopXMLNS, [_ | _attrs], Code) -> decode_muc_user_status_attrs(__TopXMLNS, _attrs, Code); decode_muc_user_status_attrs(__TopXMLNS, [], Code) -> decode_muc_user_status_attr_code(__TopXMLNS, Code). encode_muc_user_status(Code, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_user_status_attr_code(Code, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"status">>, _attrs, _els}. decode_muc_user_status_attr_code(__TopXMLNS, undefined) -> undefined; decode_muc_user_status_attr_code(__TopXMLNS, _val) -> case catch dec_int(_val, 100, 999) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"code">>, <<"status">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_status_attr_code(undefined, _acc) -> _acc; encode_muc_user_status_attr_code(_val, _acc) -> [{<<"code">>, enc_int(_val)} | _acc]. decode_muc_user_continue(__TopXMLNS, __IgnoreEls, {xmlel, <<"continue">>, _attrs, _els}) -> Thread = decode_muc_user_continue_attrs(__TopXMLNS, _attrs, undefined), Thread. decode_muc_user_continue_attrs(__TopXMLNS, [{<<"thread">>, _val} | _attrs], _Thread) -> decode_muc_user_continue_attrs(__TopXMLNS, _attrs, _val); decode_muc_user_continue_attrs(__TopXMLNS, [_ | _attrs], Thread) -> decode_muc_user_continue_attrs(__TopXMLNS, _attrs, Thread); decode_muc_user_continue_attrs(__TopXMLNS, [], Thread) -> decode_muc_user_continue_attr_thread(__TopXMLNS, Thread). encode_muc_user_continue(Thread, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_user_continue_attr_thread(Thread, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"continue">>, _attrs, _els}. decode_muc_user_continue_attr_thread(__TopXMLNS, undefined) -> <<>>; decode_muc_user_continue_attr_thread(__TopXMLNS, _val) -> _val. encode_muc_user_continue_attr_thread(<<>>, _acc) -> _acc; encode_muc_user_continue_attr_thread(_val, _acc) -> [{<<"thread">>, _val} | _acc]. decode_muc_user_actor(__TopXMLNS, __IgnoreEls, {xmlel, <<"actor">>, _attrs, _els}) -> {Jid, Nick} = decode_muc_user_actor_attrs(__TopXMLNS, _attrs, undefined, undefined), {muc_actor, Jid, Nick}. decode_muc_user_actor_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Nick) -> decode_muc_user_actor_attrs(__TopXMLNS, _attrs, _val, Nick); decode_muc_user_actor_attrs(__TopXMLNS, [{<<"nick">>, _val} | _attrs], Jid, _Nick) -> decode_muc_user_actor_attrs(__TopXMLNS, _attrs, Jid, _val); decode_muc_user_actor_attrs(__TopXMLNS, [_ | _attrs], Jid, Nick) -> decode_muc_user_actor_attrs(__TopXMLNS, _attrs, Jid, Nick); decode_muc_user_actor_attrs(__TopXMLNS, [], Jid, Nick) -> {decode_muc_user_actor_attr_jid(__TopXMLNS, Jid), decode_muc_user_actor_attr_nick(__TopXMLNS, Nick)}. encode_muc_user_actor({muc_actor, Jid, Nick}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_user_actor_attr_nick(Nick, encode_muc_user_actor_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"actor">>, _attrs, _els}. decode_muc_user_actor_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_user_actor_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"actor">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_actor_attr_jid(undefined, _acc) -> _acc; encode_muc_user_actor_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_user_actor_attr_nick(__TopXMLNS, undefined) -> <<>>; decode_muc_user_actor_attr_nick(__TopXMLNS, _val) -> _val. encode_muc_user_actor_attr_nick(<<>>, _acc) -> _acc; encode_muc_user_actor_attr_nick(_val, _acc) -> [{<<"nick">>, _val} | _acc]. decode_muc_user_invite(__TopXMLNS, __IgnoreEls, {xmlel, <<"invite">>, _attrs, _els}) -> {Continue, Reason} = decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, undefined, <<>>), {To, From} = decode_muc_user_invite_attrs(__TopXMLNS, _attrs, undefined, undefined), {muc_invite, Reason, From, To, Continue}. decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, [], Continue, Reason) -> {Continue, Reason}; decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, Reason) end; decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"continue">>, _attrs, _} = _el | _els], Continue, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_user_continue(__TopXMLNS, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_user_continue(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Reason); _ -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, Reason) end; decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, [_ | _els], Continue, Reason) -> decode_muc_user_invite_els(__TopXMLNS, __IgnoreEls, _els, Continue, Reason). decode_muc_user_invite_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], _To, From) -> decode_muc_user_invite_attrs(__TopXMLNS, _attrs, _val, From); decode_muc_user_invite_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], To, _From) -> decode_muc_user_invite_attrs(__TopXMLNS, _attrs, To, _val); decode_muc_user_invite_attrs(__TopXMLNS, [_ | _attrs], To, From) -> decode_muc_user_invite_attrs(__TopXMLNS, _attrs, To, From); decode_muc_user_invite_attrs(__TopXMLNS, [], To, From) -> {decode_muc_user_invite_attr_to(__TopXMLNS, To), decode_muc_user_invite_attr_from(__TopXMLNS, From)}. encode_muc_user_invite({muc_invite, Reason, From, To, Continue}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_user_invite_$continue'(Continue, __NewTopXMLNS, 'encode_muc_user_invite_$reason'(Reason, __NewTopXMLNS, []))), _attrs = encode_muc_user_invite_attr_from(From, encode_muc_user_invite_attr_to(To, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"invite">>, _attrs, _els}. 'encode_muc_user_invite_$continue'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_invite_$continue'(Continue, __TopXMLNS, _acc) -> [encode_muc_user_continue(Continue, __TopXMLNS) | _acc]. 'encode_muc_user_invite_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_invite_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_user_invite_attr_to(__TopXMLNS, undefined) -> undefined; decode_muc_user_invite_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"invite">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_invite_attr_to(undefined, _acc) -> _acc; encode_muc_user_invite_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. decode_muc_user_invite_attr_from(__TopXMLNS, undefined) -> undefined; decode_muc_user_invite_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"invite">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_invite_attr_from(undefined, _acc) -> _acc; encode_muc_user_invite_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_muc_destroy(__TopXMLNS, __IgnoreEls, {xmlel, <<"destroy">>, _attrs, _els}) -> {Password, Reason} = decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, undefined, <<>>), {Jid, Xmlns} = decode_muc_destroy_attrs(__TopXMLNS, _attrs, undefined, undefined), {muc_destroy, Xmlns, Jid, Reason, Password}. decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, [], Password, Reason) -> {Password, Reason}; decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Password, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">>; __TopXMLNS == <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, Reason) end; decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Password, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">>; __TopXMLNS == <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(__TopXMLNS, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el), Reason); <<"http://jabber.org/protocol/muc">> -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_password(<<"http://jabber.org/protocol/muc">>, __IgnoreEls, _el), Reason); _ -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, Reason) end; decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, [_ | _els], Password, Reason) -> decode_muc_destroy_els(__TopXMLNS, __IgnoreEls, _els, Password, Reason). decode_muc_destroy_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Xmlns) -> decode_muc_destroy_attrs(__TopXMLNS, _attrs, _val, Xmlns); decode_muc_destroy_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Jid, _Xmlns) -> decode_muc_destroy_attrs(__TopXMLNS, _attrs, Jid, _val); decode_muc_destroy_attrs(__TopXMLNS, [_ | _attrs], Jid, Xmlns) -> decode_muc_destroy_attrs(__TopXMLNS, _attrs, Jid, Xmlns); decode_muc_destroy_attrs(__TopXMLNS, [], Jid, Xmlns) -> {decode_muc_destroy_attr_jid(__TopXMLNS, Jid), decode_muc_destroy_attr_xmlns(__TopXMLNS, Xmlns)}. encode_muc_destroy({muc_destroy, Xmlns, Jid, Reason, Password}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/muc#user">>, <<"http://jabber.org/protocol/muc#owner">>], __TopXMLNS), _els = lists:reverse('encode_muc_destroy_$password'(Password, __NewTopXMLNS, 'encode_muc_destroy_$reason'(Reason, __NewTopXMLNS, []))), _attrs = encode_muc_destroy_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"destroy">>, _attrs, _els}. 'encode_muc_destroy_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_muc_destroy_$password'(Password, __TopXMLNS, _acc) -> [encode_muc_password(Password, __TopXMLNS) | _acc]. 'encode_muc_destroy_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_destroy_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_destroy_attr_jid(__TopXMLNS, undefined) -> undefined; decode_muc_destroy_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"destroy">>, __TopXMLNS}}); _res -> _res end. encode_muc_destroy_attr_jid(undefined, _acc) -> _acc; encode_muc_destroy_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_muc_destroy_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_muc_destroy_attr_xmlns(__TopXMLNS, _val) -> _val. decode_muc_user_decline(__TopXMLNS, __IgnoreEls, {xmlel, <<"decline">>, _attrs, _els}) -> Reason = decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {To, From} = decode_muc_user_decline_attrs(__TopXMLNS, _attrs, undefined, undefined), {muc_decline, Reason, From, To}. decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, [], Reason) -> Reason; decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reason">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_reason(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#user">> -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_reason(<<"http://jabber.org/protocol/muc#user">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#admin">> -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_reason(<<"http://jabber.org/protocol/muc#admin">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/muc#owner">> -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, decode_muc_reason(<<"http://jabber.org/protocol/muc#owner">>, __IgnoreEls, _el)); _ -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, [_ | _els], Reason) -> decode_muc_user_decline_els(__TopXMLNS, __IgnoreEls, _els, Reason). decode_muc_user_decline_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], _To, From) -> decode_muc_user_decline_attrs(__TopXMLNS, _attrs, _val, From); decode_muc_user_decline_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], To, _From) -> decode_muc_user_decline_attrs(__TopXMLNS, _attrs, To, _val); decode_muc_user_decline_attrs(__TopXMLNS, [_ | _attrs], To, From) -> decode_muc_user_decline_attrs(__TopXMLNS, _attrs, To, From); decode_muc_user_decline_attrs(__TopXMLNS, [], To, From) -> {decode_muc_user_decline_attr_to(__TopXMLNS, To), decode_muc_user_decline_attr_from(__TopXMLNS, From)}. encode_muc_user_decline({muc_decline, Reason, From, To}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc#user">>, [], __TopXMLNS), _els = lists:reverse('encode_muc_user_decline_$reason'(Reason, __NewTopXMLNS, [])), _attrs = encode_muc_user_decline_attr_from(From, encode_muc_user_decline_attr_to(To, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"decline">>, _attrs, _els}. 'encode_muc_user_decline_$reason'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_muc_user_decline_$reason'(Reason, __TopXMLNS, _acc) -> [encode_muc_reason(Reason, __TopXMLNS) | _acc]. decode_muc_user_decline_attr_to(__TopXMLNS, undefined) -> undefined; decode_muc_user_decline_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"decline">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_decline_attr_to(undefined, _acc) -> _acc; encode_muc_user_decline_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. decode_muc_user_decline_attr_from(__TopXMLNS, undefined) -> undefined; decode_muc_user_decline_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"decline">>, __TopXMLNS}}); _res -> _res end. encode_muc_user_decline_attr_from(undefined, _acc) -> _acc; encode_muc_user_decline_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_muc_reason(__TopXMLNS, __IgnoreEls, {xmlel, <<"reason">>, _attrs, _els}) -> Cdata = decode_muc_reason_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_muc_reason_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_muc_reason_cdata(__TopXMLNS, Cdata); decode_muc_reason_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_muc_reason_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_muc_reason_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_muc_reason_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_muc_reason(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/muc#user">>, <<"http://jabber.org/protocol/muc#admin">>, <<"http://jabber.org/protocol/muc#owner">>], __TopXMLNS), _els = encode_muc_reason_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"reason">>, _attrs, _els}. decode_muc_reason_cdata(__TopXMLNS, <<>>) -> <<>>; decode_muc_reason_cdata(__TopXMLNS, _val) -> _val. encode_muc_reason_cdata(<<>>, _acc) -> _acc; encode_muc_reason_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_muc_history(__TopXMLNS, __IgnoreEls, {xmlel, <<"history">>, _attrs, _els}) -> {Maxchars, Maxstanzas, Seconds, Since} = decode_muc_history_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {muc_history, Maxchars, Maxstanzas, Seconds, Since}. decode_muc_history_attrs(__TopXMLNS, [{<<"maxchars">>, _val} | _attrs], _Maxchars, Maxstanzas, Seconds, Since) -> decode_muc_history_attrs(__TopXMLNS, _attrs, _val, Maxstanzas, Seconds, Since); decode_muc_history_attrs(__TopXMLNS, [{<<"maxstanzas">>, _val} | _attrs], Maxchars, _Maxstanzas, Seconds, Since) -> decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, _val, Seconds, Since); decode_muc_history_attrs(__TopXMLNS, [{<<"seconds">>, _val} | _attrs], Maxchars, Maxstanzas, _Seconds, Since) -> decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, Maxstanzas, _val, Since); decode_muc_history_attrs(__TopXMLNS, [{<<"since">>, _val} | _attrs], Maxchars, Maxstanzas, Seconds, _Since) -> decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, Maxstanzas, Seconds, _val); decode_muc_history_attrs(__TopXMLNS, [_ | _attrs], Maxchars, Maxstanzas, Seconds, Since) -> decode_muc_history_attrs(__TopXMLNS, _attrs, Maxchars, Maxstanzas, Seconds, Since); decode_muc_history_attrs(__TopXMLNS, [], Maxchars, Maxstanzas, Seconds, Since) -> {decode_muc_history_attr_maxchars(__TopXMLNS, Maxchars), decode_muc_history_attr_maxstanzas(__TopXMLNS, Maxstanzas), decode_muc_history_attr_seconds(__TopXMLNS, Seconds), decode_muc_history_attr_since(__TopXMLNS, Since)}. encode_muc_history({muc_history, Maxchars, Maxstanzas, Seconds, Since}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/muc">>, [], __TopXMLNS), _els = [], _attrs = encode_muc_history_attr_since(Since, encode_muc_history_attr_seconds(Seconds, encode_muc_history_attr_maxstanzas(Maxstanzas, encode_muc_history_attr_maxchars(Maxchars, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"history">>, _attrs, _els}. decode_muc_history_attr_maxchars(__TopXMLNS, undefined) -> undefined; decode_muc_history_attr_maxchars(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"maxchars">>, <<"history">>, __TopXMLNS}}); _res -> _res end. encode_muc_history_attr_maxchars(undefined, _acc) -> _acc; encode_muc_history_attr_maxchars(_val, _acc) -> [{<<"maxchars">>, enc_int(_val)} | _acc]. decode_muc_history_attr_maxstanzas(__TopXMLNS, undefined) -> undefined; decode_muc_history_attr_maxstanzas(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"maxstanzas">>, <<"history">>, __TopXMLNS}}); _res -> _res end. encode_muc_history_attr_maxstanzas(undefined, _acc) -> _acc; encode_muc_history_attr_maxstanzas(_val, _acc) -> [{<<"maxstanzas">>, enc_int(_val)} | _acc]. decode_muc_history_attr_seconds(__TopXMLNS, undefined) -> undefined; decode_muc_history_attr_seconds(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"seconds">>, <<"history">>, __TopXMLNS}}); _res -> _res end. encode_muc_history_attr_seconds(undefined, _acc) -> _acc; encode_muc_history_attr_seconds(_val, _acc) -> [{<<"seconds">>, enc_int(_val)} | _acc]. decode_muc_history_attr_since(__TopXMLNS, undefined) -> undefined; decode_muc_history_attr_since(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"since">>, <<"history">>, __TopXMLNS}}); _res -> _res end. encode_muc_history_attr_since(undefined, _acc) -> _acc; encode_muc_history_attr_since(_val, _acc) -> [{<<"since">>, enc_utc(_val)} | _acc]. decode_bytestreams(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Hosts, Used, Activate} = decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, [], undefined, undefined), {Dstaddr, Sid, Mode} = decode_bytestreams_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {bytestreams, Hosts, Used, Activate, Dstaddr, Mode, Sid}. decode_bytestreams_els(__TopXMLNS, __IgnoreEls, [], Hosts, Used, Activate) -> {lists:reverse(Hosts), Used, Activate}; decode_bytestreams_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"streamhost">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, [decode_bytestreams_streamhost(__TopXMLNS, __IgnoreEls, _el) | Hosts], Used, Activate); <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, [decode_bytestreams_streamhost(<<"http://jabber.org/protocol/bytestreams">>, __IgnoreEls, _el) | Hosts], Used, Activate); _ -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, Activate) end; decode_bytestreams_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"streamhost-used">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, decode_bytestreams_streamhost_used(__TopXMLNS, __IgnoreEls, _el), Activate); <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, decode_bytestreams_streamhost_used(<<"http://jabber.org/protocol/bytestreams">>, __IgnoreEls, _el), Activate); _ -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, Activate) end; decode_bytestreams_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"activate">>, _attrs, _} = _el | _els], Hosts, Used, Activate) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, decode_bytestreams_activate(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/bytestreams">> -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, decode_bytestreams_activate(<<"http://jabber.org/protocol/bytestreams">>, __IgnoreEls, _el)); _ -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, Activate) end; decode_bytestreams_els(__TopXMLNS, __IgnoreEls, [_ | _els], Hosts, Used, Activate) -> decode_bytestreams_els(__TopXMLNS, __IgnoreEls, _els, Hosts, Used, Activate). decode_bytestreams_attrs(__TopXMLNS, [{<<"dstaddr">>, _val} | _attrs], _Dstaddr, Sid, Mode) -> decode_bytestreams_attrs(__TopXMLNS, _attrs, _val, Sid, Mode); decode_bytestreams_attrs(__TopXMLNS, [{<<"sid">>, _val} | _attrs], Dstaddr, _Sid, Mode) -> decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, _val, Mode); decode_bytestreams_attrs(__TopXMLNS, [{<<"mode">>, _val} | _attrs], Dstaddr, Sid, _Mode) -> decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, Sid, _val); decode_bytestreams_attrs(__TopXMLNS, [_ | _attrs], Dstaddr, Sid, Mode) -> decode_bytestreams_attrs(__TopXMLNS, _attrs, Dstaddr, Sid, Mode); decode_bytestreams_attrs(__TopXMLNS, [], Dstaddr, Sid, Mode) -> {decode_bytestreams_attr_dstaddr(__TopXMLNS, Dstaddr), decode_bytestreams_attr_sid(__TopXMLNS, Sid), decode_bytestreams_attr_mode(__TopXMLNS, Mode)}. encode_bytestreams({bytestreams, Hosts, Used, Activate, Dstaddr, Mode, Sid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/bytestreams">>, [], __TopXMLNS), _els = lists:reverse('encode_bytestreams_$hosts'(Hosts, __NewTopXMLNS, 'encode_bytestreams_$used'(Used, __NewTopXMLNS, 'encode_bytestreams_$activate'(Activate, __NewTopXMLNS, [])))), _attrs = encode_bytestreams_attr_mode(Mode, encode_bytestreams_attr_sid(Sid, encode_bytestreams_attr_dstaddr(Dstaddr, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"query">>, _attrs, _els}. 'encode_bytestreams_$hosts'([], __TopXMLNS, _acc) -> _acc; 'encode_bytestreams_$hosts'([Hosts | _els], __TopXMLNS, _acc) -> 'encode_bytestreams_$hosts'(_els, __TopXMLNS, [encode_bytestreams_streamhost(Hosts, __TopXMLNS) | _acc]). 'encode_bytestreams_$used'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_bytestreams_$used'(Used, __TopXMLNS, _acc) -> [encode_bytestreams_streamhost_used(Used, __TopXMLNS) | _acc]. 'encode_bytestreams_$activate'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_bytestreams_$activate'(Activate, __TopXMLNS, _acc) -> [encode_bytestreams_activate(Activate, __TopXMLNS) | _acc]. decode_bytestreams_attr_dstaddr(__TopXMLNS, undefined) -> <<>>; decode_bytestreams_attr_dstaddr(__TopXMLNS, _val) -> _val. encode_bytestreams_attr_dstaddr(<<>>, _acc) -> _acc; encode_bytestreams_attr_dstaddr(_val, _acc) -> [{<<"dstaddr">>, _val} | _acc]. decode_bytestreams_attr_sid(__TopXMLNS, undefined) -> <<>>; decode_bytestreams_attr_sid(__TopXMLNS, _val) -> _val. encode_bytestreams_attr_sid(<<>>, _acc) -> _acc; encode_bytestreams_attr_sid(_val, _acc) -> [{<<"sid">>, _val} | _acc]. decode_bytestreams_attr_mode(__TopXMLNS, undefined) -> tcp; decode_bytestreams_attr_mode(__TopXMLNS, _val) -> case catch dec_enum(_val, [tcp, udp]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"mode">>, <<"query">>, __TopXMLNS}}); _res -> _res end. encode_bytestreams_attr_mode(tcp, _acc) -> _acc; encode_bytestreams_attr_mode(_val, _acc) -> [{<<"mode">>, enc_enum(_val)} | _acc]. decode_bytestreams_activate(__TopXMLNS, __IgnoreEls, {xmlel, <<"activate">>, _attrs, _els}) -> Cdata = decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_bytestreams_activate_cdata(__TopXMLNS, Cdata); decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_bytestreams_activate_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_bytestreams_activate(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/bytestreams">>, [], __TopXMLNS), _els = encode_bytestreams_activate_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"activate">>, _attrs, _els}. decode_bytestreams_activate_cdata(__TopXMLNS, <<>>) -> undefined; decode_bytestreams_activate_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"activate">>, __TopXMLNS}}); _res -> _res end. encode_bytestreams_activate_cdata(undefined, _acc) -> _acc; encode_bytestreams_activate_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. decode_bytestreams_streamhost_used(__TopXMLNS, __IgnoreEls, {xmlel, <<"streamhost-used">>, _attrs, _els}) -> Jid = decode_bytestreams_streamhost_used_attrs(__TopXMLNS, _attrs, undefined), Jid. decode_bytestreams_streamhost_used_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid) -> decode_bytestreams_streamhost_used_attrs(__TopXMLNS, _attrs, _val); decode_bytestreams_streamhost_used_attrs(__TopXMLNS, [_ | _attrs], Jid) -> decode_bytestreams_streamhost_used_attrs(__TopXMLNS, _attrs, Jid); decode_bytestreams_streamhost_used_attrs(__TopXMLNS, [], Jid) -> decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, Jid). encode_bytestreams_streamhost_used(Jid, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/bytestreams">>, [], __TopXMLNS), _els = [], _attrs = encode_bytestreams_streamhost_used_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"streamhost-used">>, _attrs, _els}. decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"streamhost-used">>, __TopXMLNS}}); decode_bytestreams_streamhost_used_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"streamhost-used">>, __TopXMLNS}}); _res -> _res end. encode_bytestreams_streamhost_used_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_bytestreams_streamhost(__TopXMLNS, __IgnoreEls, {xmlel, <<"streamhost">>, _attrs, _els}) -> {Jid, Host, Port} = decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {streamhost, Jid, Host, Port}. decode_bytestreams_streamhost_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Host, Port) -> decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, _val, Host, Port); decode_bytestreams_streamhost_attrs(__TopXMLNS, [{<<"host">>, _val} | _attrs], Jid, _Host, Port) -> decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, Jid, _val, Port); decode_bytestreams_streamhost_attrs(__TopXMLNS, [{<<"port">>, _val} | _attrs], Jid, Host, _Port) -> decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, Jid, Host, _val); decode_bytestreams_streamhost_attrs(__TopXMLNS, [_ | _attrs], Jid, Host, Port) -> decode_bytestreams_streamhost_attrs(__TopXMLNS, _attrs, Jid, Host, Port); decode_bytestreams_streamhost_attrs(__TopXMLNS, [], Jid, Host, Port) -> {decode_bytestreams_streamhost_attr_jid(__TopXMLNS, Jid), decode_bytestreams_streamhost_attr_host(__TopXMLNS, Host), decode_bytestreams_streamhost_attr_port(__TopXMLNS, Port)}. encode_bytestreams_streamhost({streamhost, Jid, Host, Port}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/bytestreams">>, [], __TopXMLNS), _els = [], _attrs = encode_bytestreams_streamhost_attr_port(Port, encode_bytestreams_streamhost_attr_host(Host, encode_bytestreams_streamhost_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"streamhost">>, _attrs, _els}. decode_bytestreams_streamhost_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"streamhost">>, __TopXMLNS}}); decode_bytestreams_streamhost_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"streamhost">>, __TopXMLNS}}); _res -> _res end. encode_bytestreams_streamhost_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_bytestreams_streamhost_attr_host(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"host">>, <<"streamhost">>, __TopXMLNS}}); decode_bytestreams_streamhost_attr_host(__TopXMLNS, _val) -> _val. encode_bytestreams_streamhost_attr_host(_val, _acc) -> [{<<"host">>, _val} | _acc]. decode_bytestreams_streamhost_attr_port(__TopXMLNS, undefined) -> 1080; decode_bytestreams_streamhost_attr_port(__TopXMLNS, _val) -> case catch dec_int(_val, 0, 65535) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"port">>, <<"streamhost">>, __TopXMLNS}}); _res -> _res end. encode_bytestreams_streamhost_attr_port(1080, _acc) -> _acc; encode_bytestreams_streamhost_attr_port(_val, _acc) -> [{<<"port">>, enc_int(_val)} | _acc]. decode_delay(__TopXMLNS, __IgnoreEls, {xmlel, <<"delay">>, _attrs, _els}) -> Desc = decode_delay_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {Stamp, From} = decode_delay_attrs(__TopXMLNS, _attrs, undefined, undefined), {delay, Stamp, From, Desc}. decode_delay_els(__TopXMLNS, __IgnoreEls, [], Desc) -> decode_delay_cdata(__TopXMLNS, Desc); decode_delay_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Desc) -> decode_delay_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_delay_els(__TopXMLNS, __IgnoreEls, [_ | _els], Desc) -> decode_delay_els(__TopXMLNS, __IgnoreEls, _els, Desc). decode_delay_attrs(__TopXMLNS, [{<<"stamp">>, _val} | _attrs], _Stamp, From) -> decode_delay_attrs(__TopXMLNS, _attrs, _val, From); decode_delay_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], Stamp, _From) -> decode_delay_attrs(__TopXMLNS, _attrs, Stamp, _val); decode_delay_attrs(__TopXMLNS, [_ | _attrs], Stamp, From) -> decode_delay_attrs(__TopXMLNS, _attrs, Stamp, From); decode_delay_attrs(__TopXMLNS, [], Stamp, From) -> {decode_delay_attr_stamp(__TopXMLNS, Stamp), decode_delay_attr_from(__TopXMLNS, From)}. encode_delay({delay, Stamp, From, Desc}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:delay">>, [], __TopXMLNS), _els = encode_delay_cdata(Desc, []), _attrs = encode_delay_attr_from(From, encode_delay_attr_stamp(Stamp, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"delay">>, _attrs, _els}. decode_delay_attr_stamp(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"stamp">>, <<"delay">>, __TopXMLNS}}); decode_delay_attr_stamp(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"stamp">>, <<"delay">>, __TopXMLNS}}); _res -> _res end. encode_delay_attr_stamp(_val, _acc) -> [{<<"stamp">>, enc_utc(_val)} | _acc]. decode_delay_attr_from(__TopXMLNS, undefined) -> undefined; decode_delay_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"delay">>, __TopXMLNS}}); _res -> _res end. encode_delay_attr_from(undefined, _acc) -> _acc; encode_delay_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_delay_cdata(__TopXMLNS, <<>>) -> <<>>; decode_delay_cdata(__TopXMLNS, _val) -> _val. encode_delay_cdata(<<>>, _acc) -> _acc; encode_delay_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_chatstate_paused(__TopXMLNS, __IgnoreEls, {xmlel, <<"paused">>, _attrs, _els}) -> {chatstate, paused}. encode_chatstate_paused({chatstate, paused}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/chatstates">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"paused">>, _attrs, _els}. decode_chatstate_inactive(__TopXMLNS, __IgnoreEls, {xmlel, <<"inactive">>, _attrs, _els}) -> {chatstate, inactive}. encode_chatstate_inactive({chatstate, inactive}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/chatstates">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"inactive">>, _attrs, _els}. decode_chatstate_gone(__TopXMLNS, __IgnoreEls, {xmlel, <<"gone">>, _attrs, _els}) -> {chatstate, gone}. encode_chatstate_gone({chatstate, gone}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/chatstates">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"gone">>, _attrs, _els}. decode_chatstate_composing(__TopXMLNS, __IgnoreEls, {xmlel, <<"composing">>, _attrs, _els}) -> {chatstate, composing}. encode_chatstate_composing({chatstate, composing}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/chatstates">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"composing">>, _attrs, _els}. decode_chatstate_active(__TopXMLNS, __IgnoreEls, {xmlel, <<"active">>, _attrs, _els}) -> {chatstate, active}. encode_chatstate_active({chatstate, active}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/chatstates">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"active">>, _attrs, _els}. decode_shim_headers(__TopXMLNS, __IgnoreEls, {xmlel, <<"headers">>, _attrs, _els}) -> Headers = decode_shim_headers_els(__TopXMLNS, __IgnoreEls, _els, []), {shim, Headers}. decode_shim_headers_els(__TopXMLNS, __IgnoreEls, [], Headers) -> lists:reverse(Headers); decode_shim_headers_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"header">>, _attrs, _} = _el | _els], Headers) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/shim">> -> decode_shim_headers_els(__TopXMLNS, __IgnoreEls, _els, [decode_shim_header(__TopXMLNS, __IgnoreEls, _el) | Headers]); <<"http://jabber.org/protocol/shim">> -> decode_shim_headers_els(__TopXMLNS, __IgnoreEls, _els, [decode_shim_header(<<"http://jabber.org/protocol/shim">>, __IgnoreEls, _el) | Headers]); _ -> decode_shim_headers_els(__TopXMLNS, __IgnoreEls, _els, Headers) end; decode_shim_headers_els(__TopXMLNS, __IgnoreEls, [_ | _els], Headers) -> decode_shim_headers_els(__TopXMLNS, __IgnoreEls, _els, Headers). encode_shim_headers({shim, Headers}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/shim">>, [], __TopXMLNS), _els = lists:reverse('encode_shim_headers_$headers'(Headers, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"headers">>, _attrs, _els}. 'encode_shim_headers_$headers'([], __TopXMLNS, _acc) -> _acc; 'encode_shim_headers_$headers'([Headers | _els], __TopXMLNS, _acc) -> 'encode_shim_headers_$headers'(_els, __TopXMLNS, [encode_shim_header(Headers, __TopXMLNS) | _acc]). decode_shim_header(__TopXMLNS, __IgnoreEls, {xmlel, <<"header">>, _attrs, _els}) -> Cdata = decode_shim_header_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Name = decode_shim_header_attrs(__TopXMLNS, _attrs, undefined), {Name, Cdata}. decode_shim_header_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_shim_header_cdata(__TopXMLNS, Cdata); decode_shim_header_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_shim_header_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_shim_header_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_shim_header_els(__TopXMLNS, __IgnoreEls, _els, Cdata). decode_shim_header_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name) -> decode_shim_header_attrs(__TopXMLNS, _attrs, _val); decode_shim_header_attrs(__TopXMLNS, [_ | _attrs], Name) -> decode_shim_header_attrs(__TopXMLNS, _attrs, Name); decode_shim_header_attrs(__TopXMLNS, [], Name) -> decode_shim_header_attr_name(__TopXMLNS, Name). encode_shim_header({Name, Cdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/shim">>, [], __TopXMLNS), _els = encode_shim_header_cdata(Cdata, []), _attrs = encode_shim_header_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"header">>, _attrs, _els}. decode_shim_header_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"header">>, __TopXMLNS}}); decode_shim_header_attr_name(__TopXMLNS, _val) -> _val. encode_shim_header_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_shim_header_cdata(__TopXMLNS, <<>>) -> <<>>; decode_shim_header_cdata(__TopXMLNS, _val) -> _val. encode_shim_header_cdata(<<>>, _acc) -> _acc; encode_shim_header_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_pubsub_error_unsupported_access_model(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported-access-model">>, _attrs, _els}) -> {ps_error, 'unsupported-access-model', undefined}. encode_pubsub_error_unsupported_access_model({ps_error, 'unsupported-access-model', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsupported-access-model">>, _attrs, _els}. decode_pubsub_error_unsupported(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported">>, _attrs, _els}) -> Feature = decode_pubsub_error_unsupported_attrs(__TopXMLNS, _attrs, undefined), {ps_error, unsupported, Feature}. decode_pubsub_error_unsupported_attrs(__TopXMLNS, [{<<"feature">>, _val} | _attrs], _Feature) -> decode_pubsub_error_unsupported_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_error_unsupported_attrs(__TopXMLNS, [_ | _attrs], Feature) -> decode_pubsub_error_unsupported_attrs(__TopXMLNS, _attrs, Feature); decode_pubsub_error_unsupported_attrs(__TopXMLNS, [], Feature) -> decode_pubsub_error_unsupported_attr_feature(__TopXMLNS, Feature). encode_pubsub_error_unsupported({ps_error, unsupported, Feature}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = encode_pubsub_error_unsupported_attr_feature(Feature, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"unsupported">>, _attrs, _els}. decode_pubsub_error_unsupported_attr_feature(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"feature">>, <<"unsupported">>, __TopXMLNS}}); decode_pubsub_error_unsupported_attr_feature(__TopXMLNS, _val) -> case catch dec_enum(_val, ['access-authorize', 'access-open', 'access-presence', 'access-roster', 'access-whitelist', 'auto-create', 'auto-subscribe', collections, 'config-node', 'create-and-configure', 'create-nodes', 'delete-items', 'delete-nodes', 'filtered-notifications', 'get-pending', 'instant-nodes', 'item-ids', 'last-published', 'leased-subscription', 'manage-subscriptions', 'member-affiliation', 'meta-data', 'modify-affiliations', 'multi-collection', 'multi-subscribe', 'outcast-affiliation', 'persistent-items', 'presence-notifications', 'presence-subscribe', publish, 'publish-options', 'publish-only-affiliation', 'publisher-affiliation', 'purge-nodes', 'retract-items', 'retrieve-affiliations', 'retrieve-default', 'retrieve-items', 'retrieve-subscriptions', subscribe, 'subscription-options', 'subscription-notifications']) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"feature">>, <<"unsupported">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_error_unsupported_attr_feature(_val, _acc) -> [{<<"feature">>, enc_enum(_val)} | _acc]. decode_pubsub_error_too_many_subscriptions(__TopXMLNS, __IgnoreEls, {xmlel, <<"too-many-subscriptions">>, _attrs, _els}) -> {ps_error, 'too-many-subscriptions', undefined}. encode_pubsub_error_too_many_subscriptions({ps_error, 'too-many-subscriptions', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"too-many-subscriptions">>, _attrs, _els}. decode_pubsub_error_subid_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"subid-required">>, _attrs, _els}) -> {ps_error, 'subid-required', undefined}. encode_pubsub_error_subid_required({ps_error, 'subid-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"subid-required">>, _attrs, _els}. decode_pubsub_error_presence_subscription_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"presence-subscription-required">>, _attrs, _els}) -> {ps_error, 'presence-subscription-required', undefined}. encode_pubsub_error_presence_subscription_required({ps_error, 'presence-subscription-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"presence-subscription-required">>, _attrs, _els}. decode_pubsub_error_pending_subscription(__TopXMLNS, __IgnoreEls, {xmlel, <<"pending-subscription">>, _attrs, _els}) -> {ps_error, 'pending-subscription', undefined}. encode_pubsub_error_pending_subscription({ps_error, 'pending-subscription', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"pending-subscription">>, _attrs, _els}. decode_pubsub_error_payload_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"payload-required">>, _attrs, _els}) -> {ps_error, 'payload-required', undefined}. encode_pubsub_error_payload_required({ps_error, 'payload-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"payload-required">>, _attrs, _els}. decode_pubsub_error_payload_too_big(__TopXMLNS, __IgnoreEls, {xmlel, <<"payload-too-big">>, _attrs, _els}) -> {ps_error, 'payload-too-big', undefined}. encode_pubsub_error_payload_too_big({ps_error, 'payload-too-big', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"payload-too-big">>, _attrs, _els}. decode_pubsub_error_not_subscribed(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-subscribed">>, _attrs, _els}) -> {ps_error, 'not-subscribed', undefined}. encode_pubsub_error_not_subscribed({ps_error, 'not-subscribed', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-subscribed">>, _attrs, _els}. decode_pubsub_error_not_in_roster_group(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-in-roster-group">>, _attrs, _els}) -> {ps_error, 'not-in-roster-group', undefined}. encode_pubsub_error_not_in_roster_group({ps_error, 'not-in-roster-group', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-in-roster-group">>, _attrs, _els}. decode_pubsub_error_nodeid_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"nodeid-required">>, _attrs, _els}) -> {ps_error, 'nodeid-required', undefined}. encode_pubsub_error_nodeid_required({ps_error, 'nodeid-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"nodeid-required">>, _attrs, _els}. decode_pubsub_error_max_nodes_exceeded(__TopXMLNS, __IgnoreEls, {xmlel, <<"max-nodes-exceeded">>, _attrs, _els}) -> {ps_error, 'max-nodes-exceeded', undefined}. encode_pubsub_error_max_nodes_exceeded({ps_error, 'max-nodes-exceeded', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"max-nodes-exceeded">>, _attrs, _els}. decode_pubsub_error_max_items_exceeded(__TopXMLNS, __IgnoreEls, {xmlel, <<"max-items-exceeded">>, _attrs, _els}) -> {ps_error, 'max-items-exceeded', undefined}. encode_pubsub_error_max_items_exceeded({ps_error, 'max-items-exceeded', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"max-items-exceeded">>, _attrs, _els}. decode_pubsub_error_jid_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"jid-required">>, _attrs, _els}) -> {ps_error, 'jid-required', undefined}. encode_pubsub_error_jid_required({ps_error, 'jid-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"jid-required">>, _attrs, _els}. decode_pubsub_error_item_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"item-required">>, _attrs, _els}) -> {ps_error, 'item-required', undefined}. encode_pubsub_error_item_required({ps_error, 'item-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"item-required">>, _attrs, _els}. decode_pubsub_error_item_forbidden(__TopXMLNS, __IgnoreEls, {xmlel, <<"item-forbidden">>, _attrs, _els}) -> {ps_error, 'item-forbidden', undefined}. encode_pubsub_error_item_forbidden({ps_error, 'item-forbidden', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"item-forbidden">>, _attrs, _els}. decode_pubsub_error_invalid_subid(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-subid">>, _attrs, _els}) -> {ps_error, 'invalid-subid', undefined}. encode_pubsub_error_invalid_subid({ps_error, 'invalid-subid', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-subid">>, _attrs, _els}. decode_pubsub_error_invalid_payload(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-payload">>, _attrs, _els}) -> {ps_error, 'invalid-payload', undefined}. encode_pubsub_error_invalid_payload({ps_error, 'invalid-payload', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-payload">>, _attrs, _els}. decode_pubsub_error_invalid_options(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-options">>, _attrs, _els}) -> {ps_error, 'invalid-options', undefined}. encode_pubsub_error_invalid_options({ps_error, 'invalid-options', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-options">>, _attrs, _els}. decode_pubsub_error_invalid_jid(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-jid">>, _attrs, _els}) -> {ps_error, 'invalid-jid', undefined}. encode_pubsub_error_invalid_jid({ps_error, 'invalid-jid', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-jid">>, _attrs, _els}. decode_pubsub_error_configuration_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"configuration-required">>, _attrs, _els}) -> {ps_error, 'configuration-required', undefined}. encode_pubsub_error_configuration_required({ps_error, 'configuration-required', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"configuration-required">>, _attrs, _els}. decode_pubsub_error_closed_node(__TopXMLNS, __IgnoreEls, {xmlel, <<"closed-node">>, _attrs, _els}) -> {ps_error, 'closed-node', undefined}. encode_pubsub_error_closed_node({ps_error, 'closed-node', _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#errors">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"closed-node">>, _attrs, _els}. decode_pubsub_owner(__TopXMLNS, __IgnoreEls, {xmlel, <<"pubsub">>, _attrs, _els}) -> {Subscriptions, Affiliations, Default, Purge, Delete, Configure} = decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined), {pubsub_owner, Affiliations, Configure, Default, Delete, Purge, Subscriptions}. decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> {Subscriptions, Affiliations, Default, Purge, Delete, Configure}; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"affiliations">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, decode_pubsub_owner_affiliations(__TopXMLNS, __IgnoreEls, _el), Default, Purge, Delete, Configure); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, decode_pubsub_owner_affiliations(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Default, Purge, Delete, Configure); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"configure">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, decode_pubsub_configure(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el)); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"default">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, decode_pubsub_default(__TopXMLNS, __IgnoreEls, _el), Purge, Delete, Configure); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, decode_pubsub_default(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Purge, Delete, Configure); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, decode_pubsub_default(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Purge, Delete, Configure); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delete">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, decode_pubsub_delete(__TopXMLNS, __IgnoreEls, _el), Configure); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Configure); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Configure); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Configure); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"purge">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, decode_pubsub_purge(__TopXMLNS, __IgnoreEls, _el), Delete, Configure); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Delete, Configure); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Delete, Configure); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Delete, Configure); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscriptions">>, _attrs, _} = _el | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_subscriptions(__TopXMLNS, __IgnoreEls, _el), Affiliations, Default, Purge, Delete, Configure); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Affiliations, Default, Purge, Delete, Configure); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Affiliations, Default, Purge, Delete, Configure); _ -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure) end; decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, [_ | _els], Subscriptions, Affiliations, Default, Purge, Delete, Configure) -> decode_pubsub_owner_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions, Affiliations, Default, Purge, Delete, Configure). encode_pubsub_owner({pubsub_owner, Affiliations, Configure, Default, Delete, Purge, Subscriptions}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#owner">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_owner_$subscriptions'(Subscriptions, __NewTopXMLNS, 'encode_pubsub_owner_$affiliations'(Affiliations, __NewTopXMLNS, 'encode_pubsub_owner_$default'(Default, __NewTopXMLNS, 'encode_pubsub_owner_$purge'(Purge, __NewTopXMLNS, 'encode_pubsub_owner_$delete'(Delete, __NewTopXMLNS, 'encode_pubsub_owner_$configure'(Configure, __NewTopXMLNS, []))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"pubsub">>, _attrs, _els}. 'encode_pubsub_owner_$subscriptions'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$subscriptions'(Subscriptions, __TopXMLNS, _acc) -> [encode_pubsub_subscriptions(Subscriptions, __TopXMLNS) | _acc]. 'encode_pubsub_owner_$affiliations'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$affiliations'(Affiliations, __TopXMLNS, _acc) -> [encode_pubsub_owner_affiliations(Affiliations, __TopXMLNS) | _acc]. 'encode_pubsub_owner_$default'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$default'(Default, __TopXMLNS, _acc) -> [encode_pubsub_default(Default, __TopXMLNS) | _acc]. 'encode_pubsub_owner_$purge'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$purge'(Purge, __TopXMLNS, _acc) -> [encode_pubsub_purge(Purge, __TopXMLNS) | _acc]. 'encode_pubsub_owner_$delete'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$delete'(Delete, __TopXMLNS, _acc) -> [encode_pubsub_delete(Delete, __TopXMLNS) | _acc]. 'encode_pubsub_owner_$configure'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_$configure'(Configure, __TopXMLNS, _acc) -> [encode_pubsub_configure(Configure, __TopXMLNS) | _acc]. decode_pubsub(__TopXMLNS, __IgnoreEls, {xmlel, <<"pubsub">>, _attrs, _els}) -> {Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription} = decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined), {pubsub, Subscriptions, Subscription, Affiliations, Publish, Publish_options, Subscribe, Unsubscribe, Options, Items, Retract, Create, Configure, Default, Delete, Purge, Rsm}. decode_pubsub_els(__TopXMLNS, __IgnoreEls, [], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> {Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription}; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscriptions">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, decode_pubsub_subscriptions(__TopXMLNS, __IgnoreEls, _el), Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, decode_pubsub_subscriptions(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"affiliations">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, decode_pubsub_affiliations(__TopXMLNS, __IgnoreEls, _el), Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, decode_pubsub_affiliations(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscribe">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, decode_pubsub_subscribe(__TopXMLNS, __IgnoreEls, _el), Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, decode_pubsub_subscribe(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unsubscribe">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, decode_pubsub_unsubscribe(__TopXMLNS, __IgnoreEls, _el), Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, decode_pubsub_unsubscribe(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"options">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, decode_pubsub_options(__TopXMLNS, __IgnoreEls, _el), Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, decode_pubsub_options(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"items">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, decode_pubsub_items(__TopXMLNS, __IgnoreEls, _el), Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, decode_pubsub_items(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, decode_pubsub_items(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"retract">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, decode_pubsub_retract(__TopXMLNS, __IgnoreEls, _el), Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, decode_pubsub_retract(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"create">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, decode_pubsub_create(__TopXMLNS, __IgnoreEls, _el), Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, decode_pubsub_create(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, decode_pubsub_create(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"configure">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, decode_pubsub_configure(__TopXMLNS, __IgnoreEls, _el), Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, decode_pubsub_configure(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"publish-options">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_publish_options(__TopXMLNS, __IgnoreEls, _el), Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_publish_options(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"default">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, decode_pubsub_default(__TopXMLNS, __IgnoreEls, _el), Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, decode_pubsub_default(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, decode_pubsub_default(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delete">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, decode_pubsub_delete(__TopXMLNS, __IgnoreEls, _el), Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"purge">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, decode_pubsub_purge(__TopXMLNS, __IgnoreEls, _el), Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, decode_pubsub_subscription(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el)); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"set">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/rsm">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el), Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"publish">>, _attrs, _} = _el | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, decode_pubsub_publish(__TopXMLNS, __IgnoreEls, _el), Rsm, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, decode_pubsub_publish(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Rsm, Subscription); _ -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) end; decode_pubsub_els(__TopXMLNS, __IgnoreEls, [_ | _els], Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription) -> decode_pubsub_els(__TopXMLNS, __IgnoreEls, _els, Publish_options, Items, Options, Affiliations, Subscriptions, Default, Retract, Purge, Delete, Configure, Create, Unsubscribe, Subscribe, Publish, Rsm, Subscription). encode_pubsub({pubsub, Subscriptions, Subscription, Affiliations, Publish, Publish_options, Subscribe, Unsubscribe, Options, Items, Retract, Create, Configure, Default, Delete, Purge, Rsm}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_$publish_options'(Publish_options, __NewTopXMLNS, 'encode_pubsub_$items'(Items, __NewTopXMLNS, 'encode_pubsub_$options'(Options, __NewTopXMLNS, 'encode_pubsub_$affiliations'(Affiliations, __NewTopXMLNS, 'encode_pubsub_$subscriptions'(Subscriptions, __NewTopXMLNS, 'encode_pubsub_$default'(Default, __NewTopXMLNS, 'encode_pubsub_$retract'(Retract, __NewTopXMLNS, 'encode_pubsub_$purge'(Purge, __NewTopXMLNS, 'encode_pubsub_$delete'(Delete, __NewTopXMLNS, 'encode_pubsub_$configure'(Configure, __NewTopXMLNS, 'encode_pubsub_$create'(Create, __NewTopXMLNS, 'encode_pubsub_$unsubscribe'(Unsubscribe, __NewTopXMLNS, 'encode_pubsub_$subscribe'(Subscribe, __NewTopXMLNS, 'encode_pubsub_$publish'(Publish, __NewTopXMLNS, 'encode_pubsub_$rsm'(Rsm, __NewTopXMLNS, 'encode_pubsub_$subscription'(Subscription, __NewTopXMLNS, []))))))))))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"pubsub">>, _attrs, _els}. 'encode_pubsub_$publish_options'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$publish_options'(Publish_options, __TopXMLNS, _acc) -> [encode_pubsub_publish_options(Publish_options, __TopXMLNS) | _acc]. 'encode_pubsub_$items'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$items'(Items, __TopXMLNS, _acc) -> [encode_pubsub_items(Items, __TopXMLNS) | _acc]. 'encode_pubsub_$options'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$options'(Options, __TopXMLNS, _acc) -> [encode_pubsub_options(Options, __TopXMLNS) | _acc]. 'encode_pubsub_$affiliations'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$affiliations'(Affiliations, __TopXMLNS, _acc) -> [encode_pubsub_affiliations(Affiliations, __TopXMLNS) | _acc]. 'encode_pubsub_$subscriptions'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$subscriptions'(Subscriptions, __TopXMLNS, _acc) -> [encode_pubsub_subscriptions(Subscriptions, __TopXMLNS) | _acc]. 'encode_pubsub_$default'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$default'(Default, __TopXMLNS, _acc) -> [encode_pubsub_default(Default, __TopXMLNS) | _acc]. 'encode_pubsub_$retract'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$retract'(Retract, __TopXMLNS, _acc) -> [encode_pubsub_retract(Retract, __TopXMLNS) | _acc]. 'encode_pubsub_$purge'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$purge'(Purge, __TopXMLNS, _acc) -> [encode_pubsub_purge(Purge, __TopXMLNS) | _acc]. 'encode_pubsub_$delete'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$delete'(Delete, __TopXMLNS, _acc) -> [encode_pubsub_delete(Delete, __TopXMLNS) | _acc]. 'encode_pubsub_$configure'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$configure'(Configure, __TopXMLNS, _acc) -> [encode_pubsub_configure(Configure, __TopXMLNS) | _acc]. 'encode_pubsub_$create'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$create'(Create, __TopXMLNS, _acc) -> [encode_pubsub_create(Create, __TopXMLNS) | _acc]. 'encode_pubsub_$unsubscribe'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$unsubscribe'(Unsubscribe, __TopXMLNS, _acc) -> [encode_pubsub_unsubscribe(Unsubscribe, __TopXMLNS) | _acc]. 'encode_pubsub_$subscribe'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$subscribe'(Subscribe, __TopXMLNS, _acc) -> [encode_pubsub_subscribe(Subscribe, __TopXMLNS) | _acc]. 'encode_pubsub_$publish'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$publish'(Publish, __TopXMLNS, _acc) -> [encode_pubsub_publish(Publish, __TopXMLNS) | _acc]. 'encode_pubsub_$rsm'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$rsm'(Rsm, __TopXMLNS, _acc) -> [encode_rsm_set(Rsm, __TopXMLNS) | _acc]. 'encode_pubsub_$subscription'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_$subscription'(Subscription, __TopXMLNS, _acc) -> [encode_pubsub_subscription(Subscription, __TopXMLNS) | _acc]. decode_pubsub_purge(__TopXMLNS, __IgnoreEls, {xmlel, <<"purge">>, _attrs, _els}) -> Node = decode_pubsub_purge_attrs(__TopXMLNS, _attrs, undefined), Node. decode_pubsub_purge_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_purge_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_purge_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_purge_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_purge_attrs(__TopXMLNS, [], Node) -> decode_pubsub_purge_attr_node(__TopXMLNS, Node). encode_pubsub_purge(Node, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_purge_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"purge">>, _attrs, _els}. decode_pubsub_purge_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"purge">>, __TopXMLNS}}); decode_pubsub_purge_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_purge_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_delete(__TopXMLNS, __IgnoreEls, {xmlel, <<"delete">>, _attrs, _els}) -> Uri = decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Node = decode_pubsub_delete_attrs(__TopXMLNS, _attrs, undefined), {Node, Uri}. decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, [], Uri) -> Uri; decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Uri) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">>; __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">>; __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_redirect(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_redirect(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el)); _ -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, Uri) end; decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, [_ | _els], Uri) -> decode_pubsub_delete_els(__TopXMLNS, __IgnoreEls, _els, Uri). decode_pubsub_delete_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_delete_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_delete_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_delete_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_delete_attrs(__TopXMLNS, [], Node) -> decode_pubsub_delete_attr_node(__TopXMLNS, Node). encode_pubsub_delete({Node, Uri}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = lists:reverse('encode_pubsub_delete_$uri'(Uri, __NewTopXMLNS, [])), _attrs = encode_pubsub_delete_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"delete">>, _attrs, _els}. 'encode_pubsub_delete_$uri'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_delete_$uri'(Uri, __TopXMLNS, _acc) -> [encode_pubsub_redirect(Uri, __TopXMLNS) | _acc]. decode_pubsub_delete_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"delete">>, __TopXMLNS}}); decode_pubsub_delete_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_delete_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_redirect(__TopXMLNS, __IgnoreEls, {xmlel, <<"redirect">>, _attrs, _els}) -> Uri = decode_pubsub_redirect_attrs(__TopXMLNS, _attrs, undefined), Uri. decode_pubsub_redirect_attrs(__TopXMLNS, [{<<"uri">>, _val} | _attrs], _Uri) -> decode_pubsub_redirect_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_redirect_attrs(__TopXMLNS, [_ | _attrs], Uri) -> decode_pubsub_redirect_attrs(__TopXMLNS, _attrs, Uri); decode_pubsub_redirect_attrs(__TopXMLNS, [], Uri) -> decode_pubsub_redirect_attr_uri(__TopXMLNS, Uri). encode_pubsub_redirect(Uri, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_redirect_attr_uri(Uri, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"redirect">>, _attrs, _els}. decode_pubsub_redirect_attr_uri(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"uri">>, <<"redirect">>, __TopXMLNS}}); decode_pubsub_redirect_attr_uri(__TopXMLNS, _val) -> _val. encode_pubsub_redirect_attr_uri(_val, _acc) -> [{<<"uri">>, _val} | _acc]. decode_pubsub_default(__TopXMLNS, __IgnoreEls, {xmlel, <<"default">>, _attrs, _els}) -> Xdata = decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, _els, undefined), Node = decode_pubsub_default_attrs(__TopXMLNS, _attrs, undefined), {Node, Xdata}. decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> Xdata; decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_pubsub_default_els(__TopXMLNS, __IgnoreEls, _els, Xdata). decode_pubsub_default_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_default_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_default_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_default_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_default_attrs(__TopXMLNS, [], Node) -> decode_pubsub_default_attr_node(__TopXMLNS, Node). encode_pubsub_default({Node, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>], __TopXMLNS), _els = lists:reverse('encode_pubsub_default_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = encode_pubsub_default_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"default">>, _attrs, _els}. 'encode_pubsub_default_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_default_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_pubsub_default_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_default_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_default_attr_node(<<>>, _acc) -> _acc; encode_pubsub_default_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_publish_options(__TopXMLNS, __IgnoreEls, {xmlel, <<"publish-options">>, _attrs, _els}) -> Xdata = decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, _els, undefined), Xdata. decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> Xdata; decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_pubsub_publish_options_els(__TopXMLNS, __IgnoreEls, _els, Xdata). encode_pubsub_publish_options(Xdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_publish_options_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"publish-options">>, _attrs, _els}. 'encode_pubsub_publish_options_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_publish_options_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_pubsub_configure(__TopXMLNS, __IgnoreEls, {xmlel, <<"configure">>, _attrs, _els}) -> Xdata = decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, _els, undefined), Node = decode_pubsub_configure_attrs(__TopXMLNS, _attrs, undefined), {Node, Xdata}. decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> Xdata; decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_pubsub_configure_els(__TopXMLNS, __IgnoreEls, _els, Xdata). decode_pubsub_configure_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_configure_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_configure_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_configure_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_configure_attrs(__TopXMLNS, [], Node) -> decode_pubsub_configure_attr_node(__TopXMLNS, Node). encode_pubsub_configure({Node, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>], __TopXMLNS), _els = lists:reverse('encode_pubsub_configure_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = encode_pubsub_configure_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"configure">>, _attrs, _els}. 'encode_pubsub_configure_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_configure_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_pubsub_configure_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_configure_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_configure_attr_node(<<>>, _acc) -> _acc; encode_pubsub_configure_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_create(__TopXMLNS, __IgnoreEls, {xmlel, <<"create">>, _attrs, _els}) -> Node = decode_pubsub_create_attrs(__TopXMLNS, _attrs, undefined), Node. decode_pubsub_create_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_create_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_create_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_create_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_create_attrs(__TopXMLNS, [], Node) -> decode_pubsub_create_attr_node(__TopXMLNS, Node). encode_pubsub_create(Node, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_create_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"create">>, _attrs, _els}. decode_pubsub_create_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_create_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_create_attr_node(<<>>, _acc) -> _acc; encode_pubsub_create_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_retract(__TopXMLNS, __IgnoreEls, {xmlel, <<"retract">>, _attrs, _els}) -> Items = decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, []), {Node, Notify} = decode_pubsub_retract_attrs(__TopXMLNS, _attrs, undefined, undefined), {ps_retract, Node, Notify, Items}. decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el) | Items]); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el) | Items]); _ -> decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_pubsub_retract_els(__TopXMLNS, __IgnoreEls, _els, Items). decode_pubsub_retract_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Notify) -> decode_pubsub_retract_attrs(__TopXMLNS, _attrs, _val, Notify); decode_pubsub_retract_attrs(__TopXMLNS, [{<<"notify">>, _val} | _attrs], Node, _Notify) -> decode_pubsub_retract_attrs(__TopXMLNS, _attrs, Node, _val); decode_pubsub_retract_attrs(__TopXMLNS, [_ | _attrs], Node, Notify) -> decode_pubsub_retract_attrs(__TopXMLNS, _attrs, Node, Notify); decode_pubsub_retract_attrs(__TopXMLNS, [], Node, Notify) -> {decode_pubsub_retract_attr_node(__TopXMLNS, Node), decode_pubsub_retract_attr_notify(__TopXMLNS, Notify)}. encode_pubsub_retract({ps_retract, Node, Notify, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_retract_$items'(Items, __NewTopXMLNS, [])), _attrs = encode_pubsub_retract_attr_notify(Notify, encode_pubsub_retract_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"retract">>, _attrs, _els}. 'encode_pubsub_retract_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_retract_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_pubsub_retract_$items'(_els, __TopXMLNS, [encode_pubsub_item(Items, __TopXMLNS) | _acc]). decode_pubsub_retract_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"retract">>, __TopXMLNS}}); decode_pubsub_retract_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_retract_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_retract_attr_notify(__TopXMLNS, undefined) -> false; decode_pubsub_retract_attr_notify(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"notify">>, <<"retract">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_retract_attr_notify(false, _acc) -> _acc; encode_pubsub_retract_attr_notify(_val, _acc) -> [{<<"notify">>, enc_bool(_val)} | _acc]. decode_pubsub_options(__TopXMLNS, __IgnoreEls, {xmlel, <<"options">>, _attrs, _els}) -> Xdata = decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, _els, undefined), {Node, Subid, Jid} = decode_pubsub_options_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {ps_options, Node, Jid, Subid, Xdata}. decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> Xdata; decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_pubsub_options_els(__TopXMLNS, __IgnoreEls, _els, Xdata). decode_pubsub_options_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Subid, Jid) -> decode_pubsub_options_attrs(__TopXMLNS, _attrs, _val, Subid, Jid); decode_pubsub_options_attrs(__TopXMLNS, [{<<"subid">>, _val} | _attrs], Node, _Subid, Jid) -> decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, _val, Jid); decode_pubsub_options_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Node, Subid, _Jid) -> decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, Subid, _val); decode_pubsub_options_attrs(__TopXMLNS, [_ | _attrs], Node, Subid, Jid) -> decode_pubsub_options_attrs(__TopXMLNS, _attrs, Node, Subid, Jid); decode_pubsub_options_attrs(__TopXMLNS, [], Node, Subid, Jid) -> {decode_pubsub_options_attr_node(__TopXMLNS, Node), decode_pubsub_options_attr_subid(__TopXMLNS, Subid), decode_pubsub_options_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_options({ps_options, Node, Jid, Subid, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_options_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = encode_pubsub_options_attr_jid(Jid, encode_pubsub_options_attr_subid(Subid, encode_pubsub_options_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"options">>, _attrs, _els}. 'encode_pubsub_options_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_options_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_pubsub_options_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_options_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_options_attr_node(<<>>, _acc) -> _acc; encode_pubsub_options_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_options_attr_subid(__TopXMLNS, undefined) -> <<>>; decode_pubsub_options_attr_subid(__TopXMLNS, _val) -> _val. encode_pubsub_options_attr_subid(<<>>, _acc) -> _acc; encode_pubsub_options_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. decode_pubsub_options_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"options">>, __TopXMLNS}}); decode_pubsub_options_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"options">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_options_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_pubsub_publish(__TopXMLNS, __IgnoreEls, {xmlel, <<"publish">>, _attrs, _els}) -> Items = decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, []), Node = decode_pubsub_publish_attrs(__TopXMLNS, _attrs, undefined), {ps_publish, Node, Items}. decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el) | Items]); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el) | Items]); _ -> decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_pubsub_publish_els(__TopXMLNS, __IgnoreEls, _els, Items). decode_pubsub_publish_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_publish_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_publish_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_publish_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_publish_attrs(__TopXMLNS, [], Node) -> decode_pubsub_publish_attr_node(__TopXMLNS, Node). encode_pubsub_publish({ps_publish, Node, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_publish_$items'(Items, __NewTopXMLNS, [])), _attrs = encode_pubsub_publish_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"publish">>, _attrs, _els}. 'encode_pubsub_publish_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_publish_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_pubsub_publish_$items'(_els, __TopXMLNS, [encode_pubsub_item(Items, __TopXMLNS) | _acc]). decode_pubsub_publish_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"publish">>, __TopXMLNS}}); decode_pubsub_publish_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_publish_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_unsubscribe(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsubscribe">>, _attrs, _els}) -> {Node, Subid, Jid} = decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {ps_unsubscribe, Node, Jid, Subid}. decode_pubsub_unsubscribe_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Subid, Jid) -> decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, _val, Subid, Jid); decode_pubsub_unsubscribe_attrs(__TopXMLNS, [{<<"subid">>, _val} | _attrs], Node, _Subid, Jid) -> decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, Node, _val, Jid); decode_pubsub_unsubscribe_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Node, Subid, _Jid) -> decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, Node, Subid, _val); decode_pubsub_unsubscribe_attrs(__TopXMLNS, [_ | _attrs], Node, Subid, Jid) -> decode_pubsub_unsubscribe_attrs(__TopXMLNS, _attrs, Node, Subid, Jid); decode_pubsub_unsubscribe_attrs(__TopXMLNS, [], Node, Subid, Jid) -> {decode_pubsub_unsubscribe_attr_node(__TopXMLNS, Node), decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, Subid), decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_unsubscribe({ps_unsubscribe, Node, Jid, Subid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = [], _attrs = encode_pubsub_unsubscribe_attr_jid(Jid, encode_pubsub_unsubscribe_attr_subid(Subid, encode_pubsub_unsubscribe_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"unsubscribe">>, _attrs, _els}. decode_pubsub_unsubscribe_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_unsubscribe_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_unsubscribe_attr_node(<<>>, _acc) -> _acc; encode_pubsub_unsubscribe_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, undefined) -> <<>>; decode_pubsub_unsubscribe_attr_subid(__TopXMLNS, _val) -> _val. encode_pubsub_unsubscribe_attr_subid(<<>>, _acc) -> _acc; encode_pubsub_unsubscribe_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"unsubscribe">>, __TopXMLNS}}); decode_pubsub_unsubscribe_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"unsubscribe">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_unsubscribe_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_pubsub_subscribe(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscribe">>, _attrs, _els}) -> {Node, Jid} = decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, undefined, undefined), {ps_subscribe, Node, Jid}. decode_pubsub_subscribe_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Jid) -> decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, _val, Jid); decode_pubsub_subscribe_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Node, _Jid) -> decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, Node, _val); decode_pubsub_subscribe_attrs(__TopXMLNS, [_ | _attrs], Node, Jid) -> decode_pubsub_subscribe_attrs(__TopXMLNS, _attrs, Node, Jid); decode_pubsub_subscribe_attrs(__TopXMLNS, [], Node, Jid) -> {decode_pubsub_subscribe_attr_node(__TopXMLNS, Node), decode_pubsub_subscribe_attr_jid(__TopXMLNS, Jid)}. encode_pubsub_subscribe({ps_subscribe, Node, Jid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = [], _attrs = encode_pubsub_subscribe_attr_jid(Jid, encode_pubsub_subscribe_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"subscribe">>, _attrs, _els}. decode_pubsub_subscribe_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_subscribe_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_subscribe_attr_node(<<>>, _acc) -> _acc; encode_pubsub_subscribe_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_subscribe_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"subscribe">>, __TopXMLNS}}); decode_pubsub_subscribe_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"subscribe">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_subscribe_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_pubsub_owner_affiliations(__TopXMLNS, __IgnoreEls, {xmlel, <<"affiliations">>, _attrs, _els}) -> Affiliations = decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, _els, []), Node = decode_pubsub_owner_affiliations_attrs(__TopXMLNS, _attrs, undefined), {Node, Affiliations}. decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, [], Affiliations) -> lists:reverse(Affiliations); decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"affiliation">>, _attrs, _} = _el | _els], Affiliations) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_owner_affiliation(__TopXMLNS, __IgnoreEls, _el) | Affiliations]); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_owner_affiliation(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el) | Affiliations]); _ -> decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, _els, Affiliations) end; decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, [_ | _els], Affiliations) -> decode_pubsub_owner_affiliations_els(__TopXMLNS, __IgnoreEls, _els, Affiliations). decode_pubsub_owner_affiliations_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_owner_affiliations_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_owner_affiliations_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_owner_affiliations_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_owner_affiliations_attrs(__TopXMLNS, [], Node) -> decode_pubsub_owner_affiliations_attr_node(__TopXMLNS, Node). encode_pubsub_owner_affiliations({Node, Affiliations}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#owner">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_owner_affiliations_$affiliations'(Affiliations, __NewTopXMLNS, [])), _attrs = encode_pubsub_owner_affiliations_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"affiliations">>, _attrs, _els}. 'encode_pubsub_owner_affiliations_$affiliations'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_owner_affiliations_$affiliations'([Affiliations | _els], __TopXMLNS, _acc) -> 'encode_pubsub_owner_affiliations_$affiliations'(_els, __TopXMLNS, [encode_pubsub_owner_affiliation(Affiliations, __TopXMLNS) | _acc]). decode_pubsub_owner_affiliations_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_owner_affiliations_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_owner_affiliations_attr_node(<<>>, _acc) -> _acc; encode_pubsub_owner_affiliations_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_affiliations(__TopXMLNS, __IgnoreEls, {xmlel, <<"affiliations">>, _attrs, _els}) -> Affiliations = decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, _els, []), Node = decode_pubsub_affiliations_attrs(__TopXMLNS, _attrs, undefined), {Node, Affiliations}. decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, [], Affiliations) -> lists:reverse(Affiliations); decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"affiliation">>, _attrs, _} = _el | _els], Affiliations) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_affiliation(__TopXMLNS, __IgnoreEls, _el) | Affiliations]); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_affiliation(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el) | Affiliations]); _ -> decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, _els, Affiliations) end; decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, [_ | _els], Affiliations) -> decode_pubsub_affiliations_els(__TopXMLNS, __IgnoreEls, _els, Affiliations). decode_pubsub_affiliations_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_affiliations_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_affiliations_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_affiliations_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_affiliations_attrs(__TopXMLNS, [], Node) -> decode_pubsub_affiliations_attr_node(__TopXMLNS, Node). encode_pubsub_affiliations({Node, Affiliations}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_affiliations_$affiliations'(Affiliations, __NewTopXMLNS, [])), _attrs = encode_pubsub_affiliations_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"affiliations">>, _attrs, _els}. 'encode_pubsub_affiliations_$affiliations'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_affiliations_$affiliations'([Affiliations | _els], __TopXMLNS, _acc) -> 'encode_pubsub_affiliations_$affiliations'(_els, __TopXMLNS, [encode_pubsub_affiliation(Affiliations, __TopXMLNS) | _acc]). decode_pubsub_affiliations_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_affiliations_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_affiliations_attr_node(<<>>, _acc) -> _acc; encode_pubsub_affiliations_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_subscriptions(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscriptions">>, _attrs, _els}) -> Subscriptions = decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, []), Node = decode_pubsub_subscriptions_attrs(__TopXMLNS, _attrs, undefined), {Node, Subscriptions}. decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, [], Subscriptions) -> lists:reverse(Subscriptions); decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription">>, _attrs, _} = _el | _els], Subscriptions) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">>; __TopXMLNS == <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_subscription(__TopXMLNS, __IgnoreEls, _el) | Subscriptions]); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el) | Subscriptions]); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el) | Subscriptions]); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el) | Subscriptions]); _ -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions) end; decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, [_ | _els], Subscriptions) -> decode_pubsub_subscriptions_els(__TopXMLNS, __IgnoreEls, _els, Subscriptions). decode_pubsub_subscriptions_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_subscriptions_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_subscriptions_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_subscriptions_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_subscriptions_attrs(__TopXMLNS, [], Node) -> decode_pubsub_subscriptions_attr_node(__TopXMLNS, Node). encode_pubsub_subscriptions({Node, Subscriptions}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>], __TopXMLNS), _els = lists:reverse('encode_pubsub_subscriptions_$subscriptions'(Subscriptions, __NewTopXMLNS, [])), _attrs = encode_pubsub_subscriptions_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"subscriptions">>, _attrs, _els}. 'encode_pubsub_subscriptions_$subscriptions'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_subscriptions_$subscriptions'([Subscriptions | _els], __TopXMLNS, _acc) -> 'encode_pubsub_subscriptions_$subscriptions'(_els, __TopXMLNS, [encode_pubsub_subscription(Subscriptions, __TopXMLNS) | _acc]). decode_pubsub_subscriptions_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_subscriptions_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_subscriptions_attr_node(<<>>, _acc) -> _acc; encode_pubsub_subscriptions_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_event(__TopXMLNS, __IgnoreEls, {xmlel, <<"event">>, _attrs, _els}) -> {Items, Create, Delete, Purge, Configuration, Subscription} = decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined), {ps_event, Items, Purge, Subscription, Delete, Create, Configuration}. decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [], Items, Create, Delete, Purge, Configuration, Subscription) -> {Items, Create, Delete, Purge, Configuration, Subscription}; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"items">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_items(__TopXMLNS, __IgnoreEls, _el), Create, Delete, Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_items(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Create, Delete, Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, decode_pubsub_items(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Create, Delete, Purge, Configuration, Subscription); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, decode_pubsub_subscription(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, decode_pubsub_subscription(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el)); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"purge">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, decode_pubsub_purge(__TopXMLNS, __IgnoreEls, _el), Configuration, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, decode_pubsub_purge(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Configuration, Subscription); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"delete">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, decode_pubsub_delete(__TopXMLNS, __IgnoreEls, _el), Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#owner">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#owner">>, __IgnoreEls, _el), Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, decode_pubsub_delete(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Purge, Configuration, Subscription); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"create">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_pubsub_create(__TopXMLNS, __IgnoreEls, _el), Delete, Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_pubsub_create(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el), Delete, Purge, Configuration, Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_pubsub_create(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Delete, Purge, Configuration, Subscription); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"configuration">>, _attrs, _} = _el | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, decode_pubsub_event_configuration(__TopXMLNS, __IgnoreEls, _el), Subscription); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, decode_pubsub_event_configuration(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el), Subscription); _ -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription) end; decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items, Create, Delete, Purge, Configuration, Subscription) -> decode_pubsub_event_els(__TopXMLNS, __IgnoreEls, _els, Items, Create, Delete, Purge, Configuration, Subscription). encode_pubsub_event({ps_event, Items, Purge, Subscription, Delete, Create, Configuration}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#event">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_event_$items'(Items, __NewTopXMLNS, 'encode_pubsub_event_$create'(Create, __NewTopXMLNS, 'encode_pubsub_event_$delete'(Delete, __NewTopXMLNS, 'encode_pubsub_event_$purge'(Purge, __NewTopXMLNS, 'encode_pubsub_event_$configuration'(Configuration, __NewTopXMLNS, 'encode_pubsub_event_$subscription'(Subscription, __NewTopXMLNS, []))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"event">>, _attrs, _els}. 'encode_pubsub_event_$items'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$items'(Items, __TopXMLNS, _acc) -> [encode_pubsub_items(Items, __TopXMLNS) | _acc]. 'encode_pubsub_event_$create'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$create'(Create, __TopXMLNS, _acc) -> [encode_pubsub_create(Create, __TopXMLNS) | _acc]. 'encode_pubsub_event_$delete'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$delete'(Delete, __TopXMLNS, _acc) -> [encode_pubsub_delete(Delete, __TopXMLNS) | _acc]. 'encode_pubsub_event_$purge'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$purge'(Purge, __TopXMLNS, _acc) -> [encode_pubsub_purge(Purge, __TopXMLNS) | _acc]. 'encode_pubsub_event_$configuration'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$configuration'(Configuration, __TopXMLNS, _acc) -> [encode_pubsub_event_configuration(Configuration, __TopXMLNS) | _acc]. 'encode_pubsub_event_$subscription'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_$subscription'(Subscription, __TopXMLNS, _acc) -> [encode_pubsub_subscription(Subscription, __TopXMLNS) | _acc]. decode_pubsub_items(__TopXMLNS, __IgnoreEls, {xmlel, <<"items">>, _attrs, _els}) -> {Items, Retract} = decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, [], undefined), {Xmlns, Max_items, Node, Subid} = decode_pubsub_items_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {ps_items, Xmlns, Node, Items, Max_items, Subid, Retract}. decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, [], Items, Retract) -> {lists:reverse(Items), Retract}; decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"retract">>, _attrs, _} = _el | _els], Items, Retract) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_pubsub_event_retract(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_pubsub_event_retract(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el)); _ -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Retract) end; decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items, Retract) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/pubsub">>; __TopXMLNS == <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(__TopXMLNS, __IgnoreEls, _el) | Items], Retract); <<"http://jabber.org/protocol/pubsub">> -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub">>, __IgnoreEls, _el) | Items], Retract); <<"http://jabber.org/protocol/pubsub#event">> -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, [decode_pubsub_item(<<"http://jabber.org/protocol/pubsub#event">>, __IgnoreEls, _el) | Items], Retract); _ -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Retract) end; decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items, Retract) -> decode_pubsub_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Retract). decode_pubsub_items_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns, Max_items, Node, Subid) -> decode_pubsub_items_attrs(__TopXMLNS, _attrs, _val, Max_items, Node, Subid); decode_pubsub_items_attrs(__TopXMLNS, [{<<"max_items">>, _val} | _attrs], Xmlns, _Max_items, Node, Subid) -> decode_pubsub_items_attrs(__TopXMLNS, _attrs, Xmlns, _val, Node, Subid); decode_pubsub_items_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Xmlns, Max_items, _Node, Subid) -> decode_pubsub_items_attrs(__TopXMLNS, _attrs, Xmlns, Max_items, _val, Subid); decode_pubsub_items_attrs(__TopXMLNS, [{<<"subid">>, _val} | _attrs], Xmlns, Max_items, Node, _Subid) -> decode_pubsub_items_attrs(__TopXMLNS, _attrs, Xmlns, Max_items, Node, _val); decode_pubsub_items_attrs(__TopXMLNS, [_ | _attrs], Xmlns, Max_items, Node, Subid) -> decode_pubsub_items_attrs(__TopXMLNS, _attrs, Xmlns, Max_items, Node, Subid); decode_pubsub_items_attrs(__TopXMLNS, [], Xmlns, Max_items, Node, Subid) -> {decode_pubsub_items_attr_xmlns(__TopXMLNS, Xmlns), decode_pubsub_items_attr_max_items(__TopXMLNS, Max_items), decode_pubsub_items_attr_node(__TopXMLNS, Node), decode_pubsub_items_attr_subid(__TopXMLNS, Subid)}. encode_pubsub_items({ps_items, Xmlns, Node, Items, Max_items, Subid, Retract}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = lists:reverse('encode_pubsub_items_$items'(Items, __NewTopXMLNS, 'encode_pubsub_items_$retract'(Retract, __NewTopXMLNS, []))), _attrs = encode_pubsub_items_attr_subid(Subid, encode_pubsub_items_attr_node(Node, encode_pubsub_items_attr_max_items(Max_items, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"items">>, _attrs, _els}. 'encode_pubsub_items_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_pubsub_items_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_pubsub_items_$items'(_els, __TopXMLNS, [encode_pubsub_item(Items, __TopXMLNS) | _acc]). 'encode_pubsub_items_$retract'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_items_$retract'(Retract, __TopXMLNS, _acc) -> [encode_pubsub_event_retract(Retract, __TopXMLNS) | _acc]. decode_pubsub_items_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_pubsub_items_attr_xmlns(__TopXMLNS, _val) -> _val. decode_pubsub_items_attr_max_items(__TopXMLNS, undefined) -> undefined; decode_pubsub_items_attr_max_items(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"max_items">>, <<"items">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_items_attr_max_items(undefined, _acc) -> _acc; encode_pubsub_items_attr_max_items(_val, _acc) -> [{<<"max_items">>, enc_int(_val)} | _acc]. decode_pubsub_items_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"items">>, __TopXMLNS}}); decode_pubsub_items_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_items_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_items_attr_subid(__TopXMLNS, undefined) -> <<>>; decode_pubsub_items_attr_subid(__TopXMLNS, _val) -> _val. encode_pubsub_items_attr_subid(<<>>, _acc) -> _acc; encode_pubsub_items_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. decode_pubsub_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> __Xmls = decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, _els, []), {Id, Xmlns, Node, Publisher} = decode_pubsub_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {ps_item, Xmlns, Id, __Xmls, Node, Publisher}. decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, [], __Xmls) -> lists:reverse(__Xmls); decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], __Xmls) -> decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, _els, [_el | __Xmls]); decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], __Xmls) -> decode_pubsub_item_els(__TopXMLNS, __IgnoreEls, _els, __Xmls). decode_pubsub_item_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, Xmlns, Node, Publisher) -> decode_pubsub_item_attrs(__TopXMLNS, _attrs, _val, Xmlns, Node, Publisher); decode_pubsub_item_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Id, _Xmlns, Node, Publisher) -> decode_pubsub_item_attrs(__TopXMLNS, _attrs, Id, _val, Node, Publisher); decode_pubsub_item_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Id, Xmlns, _Node, Publisher) -> decode_pubsub_item_attrs(__TopXMLNS, _attrs, Id, Xmlns, _val, Publisher); decode_pubsub_item_attrs(__TopXMLNS, [{<<"publisher">>, _val} | _attrs], Id, Xmlns, Node, _Publisher) -> decode_pubsub_item_attrs(__TopXMLNS, _attrs, Id, Xmlns, Node, _val); decode_pubsub_item_attrs(__TopXMLNS, [_ | _attrs], Id, Xmlns, Node, Publisher) -> decode_pubsub_item_attrs(__TopXMLNS, _attrs, Id, Xmlns, Node, Publisher); decode_pubsub_item_attrs(__TopXMLNS, [], Id, Xmlns, Node, Publisher) -> {decode_pubsub_item_attr_id(__TopXMLNS, Id), decode_pubsub_item_attr_xmlns(__TopXMLNS, Xmlns), decode_pubsub_item_attr_node(__TopXMLNS, Node), decode_pubsub_item_attr_publisher(__TopXMLNS, Publisher)}. encode_pubsub_item({ps_item, Xmlns, Id, __Xmls, Node, Publisher}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = __Xmls, _attrs = encode_pubsub_item_attr_publisher(Publisher, encode_pubsub_item_attr_node(Node, encode_pubsub_item_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"item">>, _attrs, _els}. decode_pubsub_item_attr_id(__TopXMLNS, undefined) -> <<>>; decode_pubsub_item_attr_id(__TopXMLNS, _val) -> _val. encode_pubsub_item_attr_id(<<>>, _acc) -> _acc; encode_pubsub_item_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_pubsub_item_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_pubsub_item_attr_xmlns(__TopXMLNS, _val) -> _val. decode_pubsub_item_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_item_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_item_attr_node(<<>>, _acc) -> _acc; encode_pubsub_item_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_item_attr_publisher(__TopXMLNS, undefined) -> <<>>; decode_pubsub_item_attr_publisher(__TopXMLNS, _val) -> _val. encode_pubsub_item_attr_publisher(<<>>, _acc) -> _acc; encode_pubsub_item_attr_publisher(_val, _acc) -> [{<<"publisher">>, _val} | _acc]. decode_pubsub_event_retract(__TopXMLNS, __IgnoreEls, {xmlel, <<"retract">>, _attrs, _els}) -> Id = decode_pubsub_event_retract_attrs(__TopXMLNS, _attrs, undefined), Id. decode_pubsub_event_retract_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id) -> decode_pubsub_event_retract_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_event_retract_attrs(__TopXMLNS, [_ | _attrs], Id) -> decode_pubsub_event_retract_attrs(__TopXMLNS, _attrs, Id); decode_pubsub_event_retract_attrs(__TopXMLNS, [], Id) -> decode_pubsub_event_retract_attr_id(__TopXMLNS, Id). encode_pubsub_event_retract(Id, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#event">>, [], __TopXMLNS), _els = [], _attrs = encode_pubsub_event_retract_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"retract">>, _attrs, _els}. decode_pubsub_event_retract_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"id">>, <<"retract">>, __TopXMLNS}}); decode_pubsub_event_retract_attr_id(__TopXMLNS, _val) -> _val. encode_pubsub_event_retract_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_pubsub_event_configuration(__TopXMLNS, __IgnoreEls, {xmlel, <<"configuration">>, _attrs, _els}) -> Xdata = decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, _els, undefined), Node = decode_pubsub_event_configuration_attrs(__TopXMLNS, _attrs, undefined), {Node, Xdata}. decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, [], Xdata) -> Xdata; decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, _els, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, _els, Xdata) end; decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata) -> decode_pubsub_event_configuration_els(__TopXMLNS, __IgnoreEls, _els, Xdata). decode_pubsub_event_configuration_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_pubsub_event_configuration_attrs(__TopXMLNS, _attrs, _val); decode_pubsub_event_configuration_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_pubsub_event_configuration_attrs(__TopXMLNS, _attrs, Node); decode_pubsub_event_configuration_attrs(__TopXMLNS, [], Node) -> decode_pubsub_event_configuration_attr_node(__TopXMLNS, Node). encode_pubsub_event_configuration({Node, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/pubsub#event">>, [], __TopXMLNS), _els = lists:reverse('encode_pubsub_event_configuration_$xdata'(Xdata, __NewTopXMLNS, [])), _attrs = encode_pubsub_event_configuration_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"configuration">>, _attrs, _els}. 'encode_pubsub_event_configuration_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_pubsub_event_configuration_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. decode_pubsub_event_configuration_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"configuration">>, __TopXMLNS}}); decode_pubsub_event_configuration_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_event_configuration_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_owner_affiliation(__TopXMLNS, __IgnoreEls, {xmlel, <<"affiliation">>, _attrs, _els}) -> {Jid, Xmlns, Type} = decode_pubsub_owner_affiliation_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {ps_affiliation, Xmlns, <<>>, Type, Jid}. decode_pubsub_owner_affiliation_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Xmlns, Type) -> decode_pubsub_owner_affiliation_attrs(__TopXMLNS, _attrs, _val, Xmlns, Type); decode_pubsub_owner_affiliation_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Jid, _Xmlns, Type) -> decode_pubsub_owner_affiliation_attrs(__TopXMLNS, _attrs, Jid, _val, Type); decode_pubsub_owner_affiliation_attrs(__TopXMLNS, [{<<"affiliation">>, _val} | _attrs], Jid, Xmlns, _Type) -> decode_pubsub_owner_affiliation_attrs(__TopXMLNS, _attrs, Jid, Xmlns, _val); decode_pubsub_owner_affiliation_attrs(__TopXMLNS, [_ | _attrs], Jid, Xmlns, Type) -> decode_pubsub_owner_affiliation_attrs(__TopXMLNS, _attrs, Jid, Xmlns, Type); decode_pubsub_owner_affiliation_attrs(__TopXMLNS, [], Jid, Xmlns, Type) -> {decode_pubsub_owner_affiliation_attr_jid(__TopXMLNS, Jid), decode_pubsub_owner_affiliation_attr_xmlns(__TopXMLNS, Xmlns), decode_pubsub_owner_affiliation_attr_affiliation(__TopXMLNS, Type)}. encode_pubsub_owner_affiliation({ps_affiliation, Xmlns, _, Type, Jid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/pubsub#owner">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_owner_affiliation_attr_affiliation(Type, encode_pubsub_owner_affiliation_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"affiliation">>, _attrs, _els}. decode_pubsub_owner_affiliation_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"affiliation">>, __TopXMLNS}}); decode_pubsub_owner_affiliation_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"affiliation">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_owner_affiliation_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_pubsub_owner_affiliation_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_pubsub_owner_affiliation_attr_xmlns(__TopXMLNS, _val) -> _val. decode_pubsub_owner_affiliation_attr_affiliation(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"affiliation">>, <<"affiliation">>, __TopXMLNS}}); decode_pubsub_owner_affiliation_attr_affiliation(__TopXMLNS, _val) -> case catch dec_ps_aff(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"affiliation">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_owner_affiliation_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_ps_aff(_val)} | _acc]. decode_pubsub_affiliation(__TopXMLNS, __IgnoreEls, {xmlel, <<"affiliation">>, _attrs, _els}) -> {Node, Xmlns, Type} = decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {ps_affiliation, Xmlns, Node, Type, undefined}. decode_pubsub_affiliation_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node, Xmlns, Type) -> decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, _val, Xmlns, Type); decode_pubsub_affiliation_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], Node, _Xmlns, Type) -> decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, Node, _val, Type); decode_pubsub_affiliation_attrs(__TopXMLNS, [{<<"affiliation">>, _val} | _attrs], Node, Xmlns, _Type) -> decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, Node, Xmlns, _val); decode_pubsub_affiliation_attrs(__TopXMLNS, [_ | _attrs], Node, Xmlns, Type) -> decode_pubsub_affiliation_attrs(__TopXMLNS, _attrs, Node, Xmlns, Type); decode_pubsub_affiliation_attrs(__TopXMLNS, [], Node, Xmlns, Type) -> {decode_pubsub_affiliation_attr_node(__TopXMLNS, Node), decode_pubsub_affiliation_attr_xmlns(__TopXMLNS, Xmlns), decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, Type)}. encode_pubsub_affiliation({ps_affiliation, Xmlns, Node, Type, _}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/pubsub">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_affiliation_attr_affiliation(Type, encode_pubsub_affiliation_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"affiliation">>, _attrs, _els}. decode_pubsub_affiliation_attr_node(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"node">>, <<"affiliation">>, __TopXMLNS}}); decode_pubsub_affiliation_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_affiliation_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_affiliation_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_pubsub_affiliation_attr_xmlns(__TopXMLNS, _val) -> _val. decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"affiliation">>, <<"affiliation">>, __TopXMLNS}}); decode_pubsub_affiliation_attr_affiliation(__TopXMLNS, _val) -> case catch dec_ps_aff(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"affiliation">>, <<"affiliation">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_affiliation_attr_affiliation(_val, _acc) -> [{<<"affiliation">>, enc_ps_aff(_val)} | _acc]. decode_pubsub_subscription(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscription">>, _attrs, _els}) -> {Xmlns, Jid, Node, Subid, Type, Expiry} = decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined, undefined), {ps_subscription, Xmlns, Jid, Type, Node, Subid, Expiry}. decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"xmlns">>, _val} | _attrs], _Xmlns, Jid, Node, Subid, Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, _val, Jid, Node, Subid, Type, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Xmlns, _Jid, Node, Subid, Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, _val, Node, Subid, Type, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Xmlns, Jid, _Node, Subid, Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, Jid, _val, Subid, Type, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"subid">>, _val} | _attrs], Xmlns, Jid, Node, _Subid, Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, Jid, Node, _val, Type, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"subscription">>, _val} | _attrs], Xmlns, Jid, Node, Subid, _Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, Jid, Node, Subid, _val, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [{<<"expiry">>, _val} | _attrs], Xmlns, Jid, Node, Subid, Type, _Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, Jid, Node, Subid, Type, _val); decode_pubsub_subscription_attrs(__TopXMLNS, [_ | _attrs], Xmlns, Jid, Node, Subid, Type, Expiry) -> decode_pubsub_subscription_attrs(__TopXMLNS, _attrs, Xmlns, Jid, Node, Subid, Type, Expiry); decode_pubsub_subscription_attrs(__TopXMLNS, [], Xmlns, Jid, Node, Subid, Type, Expiry) -> {decode_pubsub_subscription_attr_xmlns(__TopXMLNS, Xmlns), decode_pubsub_subscription_attr_jid(__TopXMLNS, Jid), decode_pubsub_subscription_attr_node(__TopXMLNS, Node), decode_pubsub_subscription_attr_subid(__TopXMLNS, Subid), decode_pubsub_subscription_attr_subscription(__TopXMLNS, Type), decode_pubsub_subscription_attr_expiry(__TopXMLNS, Expiry)}. encode_pubsub_subscription({ps_subscription, Xmlns, Jid, Type, Node, Subid, Expiry}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(Xmlns, [<<"http://jabber.org/protocol/pubsub">>, <<"http://jabber.org/protocol/pubsub#owner">>, <<"http://jabber.org/protocol/pubsub#event">>], __TopXMLNS), _els = [], _attrs = encode_pubsub_subscription_attr_expiry(Expiry, encode_pubsub_subscription_attr_subscription(Type, encode_pubsub_subscription_attr_subid(Subid, encode_pubsub_subscription_attr_node(Node, encode_pubsub_subscription_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"subscription">>, _attrs, _els}. decode_pubsub_subscription_attr_xmlns(__TopXMLNS, undefined) -> <<>>; decode_pubsub_subscription_attr_xmlns(__TopXMLNS, _val) -> _val. decode_pubsub_subscription_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"subscription">>, __TopXMLNS}}); decode_pubsub_subscription_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"subscription">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_subscription_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_pubsub_subscription_attr_node(__TopXMLNS, undefined) -> <<>>; decode_pubsub_subscription_attr_node(__TopXMLNS, _val) -> _val. encode_pubsub_subscription_attr_node(<<>>, _acc) -> _acc; encode_pubsub_subscription_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_pubsub_subscription_attr_subid(__TopXMLNS, undefined) -> <<>>; decode_pubsub_subscription_attr_subid(__TopXMLNS, _val) -> _val. encode_pubsub_subscription_attr_subid(<<>>, _acc) -> _acc; encode_pubsub_subscription_attr_subid(_val, _acc) -> [{<<"subid">>, _val} | _acc]. decode_pubsub_subscription_attr_subscription(__TopXMLNS, undefined) -> undefined; decode_pubsub_subscription_attr_subscription(__TopXMLNS, _val) -> case catch dec_enum(_val, [none, pending, subscribed, unconfigured]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"subscription">>, <<"subscription">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_subscription_attr_subscription(undefined, _acc) -> _acc; encode_pubsub_subscription_attr_subscription(_val, _acc) -> [{<<"subscription">>, enc_enum(_val)} | _acc]. decode_pubsub_subscription_attr_expiry(__TopXMLNS, undefined) -> undefined; decode_pubsub_subscription_attr_expiry(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"expiry">>, <<"subscription">>, __TopXMLNS}}); _res -> _res end. encode_pubsub_subscription_attr_expiry(undefined, _acc) -> _acc; encode_pubsub_subscription_attr_expiry(_val, _acc) -> [{<<"expiry">>, enc_utc(_val)} | _acc]. decode_xdata(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> {Fields, Items, Instructions, Reported, Title} = decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, [], [], [], undefined, undefined), Type = decode_xdata_attrs(__TopXMLNS, _attrs, undefined), {xdata, Type, Instructions, Title, Reported, Items, Fields}. decode_xdata_els(__TopXMLNS, __IgnoreEls, [], Fields, Items, Instructions, Reported, Title) -> {lists:reverse(Fields), lists:reverse(Items), lists:reverse(Instructions), Reported, Title}; decode_xdata_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"instructions">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, [decode_xdata_instructions(__TopXMLNS, __IgnoreEls, _el) | Instructions], Reported, Title); <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, [decode_xdata_instructions(<<"jabber:x:data">>, __IgnoreEls, _el) | Instructions], Reported, Title); _ -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title) end; decode_xdata_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"title">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, decode_xdata_title(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, decode_xdata_title(<<"jabber:x:data">>, __IgnoreEls, _el)); _ -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title) end; decode_xdata_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reported">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, decode_xdata_reported(__TopXMLNS, __IgnoreEls, _el), Title); <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, decode_xdata_reported(<<"jabber:x:data">>, __IgnoreEls, _el), Title); _ -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title) end; decode_xdata_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, [decode_xdata_item(__TopXMLNS, __IgnoreEls, _el) | Items], Instructions, Reported, Title); <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, [decode_xdata_item(<<"jabber:x:data">>, __IgnoreEls, _el) | Items], Instructions, Reported, Title); _ -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title) end; decode_xdata_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"field">>, _attrs, _} = _el | _els], Fields, Items, Instructions, Reported, Title) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(__TopXMLNS, __IgnoreEls, _el) | Fields], Items, Instructions, Reported, Title); <<"jabber:x:data">> -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(<<"jabber:x:data">>, __IgnoreEls, _el) | Fields], Items, Instructions, Reported, Title); _ -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title) end; decode_xdata_els(__TopXMLNS, __IgnoreEls, [_ | _els], Fields, Items, Instructions, Reported, Title) -> decode_xdata_els(__TopXMLNS, __IgnoreEls, _els, Fields, Items, Instructions, Reported, Title). decode_xdata_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], _Type) -> decode_xdata_attrs(__TopXMLNS, _attrs, _val); decode_xdata_attrs(__TopXMLNS, [_ | _attrs], Type) -> decode_xdata_attrs(__TopXMLNS, _attrs, Type); decode_xdata_attrs(__TopXMLNS, [], Type) -> decode_xdata_attr_type(__TopXMLNS, Type). encode_xdata({xdata, Type, Instructions, Title, Reported, Items, Fields}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = lists:reverse('encode_xdata_$fields'(Fields, __NewTopXMLNS, 'encode_xdata_$items'(Items, __NewTopXMLNS, 'encode_xdata_$instructions'(Instructions, __NewTopXMLNS, 'encode_xdata_$reported'(Reported, __NewTopXMLNS, 'encode_xdata_$title'(Title, __NewTopXMLNS, [])))))), _attrs = encode_xdata_attr_type(Type, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"x">>, _attrs, _els}. 'encode_xdata_$fields'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_$fields'([Fields | _els], __TopXMLNS, _acc) -> 'encode_xdata_$fields'(_els, __TopXMLNS, [encode_xdata_field(Fields, __TopXMLNS) | _acc]). 'encode_xdata_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_xdata_$items'(_els, __TopXMLNS, [encode_xdata_item(Items, __TopXMLNS) | _acc]). 'encode_xdata_$instructions'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_$instructions'([Instructions | _els], __TopXMLNS, _acc) -> 'encode_xdata_$instructions'(_els, __TopXMLNS, [encode_xdata_instructions(Instructions, __TopXMLNS) | _acc]). 'encode_xdata_$reported'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_xdata_$reported'(Reported, __TopXMLNS, _acc) -> [encode_xdata_reported(Reported, __TopXMLNS) | _acc]. 'encode_xdata_$title'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_xdata_$title'(Title, __TopXMLNS, _acc) -> [encode_xdata_title(Title, __TopXMLNS) | _acc]. decode_xdata_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"x">>, __TopXMLNS}}); decode_xdata_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [cancel, form, result, submit]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"x">>, __TopXMLNS}}); _res -> _res end. encode_xdata_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_xdata_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> Fields = decode_xdata_item_els(__TopXMLNS, __IgnoreEls, _els, []), Fields. decode_xdata_item_els(__TopXMLNS, __IgnoreEls, [], Fields) -> lists:reverse(Fields); decode_xdata_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"field">>, _attrs, _} = _el | _els], Fields) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_item_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(__TopXMLNS, __IgnoreEls, _el) | Fields]); <<"jabber:x:data">> -> decode_xdata_item_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(<<"jabber:x:data">>, __IgnoreEls, _el) | Fields]); _ -> decode_xdata_item_els(__TopXMLNS, __IgnoreEls, _els, Fields) end; decode_xdata_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Fields) -> decode_xdata_item_els(__TopXMLNS, __IgnoreEls, _els, Fields). encode_xdata_item(Fields, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = lists:reverse('encode_xdata_item_$fields'(Fields, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"item">>, _attrs, _els}. 'encode_xdata_item_$fields'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_item_$fields'([Fields | _els], __TopXMLNS, _acc) -> 'encode_xdata_item_$fields'(_els, __TopXMLNS, [encode_xdata_field(Fields, __TopXMLNS) | _acc]). decode_xdata_reported(__TopXMLNS, __IgnoreEls, {xmlel, <<"reported">>, _attrs, _els}) -> Fields = decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, _els, []), Fields. decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, [], Fields) -> lists:reverse(Fields); decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"field">>, _attrs, _} = _el | _els], Fields) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(__TopXMLNS, __IgnoreEls, _el) | Fields]); <<"jabber:x:data">> -> decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field(<<"jabber:x:data">>, __IgnoreEls, _el) | Fields]); _ -> decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, _els, Fields) end; decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, [_ | _els], Fields) -> decode_xdata_reported_els(__TopXMLNS, __IgnoreEls, _els, Fields). encode_xdata_reported(Fields, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = lists:reverse('encode_xdata_reported_$fields'(Fields, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"reported">>, _attrs, _els}. 'encode_xdata_reported_$fields'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_reported_$fields'([Fields | _els], __TopXMLNS, _acc) -> 'encode_xdata_reported_$fields'(_els, __TopXMLNS, [encode_xdata_field(Fields, __TopXMLNS) | _acc]). decode_xdata_title(__TopXMLNS, __IgnoreEls, {xmlel, <<"title">>, _attrs, _els}) -> Cdata = decode_xdata_title_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_xdata_title_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_xdata_title_cdata(__TopXMLNS, Cdata); decode_xdata_title_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_xdata_title_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_xdata_title_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_xdata_title_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_xdata_title(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = encode_xdata_title_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"title">>, _attrs, _els}. decode_xdata_title_cdata(__TopXMLNS, <<>>) -> <<>>; decode_xdata_title_cdata(__TopXMLNS, _val) -> _val. encode_xdata_title_cdata(<<>>, _acc) -> _acc; encode_xdata_title_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_xdata_instructions(__TopXMLNS, __IgnoreEls, {xmlel, <<"instructions">>, _attrs, _els}) -> Cdata = decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_xdata_instructions_cdata(__TopXMLNS, Cdata); decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_xdata_instructions_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_xdata_instructions(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = encode_xdata_instructions_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"instructions">>, _attrs, _els}. decode_xdata_instructions_cdata(__TopXMLNS, <<>>) -> <<>>; decode_xdata_instructions_cdata(__TopXMLNS, _val) -> _val. encode_xdata_instructions_cdata(<<>>, _acc) -> _acc; encode_xdata_instructions_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_xdata_field(__TopXMLNS, __IgnoreEls, {xmlel, <<"field">>, _attrs, _els}) -> {Options, Values, Desc, Required, __Els} = decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, [], [], <<>>, false, []), {Label, Type, Var} = decode_xdata_field_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {xdata_field, Label, Type, Var, Required, Desc, Values, Options, __Els}. decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [], Options, Values, Desc, Required, __Els) -> {lists:reverse(Options), lists:reverse(Values), Desc, Required, lists:reverse(__Els)}; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"required">>, _attrs, _} = _el | _els], Options, Values, Desc, Required, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, decode_xdata_field_required(__TopXMLNS, __IgnoreEls, _el), __Els); <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, decode_xdata_field_required(<<"jabber:x:data">>, __IgnoreEls, _el), __Els); _ -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els) end; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"desc">>, _attrs, _} = _el | _els], Options, Values, Desc, Required, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, decode_xdata_field_desc(__TopXMLNS, __IgnoreEls, _el), Required, __Els); <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, decode_xdata_field_desc(<<"jabber:x:data">>, __IgnoreEls, _el), Required, __Els); _ -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els) end; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"value">>, _attrs, _} = _el | _els], Options, Values, Desc, Required, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, [decode_xdata_field_value(__TopXMLNS, __IgnoreEls, _el) | Values], Desc, Required, __Els); <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, [decode_xdata_field_value(<<"jabber:x:data">>, __IgnoreEls, _el) | Values], Desc, Required, __Els); _ -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els) end; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"option">>, _attrs, _} = _el | _els], Options, Values, Desc, Required, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field_option(__TopXMLNS, __IgnoreEls, _el) | Options], Values, Desc, Required, __Els); <<"jabber:x:data">> -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata_field_option(<<"jabber:x:data">>, __IgnoreEls, _el) | Options], Values, Desc, Required, __Els); _ -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els) end; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Options, Values, Desc, Required, __Els) -> if __IgnoreEls -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els) end end; decode_xdata_field_els(__TopXMLNS, __IgnoreEls, [_ | _els], Options, Values, Desc, Required, __Els) -> decode_xdata_field_els(__TopXMLNS, __IgnoreEls, _els, Options, Values, Desc, Required, __Els). decode_xdata_field_attrs(__TopXMLNS, [{<<"label">>, _val} | _attrs], _Label, Type, Var) -> decode_xdata_field_attrs(__TopXMLNS, _attrs, _val, Type, Var); decode_xdata_field_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Label, _Type, Var) -> decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, _val, Var); decode_xdata_field_attrs(__TopXMLNS, [{<<"var">>, _val} | _attrs], Label, Type, _Var) -> decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, Type, _val); decode_xdata_field_attrs(__TopXMLNS, [_ | _attrs], Label, Type, Var) -> decode_xdata_field_attrs(__TopXMLNS, _attrs, Label, Type, Var); decode_xdata_field_attrs(__TopXMLNS, [], Label, Type, Var) -> {decode_xdata_field_attr_label(__TopXMLNS, Label), decode_xdata_field_attr_type(__TopXMLNS, Type), decode_xdata_field_attr_var(__TopXMLNS, Var)}. encode_xdata_field({xdata_field, Label, Type, Var, Required, Desc, Values, Options, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ lists:reverse('encode_xdata_field_$options'(Options, __NewTopXMLNS, 'encode_xdata_field_$values'(Values, __NewTopXMLNS, 'encode_xdata_field_$desc'(Desc, __NewTopXMLNS, 'encode_xdata_field_$required'(Required, __NewTopXMLNS, []))))), _attrs = encode_xdata_field_attr_var(Var, encode_xdata_field_attr_type(Type, encode_xdata_field_attr_label(Label, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"field">>, _attrs, _els}. 'encode_xdata_field_$options'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_field_$options'([Options | _els], __TopXMLNS, _acc) -> 'encode_xdata_field_$options'(_els, __TopXMLNS, [encode_xdata_field_option(Options, __TopXMLNS) | _acc]). 'encode_xdata_field_$values'([], __TopXMLNS, _acc) -> _acc; 'encode_xdata_field_$values'([Values | _els], __TopXMLNS, _acc) -> 'encode_xdata_field_$values'(_els, __TopXMLNS, [encode_xdata_field_value(Values, __TopXMLNS) | _acc]). 'encode_xdata_field_$desc'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_xdata_field_$desc'(Desc, __TopXMLNS, _acc) -> [encode_xdata_field_desc(Desc, __TopXMLNS) | _acc]. 'encode_xdata_field_$required'(false, __TopXMLNS, _acc) -> _acc; 'encode_xdata_field_$required'(Required, __TopXMLNS, _acc) -> [encode_xdata_field_required(Required, __TopXMLNS) | _acc]. decode_xdata_field_attr_label(__TopXMLNS, undefined) -> <<>>; decode_xdata_field_attr_label(__TopXMLNS, _val) -> _val. encode_xdata_field_attr_label(<<>>, _acc) -> _acc; encode_xdata_field_attr_label(_val, _acc) -> [{<<"label">>, _val} | _acc]. decode_xdata_field_attr_type(__TopXMLNS, undefined) -> undefined; decode_xdata_field_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [boolean, fixed, hidden, 'jid-multi', 'jid-single', 'list-multi', 'list-single', 'text-multi', 'text-private', 'text-single']) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"field">>, __TopXMLNS}}); _res -> _res end. encode_xdata_field_attr_type(undefined, _acc) -> _acc; encode_xdata_field_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_xdata_field_attr_var(__TopXMLNS, undefined) -> <<>>; decode_xdata_field_attr_var(__TopXMLNS, _val) -> _val. encode_xdata_field_attr_var(<<>>, _acc) -> _acc; encode_xdata_field_attr_var(_val, _acc) -> [{<<"var">>, _val} | _acc]. decode_xdata_field_option(__TopXMLNS, __IgnoreEls, {xmlel, <<"option">>, _attrs, _els}) -> Value = decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, _els, error), Label = decode_xdata_field_option_attrs(__TopXMLNS, _attrs, undefined), {xdata_option, Label, Value}. decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, [], Value) -> case Value of error -> erlang:error({xmpp_codec, {missing_tag, <<"value">>, __TopXMLNS}}); {value, Value1} -> Value1 end; decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"value">>, _attrs, _} = _el | _els], Value) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:x:data">> -> decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, _els, {value, decode_xdata_field_value(__TopXMLNS, __IgnoreEls, _el)}); <<"jabber:x:data">> -> decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, _els, {value, decode_xdata_field_value(<<"jabber:x:data">>, __IgnoreEls, _el)}); _ -> decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, _els, Value) end; decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, [_ | _els], Value) -> decode_xdata_field_option_els(__TopXMLNS, __IgnoreEls, _els, Value). decode_xdata_field_option_attrs(__TopXMLNS, [{<<"label">>, _val} | _attrs], _Label) -> decode_xdata_field_option_attrs(__TopXMLNS, _attrs, _val); decode_xdata_field_option_attrs(__TopXMLNS, [_ | _attrs], Label) -> decode_xdata_field_option_attrs(__TopXMLNS, _attrs, Label); decode_xdata_field_option_attrs(__TopXMLNS, [], Label) -> decode_xdata_field_option_attr_label(__TopXMLNS, Label). encode_xdata_field_option({xdata_option, Label, Value}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = lists:reverse('encode_xdata_field_option_$value'(Value, __NewTopXMLNS, [])), _attrs = encode_xdata_field_option_attr_label(Label, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"option">>, _attrs, _els}. 'encode_xdata_field_option_$value'(Value, __TopXMLNS, _acc) -> [encode_xdata_field_value(Value, __TopXMLNS) | _acc]. decode_xdata_field_option_attr_label(__TopXMLNS, undefined) -> <<>>; decode_xdata_field_option_attr_label(__TopXMLNS, _val) -> _val. encode_xdata_field_option_attr_label(<<>>, _acc) -> _acc; encode_xdata_field_option_attr_label(_val, _acc) -> [{<<"label">>, _val} | _acc]. decode_xdata_field_value(__TopXMLNS, __IgnoreEls, {xmlel, <<"value">>, _attrs, _els}) -> Cdata = decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_xdata_field_value_cdata(__TopXMLNS, Cdata); decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_xdata_field_value_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_xdata_field_value(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = encode_xdata_field_value_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"value">>, _attrs, _els}. decode_xdata_field_value_cdata(__TopXMLNS, <<>>) -> <<>>; decode_xdata_field_value_cdata(__TopXMLNS, _val) -> _val. encode_xdata_field_value_cdata(<<>>, _acc) -> _acc; encode_xdata_field_value_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_xdata_field_desc(__TopXMLNS, __IgnoreEls, {xmlel, <<"desc">>, _attrs, _els}) -> Cdata = decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_xdata_field_desc_cdata(__TopXMLNS, Cdata); decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_xdata_field_desc_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_xdata_field_desc(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = encode_xdata_field_desc_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"desc">>, _attrs, _els}. decode_xdata_field_desc_cdata(__TopXMLNS, <<>>) -> <<>>; decode_xdata_field_desc_cdata(__TopXMLNS, _val) -> _val. encode_xdata_field_desc_cdata(<<>>, _acc) -> _acc; encode_xdata_field_desc_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_xdata_field_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"required">>, _attrs, _els}) -> true. encode_xdata_field_required(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:x:data">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"required">>, _attrs, _els}. decode_vcard_xupdate(__TopXMLNS, __IgnoreEls, {xmlel, <<"x">>, _attrs, _els}) -> Hash = decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, _els, undefined), {vcard_xupdate, {<<>>, <<>>}, Hash}. decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, [], Hash) -> Hash; decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"photo">>, _attrs, _} = _el | _els], Hash) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp:x:update">> -> decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_xupdate_photo(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp:x:update">> -> decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_xupdate_photo(<<"vcard-temp:x:update">>, __IgnoreEls, _el)); _ -> decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, _els, Hash) end; decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, [_ | _els], Hash) -> decode_vcard_xupdate_els(__TopXMLNS, __IgnoreEls, _els, Hash). encode_vcard_xupdate({vcard_xupdate, _, Hash}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp:x:update">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_xupdate_$hash'(Hash, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"x">>, _attrs, _els}. 'encode_vcard_xupdate_$hash'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_xupdate_$hash'(Hash, __TopXMLNS, _acc) -> [encode_vcard_xupdate_photo(Hash, __TopXMLNS) | _acc]. decode_vcard_xupdate_photo(__TopXMLNS, __IgnoreEls, {xmlel, <<"photo">>, _attrs, _els}) -> Cdata = decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_xupdate_photo_cdata(__TopXMLNS, Cdata); decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_xupdate_photo_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_xupdate_photo(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp:x:update">>, [], __TopXMLNS), _els = encode_vcard_xupdate_photo_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"photo">>, _attrs, _els}. decode_vcard_xupdate_photo_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_xupdate_photo_cdata(__TopXMLNS, _val) -> _val. encode_vcard_xupdate_photo_cdata(<<>>, _acc) -> _acc; encode_vcard_xupdate_photo_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_temp(__TopXMLNS, __IgnoreEls, {xmlel, <<"vCard">>, _attrs, _els}) -> {Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo} = decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, undefined, [], undefined, [], undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, [], [], [], undefined, undefined, undefined, undefined, undefined, undefined), {vcard_temp, Version, Fn, N, Nickname, Photo, Bday, Adr, Label, Tel, Email, Jabberid, Mailer, Tz, Geo, Title, Role, Logo, Org, Categories, Note, Prodid, Rev, Sort_string, Sound, Uid, Url, Class, Key, Desc}. decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> {Mailer, lists:reverse(Adr), Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, lists:reverse(Email), lists:reverse(Tel), lists:reverse(Label), Fn, Version, N, Photo, Logo, Geo}; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"N">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, decode_vcard_N(__TopXMLNS, __IgnoreEls, _el), Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, decode_vcard_N(<<"vcard-temp">>, __IgnoreEls, _el), Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ADR">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, [decode_vcard_ADR(__TopXMLNS, __IgnoreEls, _el) | Adr], Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, [decode_vcard_ADR(<<"vcard-temp">>, __IgnoreEls, _el) | Adr], Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LABEL">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, [decode_vcard_LABEL(__TopXMLNS, __IgnoreEls, _el) | Label], Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, [decode_vcard_LABEL(<<"vcard-temp">>, __IgnoreEls, _el) | Label], Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TEL">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, [decode_vcard_TEL(__TopXMLNS, __IgnoreEls, _el) | Tel], Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, [decode_vcard_TEL(<<"vcard-temp">>, __IgnoreEls, _el) | Tel], Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"EMAIL">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, [decode_vcard_EMAIL(__TopXMLNS, __IgnoreEls, _el) | Email], Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, [decode_vcard_EMAIL(<<"vcard-temp">>, __IgnoreEls, _el) | Email], Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"GEO">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, decode_vcard_GEO(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, decode_vcard_GEO(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LOGO">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, decode_vcard_LOGO(__TopXMLNS, __IgnoreEls, _el), Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, decode_vcard_LOGO(<<"vcard-temp">>, __IgnoreEls, _el), Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PHOTO">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, decode_vcard_PHOTO(__TopXMLNS, __IgnoreEls, _el), Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, decode_vcard_PHOTO(<<"vcard-temp">>, __IgnoreEls, _el), Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ORG">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, decode_vcard_ORG(__TopXMLNS, __IgnoreEls, _el), Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, decode_vcard_ORG(<<"vcard-temp">>, __IgnoreEls, _el), Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"SOUND">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, decode_vcard_SOUND(__TopXMLNS, __IgnoreEls, _el), Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, decode_vcard_SOUND(<<"vcard-temp">>, __IgnoreEls, _el), Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"KEY">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, decode_vcard_KEY(__TopXMLNS, __IgnoreEls, _el), Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, decode_vcard_KEY(<<"vcard-temp">>, __IgnoreEls, _el), Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"VERSION">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, decode_vcard_VERSION(__TopXMLNS, __IgnoreEls, _el), N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, decode_vcard_VERSION(<<"vcard-temp">>, __IgnoreEls, _el), N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"FN">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, decode_vcard_FN(__TopXMLNS, __IgnoreEls, _el), Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, decode_vcard_FN(<<"vcard-temp">>, __IgnoreEls, _el), Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"NICKNAME">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, decode_vcard_NICKNAME(__TopXMLNS, __IgnoreEls, _el), Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, decode_vcard_NICKNAME(<<"vcard-temp">>, __IgnoreEls, _el), Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"BDAY">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, decode_vcard_BDAY(__TopXMLNS, __IgnoreEls, _el), Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, decode_vcard_BDAY(<<"vcard-temp">>, __IgnoreEls, _el), Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"JABBERID">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, decode_vcard_JABBERID(__TopXMLNS, __IgnoreEls, _el), Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, decode_vcard_JABBERID(<<"vcard-temp">>, __IgnoreEls, _el), Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"MAILER">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_MAILER(__TopXMLNS, __IgnoreEls, _el), Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_MAILER(<<"vcard-temp">>, __IgnoreEls, _el), Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TZ">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, decode_vcard_TZ(__TopXMLNS, __IgnoreEls, _el), Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, decode_vcard_TZ(<<"vcard-temp">>, __IgnoreEls, _el), Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TITLE">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, decode_vcard_TITLE(__TopXMLNS, __IgnoreEls, _el), Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, decode_vcard_TITLE(<<"vcard-temp">>, __IgnoreEls, _el), Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ROLE">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, decode_vcard_ROLE(__TopXMLNS, __IgnoreEls, _el), Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, decode_vcard_ROLE(<<"vcard-temp">>, __IgnoreEls, _el), Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"NOTE">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, decode_vcard_NOTE(__TopXMLNS, __IgnoreEls, _el), Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, decode_vcard_NOTE(<<"vcard-temp">>, __IgnoreEls, _el), Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PRODID">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, decode_vcard_PRODID(__TopXMLNS, __IgnoreEls, _el), Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, decode_vcard_PRODID(<<"vcard-temp">>, __IgnoreEls, _el), Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"REV">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, decode_vcard_REV(__TopXMLNS, __IgnoreEls, _el), Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, decode_vcard_REV(<<"vcard-temp">>, __IgnoreEls, _el), Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"SORT-STRING">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, decode_vcard_SORT_STRING(__TopXMLNS, __IgnoreEls, _el), Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, decode_vcard_SORT_STRING(<<"vcard-temp">>, __IgnoreEls, _el), Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"UID">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, decode_vcard_UID(__TopXMLNS, __IgnoreEls, _el), Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, decode_vcard_UID(<<"vcard-temp">>, __IgnoreEls, _el), Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"URL">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, decode_vcard_URL(__TopXMLNS, __IgnoreEls, _el), Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, decode_vcard_URL(<<"vcard-temp">>, __IgnoreEls, _el), Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"DESC">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, decode_vcard_DESC(__TopXMLNS, __IgnoreEls, _el), Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, decode_vcard_DESC(<<"vcard-temp">>, __IgnoreEls, _el), Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CATEGORIES">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, decode_vcard_CATEGORIES(__TopXMLNS, __IgnoreEls, _el), Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, decode_vcard_CATEGORIES(<<"vcard-temp">>, __IgnoreEls, _el), Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CLASS">>, _attrs, _} = _el | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, decode_vcard_CLASS(__TopXMLNS, __IgnoreEls, _el), Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); <<"vcard-temp">> -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, decode_vcard_CLASS(<<"vcard-temp">>, __IgnoreEls, _el), Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo); _ -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) end; decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, [_ | _els], Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo) -> decode_vcard_temp_els(__TopXMLNS, __IgnoreEls, _els, Mailer, Adr, Class, Categories, Desc, Uid, Prodid, Jabberid, Sound, Note, Role, Title, Nickname, Rev, Sort_string, Org, Bday, Key, Tz, Url, Email, Tel, Label, Fn, Version, N, Photo, Logo, Geo). encode_vcard_temp({vcard_temp, Version, Fn, N, Nickname, Photo, Bday, Adr, Label, Tel, Email, Jabberid, Mailer, Tz, Geo, Title, Role, Logo, Org, Categories, Note, Prodid, Rev, Sort_string, Sound, Uid, Url, Class, Key, Desc}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_temp_$mailer'(Mailer, __NewTopXMLNS, 'encode_vcard_temp_$adr'(Adr, __NewTopXMLNS, 'encode_vcard_temp_$class'(Class, __NewTopXMLNS, 'encode_vcard_temp_$categories'(Categories, __NewTopXMLNS, 'encode_vcard_temp_$desc'(Desc, __NewTopXMLNS, 'encode_vcard_temp_$uid'(Uid, __NewTopXMLNS, 'encode_vcard_temp_$prodid'(Prodid, __NewTopXMLNS, 'encode_vcard_temp_$jabberid'(Jabberid, __NewTopXMLNS, 'encode_vcard_temp_$sound'(Sound, __NewTopXMLNS, 'encode_vcard_temp_$note'(Note, __NewTopXMLNS, 'encode_vcard_temp_$role'(Role, __NewTopXMLNS, 'encode_vcard_temp_$title'(Title, __NewTopXMLNS, 'encode_vcard_temp_$nickname'(Nickname, __NewTopXMLNS, 'encode_vcard_temp_$rev'(Rev, __NewTopXMLNS, 'encode_vcard_temp_$sort_string'(Sort_string, __NewTopXMLNS, 'encode_vcard_temp_$org'(Org, __NewTopXMLNS, 'encode_vcard_temp_$bday'(Bday, __NewTopXMLNS, 'encode_vcard_temp_$key'(Key, __NewTopXMLNS, 'encode_vcard_temp_$tz'(Tz, __NewTopXMLNS, 'encode_vcard_temp_$url'(Url, __NewTopXMLNS, 'encode_vcard_temp_$email'(Email, __NewTopXMLNS, 'encode_vcard_temp_$tel'(Tel, __NewTopXMLNS, 'encode_vcard_temp_$label'(Label, __NewTopXMLNS, 'encode_vcard_temp_$fn'(Fn, __NewTopXMLNS, 'encode_vcard_temp_$version'(Version, __NewTopXMLNS, 'encode_vcard_temp_$n'(N, __NewTopXMLNS, 'encode_vcard_temp_$photo'(Photo, __NewTopXMLNS, 'encode_vcard_temp_$logo'(Logo, __NewTopXMLNS, 'encode_vcard_temp_$geo'(Geo, __NewTopXMLNS, [])))))))))))))))))))))))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"vCard">>, _attrs, _els}. 'encode_vcard_temp_$mailer'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$mailer'(Mailer, __TopXMLNS, _acc) -> [encode_vcard_MAILER(Mailer, __TopXMLNS) | _acc]. 'encode_vcard_temp_$adr'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$adr'([Adr | _els], __TopXMLNS, _acc) -> 'encode_vcard_temp_$adr'(_els, __TopXMLNS, [encode_vcard_ADR(Adr, __TopXMLNS) | _acc]). 'encode_vcard_temp_$class'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$class'(Class, __TopXMLNS, _acc) -> [encode_vcard_CLASS(Class, __TopXMLNS) | _acc]. 'encode_vcard_temp_$categories'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$categories'(Categories, __TopXMLNS, _acc) -> [encode_vcard_CATEGORIES(Categories, __TopXMLNS) | _acc]. 'encode_vcard_temp_$desc'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$desc'(Desc, __TopXMLNS, _acc) -> [encode_vcard_DESC(Desc, __TopXMLNS) | _acc]. 'encode_vcard_temp_$uid'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$uid'(Uid, __TopXMLNS, _acc) -> [encode_vcard_UID(Uid, __TopXMLNS) | _acc]. 'encode_vcard_temp_$prodid'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$prodid'(Prodid, __TopXMLNS, _acc) -> [encode_vcard_PRODID(Prodid, __TopXMLNS) | _acc]. 'encode_vcard_temp_$jabberid'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$jabberid'(Jabberid, __TopXMLNS, _acc) -> [encode_vcard_JABBERID(Jabberid, __TopXMLNS) | _acc]. 'encode_vcard_temp_$sound'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$sound'(Sound, __TopXMLNS, _acc) -> [encode_vcard_SOUND(Sound, __TopXMLNS) | _acc]. 'encode_vcard_temp_$note'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$note'(Note, __TopXMLNS, _acc) -> [encode_vcard_NOTE(Note, __TopXMLNS) | _acc]. 'encode_vcard_temp_$role'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$role'(Role, __TopXMLNS, _acc) -> [encode_vcard_ROLE(Role, __TopXMLNS) | _acc]. 'encode_vcard_temp_$title'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$title'(Title, __TopXMLNS, _acc) -> [encode_vcard_TITLE(Title, __TopXMLNS) | _acc]. 'encode_vcard_temp_$nickname'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$nickname'(Nickname, __TopXMLNS, _acc) -> [encode_vcard_NICKNAME(Nickname, __TopXMLNS) | _acc]. 'encode_vcard_temp_$rev'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$rev'(Rev, __TopXMLNS, _acc) -> [encode_vcard_REV(Rev, __TopXMLNS) | _acc]. 'encode_vcard_temp_$sort_string'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$sort_string'(Sort_string, __TopXMLNS, _acc) -> [encode_vcard_SORT_STRING(Sort_string, __TopXMLNS) | _acc]. 'encode_vcard_temp_$org'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$org'(Org, __TopXMLNS, _acc) -> [encode_vcard_ORG(Org, __TopXMLNS) | _acc]. 'encode_vcard_temp_$bday'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$bday'(Bday, __TopXMLNS, _acc) -> [encode_vcard_BDAY(Bday, __TopXMLNS) | _acc]. 'encode_vcard_temp_$key'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$key'(Key, __TopXMLNS, _acc) -> [encode_vcard_KEY(Key, __TopXMLNS) | _acc]. 'encode_vcard_temp_$tz'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$tz'(Tz, __TopXMLNS, _acc) -> [encode_vcard_TZ(Tz, __TopXMLNS) | _acc]. 'encode_vcard_temp_$url'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$url'(Url, __TopXMLNS, _acc) -> [encode_vcard_URL(Url, __TopXMLNS) | _acc]. 'encode_vcard_temp_$email'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$email'([Email | _els], __TopXMLNS, _acc) -> 'encode_vcard_temp_$email'(_els, __TopXMLNS, [encode_vcard_EMAIL(Email, __TopXMLNS) | _acc]). 'encode_vcard_temp_$tel'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$tel'([Tel | _els], __TopXMLNS, _acc) -> 'encode_vcard_temp_$tel'(_els, __TopXMLNS, [encode_vcard_TEL(Tel, __TopXMLNS) | _acc]). 'encode_vcard_temp_$label'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$label'([Label | _els], __TopXMLNS, _acc) -> 'encode_vcard_temp_$label'(_els, __TopXMLNS, [encode_vcard_LABEL(Label, __TopXMLNS) | _acc]). 'encode_vcard_temp_$fn'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$fn'(Fn, __TopXMLNS, _acc) -> [encode_vcard_FN(Fn, __TopXMLNS) | _acc]. 'encode_vcard_temp_$version'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$version'(Version, __TopXMLNS, _acc) -> [encode_vcard_VERSION(Version, __TopXMLNS) | _acc]. 'encode_vcard_temp_$n'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$n'(N, __TopXMLNS, _acc) -> [encode_vcard_N(N, __TopXMLNS) | _acc]. 'encode_vcard_temp_$photo'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$photo'(Photo, __TopXMLNS, _acc) -> [encode_vcard_PHOTO(Photo, __TopXMLNS) | _acc]. 'encode_vcard_temp_$logo'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$logo'(Logo, __TopXMLNS, _acc) -> [encode_vcard_LOGO(Logo, __TopXMLNS) | _acc]. 'encode_vcard_temp_$geo'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_temp_$geo'(Geo, __TopXMLNS, _acc) -> [encode_vcard_GEO(Geo, __TopXMLNS) | _acc]. decode_vcard_CLASS(__TopXMLNS, __IgnoreEls, {xmlel, <<"CLASS">>, _attrs, _els}) -> Class = decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, undefined), Class. decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, [], Class) -> Class; decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PUBLIC">>, _attrs, _} = _el | _els], Class) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PUBLIC(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PUBLIC(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, Class) end; decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PRIVATE">>, _attrs, _} = _el | _els], Class) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PRIVATE(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PRIVATE(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, Class) end; decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CONFIDENTIAL">>, _attrs, _} = _el | _els], Class) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_CONFIDENTIAL(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_CONFIDENTIAL(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, Class) end; decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, [_ | _els], Class) -> decode_vcard_CLASS_els(__TopXMLNS, __IgnoreEls, _els, Class). encode_vcard_CLASS(Class, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_CLASS_$class'(Class, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CLASS">>, _attrs, _els}. 'encode_vcard_CLASS_$class'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_CLASS_$class'(public = Class, __TopXMLNS, _acc) -> [encode_vcard_PUBLIC(Class, __TopXMLNS) | _acc]; 'encode_vcard_CLASS_$class'(private = Class, __TopXMLNS, _acc) -> [encode_vcard_PRIVATE(Class, __TopXMLNS) | _acc]; 'encode_vcard_CLASS_$class'(confidential = Class, __TopXMLNS, _acc) -> [encode_vcard_CONFIDENTIAL(Class, __TopXMLNS) | _acc]. decode_vcard_CATEGORIES(__TopXMLNS, __IgnoreEls, {xmlel, <<"CATEGORIES">>, _attrs, _els}) -> Keywords = decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, _els, []), Keywords. decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, [], Keywords) -> lists:reverse(Keywords); decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"KEYWORD">>, _attrs, _} = _el | _els], Keywords) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_KEYWORD(__TopXMLNS, __IgnoreEls, _el) | Keywords]); <<"vcard-temp">> -> decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_KEYWORD(<<"vcard-temp">>, __IgnoreEls, _el) | Keywords]); _ -> decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, _els, Keywords) end; decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, [_ | _els], Keywords) -> decode_vcard_CATEGORIES_els(__TopXMLNS, __IgnoreEls, _els, Keywords). encode_vcard_CATEGORIES(Keywords, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_CATEGORIES_$keywords'(Keywords, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CATEGORIES">>, _attrs, _els}. 'encode_vcard_CATEGORIES_$keywords'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_CATEGORIES_$keywords'([Keywords | _els], __TopXMLNS, _acc) -> 'encode_vcard_CATEGORIES_$keywords'(_els, __TopXMLNS, [encode_vcard_KEYWORD(Keywords, __TopXMLNS) | _acc]). decode_vcard_KEY(__TopXMLNS, __IgnoreEls, {xmlel, <<"KEY">>, _attrs, _els}) -> {Cred, Type} = decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {vcard_key, Type, Cred}. decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, [], Cred, Type) -> {Cred, Type}; decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Cred, Type) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, Cred, decode_vcard_TYPE(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, Cred, decode_vcard_TYPE(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, Cred, Type) end; decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CRED">>, _attrs, _} = _el | _els], Cred, Type) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_CRED(__TopXMLNS, __IgnoreEls, _el), Type); <<"vcard-temp">> -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_CRED(<<"vcard-temp">>, __IgnoreEls, _el), Type); _ -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, Cred, Type) end; decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cred, Type) -> decode_vcard_KEY_els(__TopXMLNS, __IgnoreEls, _els, Cred, Type). encode_vcard_KEY({vcard_key, Type, Cred}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_KEY_$cred'(Cred, __NewTopXMLNS, 'encode_vcard_KEY_$type'(Type, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"KEY">>, _attrs, _els}. 'encode_vcard_KEY_$cred'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_KEY_$cred'(Cred, __TopXMLNS, _acc) -> [encode_vcard_CRED(Cred, __TopXMLNS) | _acc]. 'encode_vcard_KEY_$type'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_KEY_$type'(Type, __TopXMLNS, _acc) -> [encode_vcard_TYPE(Type, __TopXMLNS) | _acc]. decode_vcard_SOUND(__TopXMLNS, __IgnoreEls, {xmlel, <<"SOUND">>, _attrs, _els}) -> {Phonetic, Extval, Binval} = decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined), {vcard_sound, Phonetic, Binval, Extval}. decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, [], Phonetic, Extval, Binval) -> {Phonetic, Extval, Binval}; decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, decode_vcard_BINVAL(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, decode_vcard_BINVAL(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, Binval) end; decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, decode_vcard_EXTVAL(__TopXMLNS, __IgnoreEls, _el), Binval); <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, decode_vcard_EXTVAL(<<"vcard-temp">>, __IgnoreEls, _el), Binval); _ -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, Binval) end; decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PHONETIC">>, _attrs, _} = _el | _els], Phonetic, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PHONETIC(__TopXMLNS, __IgnoreEls, _el), Extval, Binval); <<"vcard-temp">> -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_PHONETIC(<<"vcard-temp">>, __IgnoreEls, _el), Extval, Binval); _ -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, Binval) end; decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, [_ | _els], Phonetic, Extval, Binval) -> decode_vcard_SOUND_els(__TopXMLNS, __IgnoreEls, _els, Phonetic, Extval, Binval). encode_vcard_SOUND({vcard_sound, Phonetic, Binval, Extval}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_SOUND_$phonetic'(Phonetic, __NewTopXMLNS, 'encode_vcard_SOUND_$extval'(Extval, __NewTopXMLNS, 'encode_vcard_SOUND_$binval'(Binval, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"SOUND">>, _attrs, _els}. 'encode_vcard_SOUND_$phonetic'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_SOUND_$phonetic'(Phonetic, __TopXMLNS, _acc) -> [encode_vcard_PHONETIC(Phonetic, __TopXMLNS) | _acc]. 'encode_vcard_SOUND_$extval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_SOUND_$extval'(Extval, __TopXMLNS, _acc) -> [encode_vcard_EXTVAL(Extval, __TopXMLNS) | _acc]. 'encode_vcard_SOUND_$binval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_SOUND_$binval'(Binval, __TopXMLNS, _acc) -> [encode_vcard_BINVAL(Binval, __TopXMLNS) | _acc]. decode_vcard_ORG(__TopXMLNS, __IgnoreEls, {xmlel, <<"ORG">>, _attrs, _els}) -> {Units, Name} = decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, [], undefined), {vcard_org, Name, Units}. decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, [], Units, Name) -> {lists:reverse(Units), Name}; decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ORGNAME">>, _attrs, _} = _el | _els], Units, Name) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, Units, decode_vcard_ORGNAME(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, Units, decode_vcard_ORGNAME(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, Units, Name) end; decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ORGUNIT">>, _attrs, _} = _el | _els], Units, Name) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_ORGUNIT(__TopXMLNS, __IgnoreEls, _el) | Units], Name); <<"vcard-temp">> -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_ORGUNIT(<<"vcard-temp">>, __IgnoreEls, _el) | Units], Name); _ -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, Units, Name) end; decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, [_ | _els], Units, Name) -> decode_vcard_ORG_els(__TopXMLNS, __IgnoreEls, _els, Units, Name). encode_vcard_ORG({vcard_org, Name, Units}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_ORG_$units'(Units, __NewTopXMLNS, 'encode_vcard_ORG_$name'(Name, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ORG">>, _attrs, _els}. 'encode_vcard_ORG_$units'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_ORG_$units'([Units | _els], __TopXMLNS, _acc) -> 'encode_vcard_ORG_$units'(_els, __TopXMLNS, [encode_vcard_ORGUNIT(Units, __TopXMLNS) | _acc]). 'encode_vcard_ORG_$name'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ORG_$name'(Name, __TopXMLNS, _acc) -> [encode_vcard_ORGNAME(Name, __TopXMLNS) | _acc]. decode_vcard_PHOTO(__TopXMLNS, __IgnoreEls, {xmlel, <<"PHOTO">>, _attrs, _els}) -> {Type, Extval, Binval} = decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined), {vcard_photo, Type, Binval, Extval}. decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, [], Type, Extval, Binval) -> {Type, Extval, Binval}; decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_TYPE(__TopXMLNS, __IgnoreEls, _el), Extval, Binval); <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_TYPE(<<"vcard-temp">>, __IgnoreEls, _el), Extval, Binval); _ -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, decode_vcard_BINVAL(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, decode_vcard_BINVAL(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, decode_vcard_EXTVAL(__TopXMLNS, __IgnoreEls, _el), Binval); <<"vcard-temp">> -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, decode_vcard_EXTVAL(<<"vcard-temp">>, __IgnoreEls, _el), Binval); _ -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, [_ | _els], Type, Extval, Binval) -> decode_vcard_PHOTO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval). encode_vcard_PHOTO({vcard_photo, Type, Binval, Extval}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_PHOTO_$type'(Type, __NewTopXMLNS, 'encode_vcard_PHOTO_$extval'(Extval, __NewTopXMLNS, 'encode_vcard_PHOTO_$binval'(Binval, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PHOTO">>, _attrs, _els}. 'encode_vcard_PHOTO_$type'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_PHOTO_$type'(Type, __TopXMLNS, _acc) -> [encode_vcard_TYPE(Type, __TopXMLNS) | _acc]. 'encode_vcard_PHOTO_$extval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_PHOTO_$extval'(Extval, __TopXMLNS, _acc) -> [encode_vcard_EXTVAL(Extval, __TopXMLNS) | _acc]. 'encode_vcard_PHOTO_$binval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_PHOTO_$binval'(Binval, __TopXMLNS, _acc) -> [encode_vcard_BINVAL(Binval, __TopXMLNS) | _acc]. decode_vcard_LOGO(__TopXMLNS, __IgnoreEls, {xmlel, <<"LOGO">>, _attrs, _els}) -> {Type, Extval, Binval} = decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined), {vcard_logo, Type, Binval, Extval}. decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, [], Type, Extval, Binval) -> {Type, Extval, Binval}; decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"TYPE">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_TYPE(__TopXMLNS, __IgnoreEls, _el), Extval, Binval); <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_TYPE(<<"vcard-temp">>, __IgnoreEls, _el), Extval, Binval); _ -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"BINVAL">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, decode_vcard_BINVAL(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, decode_vcard_BINVAL(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"EXTVAL">>, _attrs, _} = _el | _els], Type, Extval, Binval) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, decode_vcard_EXTVAL(__TopXMLNS, __IgnoreEls, _el), Binval); <<"vcard-temp">> -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, decode_vcard_EXTVAL(<<"vcard-temp">>, __IgnoreEls, _el), Binval); _ -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval) end; decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, [_ | _els], Type, Extval, Binval) -> decode_vcard_LOGO_els(__TopXMLNS, __IgnoreEls, _els, Type, Extval, Binval). encode_vcard_LOGO({vcard_logo, Type, Binval, Extval}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_LOGO_$type'(Type, __NewTopXMLNS, 'encode_vcard_LOGO_$extval'(Extval, __NewTopXMLNS, 'encode_vcard_LOGO_$binval'(Binval, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LOGO">>, _attrs, _els}. 'encode_vcard_LOGO_$type'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LOGO_$type'(Type, __TopXMLNS, _acc) -> [encode_vcard_TYPE(Type, __TopXMLNS) | _acc]. 'encode_vcard_LOGO_$extval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LOGO_$extval'(Extval, __TopXMLNS, _acc) -> [encode_vcard_EXTVAL(Extval, __TopXMLNS) | _acc]. 'encode_vcard_LOGO_$binval'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LOGO_$binval'(Binval, __TopXMLNS, _acc) -> [encode_vcard_BINVAL(Binval, __TopXMLNS) | _acc]. decode_vcard_BINVAL(__TopXMLNS, __IgnoreEls, {xmlel, <<"BINVAL">>, _attrs, _els}) -> Cdata = decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_BINVAL_cdata(__TopXMLNS, Cdata); decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_BINVAL_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_BINVAL(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_BINVAL_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"BINVAL">>, _attrs, _els}. decode_vcard_BINVAL_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_BINVAL_cdata(__TopXMLNS, _val) -> case catch base64:decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"BINVAL">>, __TopXMLNS}}); _res -> _res end. encode_vcard_BINVAL_cdata(<<>>, _acc) -> _acc; encode_vcard_BINVAL_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_vcard_GEO(__TopXMLNS, __IgnoreEls, {xmlel, <<"GEO">>, _attrs, _els}) -> {Lat, Lon} = decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {vcard_geo, Lat, Lon}. decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, [], Lat, Lon) -> {Lat, Lon}; decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LAT">>, _attrs, _} = _el | _els], Lat, Lon) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_LAT(__TopXMLNS, __IgnoreEls, _el), Lon); <<"vcard-temp">> -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_LAT(<<"vcard-temp">>, __IgnoreEls, _el), Lon); _ -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, Lat, Lon) end; decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LON">>, _attrs, _} = _el | _els], Lat, Lon) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, Lat, decode_vcard_LON(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, Lat, decode_vcard_LON(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, Lat, Lon) end; decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, [_ | _els], Lat, Lon) -> decode_vcard_GEO_els(__TopXMLNS, __IgnoreEls, _els, Lat, Lon). encode_vcard_GEO({vcard_geo, Lat, Lon}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_GEO_$lat'(Lat, __NewTopXMLNS, 'encode_vcard_GEO_$lon'(Lon, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"GEO">>, _attrs, _els}. 'encode_vcard_GEO_$lat'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_GEO_$lat'(Lat, __TopXMLNS, _acc) -> [encode_vcard_LAT(Lat, __TopXMLNS) | _acc]. 'encode_vcard_GEO_$lon'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_GEO_$lon'(Lon, __TopXMLNS, _acc) -> [encode_vcard_LON(Lon, __TopXMLNS) | _acc]. decode_vcard_EMAIL(__TopXMLNS, __IgnoreEls, {xmlel, <<"EMAIL">>, _attrs, _els}) -> {X400, Userid, Internet, Home, Pref, Work} = decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, false, undefined, false, false, false, false), {vcard_email, Home, Work, Internet, Pref, X400, Userid}. decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [], X400, Userid, Internet, Home, Pref, Work) -> {X400, Userid, Internet, Home, Pref, Work}; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, decode_vcard_HOME(__TopXMLNS, __IgnoreEls, _el), Pref, Work); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, decode_vcard_HOME(<<"vcard-temp">>, __IgnoreEls, _el), Pref, Work); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, decode_vcard_WORK(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, decode_vcard_WORK(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"INTERNET">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, decode_vcard_INTERNET(__TopXMLNS, __IgnoreEls, _el), Home, Pref, Work); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, decode_vcard_INTERNET(<<"vcard-temp">>, __IgnoreEls, _el), Home, Pref, Work); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, decode_vcard_PREF(__TopXMLNS, __IgnoreEls, _el), Work); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, decode_vcard_PREF(<<"vcard-temp">>, __IgnoreEls, _el), Work); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"X400">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_X400(__TopXMLNS, __IgnoreEls, _el), Userid, Internet, Home, Pref, Work); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_X400(<<"vcard-temp">>, __IgnoreEls, _el), Userid, Internet, Home, Pref, Work); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"USERID">>, _attrs, _} = _el | _els], X400, Userid, Internet, Home, Pref, Work) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, decode_vcard_USERID(__TopXMLNS, __IgnoreEls, _el), Internet, Home, Pref, Work); <<"vcard-temp">> -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, decode_vcard_USERID(<<"vcard-temp">>, __IgnoreEls, _el), Internet, Home, Pref, Work); _ -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work) end; decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, [_ | _els], X400, Userid, Internet, Home, Pref, Work) -> decode_vcard_EMAIL_els(__TopXMLNS, __IgnoreEls, _els, X400, Userid, Internet, Home, Pref, Work). encode_vcard_EMAIL({vcard_email, Home, Work, Internet, Pref, X400, Userid}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_EMAIL_$x400'(X400, __NewTopXMLNS, 'encode_vcard_EMAIL_$userid'(Userid, __NewTopXMLNS, 'encode_vcard_EMAIL_$internet'(Internet, __NewTopXMLNS, 'encode_vcard_EMAIL_$home'(Home, __NewTopXMLNS, 'encode_vcard_EMAIL_$pref'(Pref, __NewTopXMLNS, 'encode_vcard_EMAIL_$work'(Work, __NewTopXMLNS, []))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"EMAIL">>, _attrs, _els}. 'encode_vcard_EMAIL_$x400'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$x400'(X400, __TopXMLNS, _acc) -> [encode_vcard_X400(X400, __TopXMLNS) | _acc]. 'encode_vcard_EMAIL_$userid'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$userid'(Userid, __TopXMLNS, _acc) -> [encode_vcard_USERID(Userid, __TopXMLNS) | _acc]. 'encode_vcard_EMAIL_$internet'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$internet'(Internet, __TopXMLNS, _acc) -> [encode_vcard_INTERNET(Internet, __TopXMLNS) | _acc]. 'encode_vcard_EMAIL_$home'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$home'(Home, __TopXMLNS, _acc) -> [encode_vcard_HOME(Home, __TopXMLNS) | _acc]. 'encode_vcard_EMAIL_$pref'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$pref'(Pref, __TopXMLNS, _acc) -> [encode_vcard_PREF(Pref, __TopXMLNS) | _acc]. 'encode_vcard_EMAIL_$work'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_EMAIL_$work'(Work, __TopXMLNS, _acc) -> [encode_vcard_WORK(Work, __TopXMLNS) | _acc]. decode_vcard_TEL(__TopXMLNS, __IgnoreEls, {xmlel, <<"TEL">>, _attrs, _els}) -> {Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video} = decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, undefined, false, false, false, false, false, false, false, false, false, false, false, false, false), {vcard_tel, Home, Work, Voice, Fax, Pager, Msg, Cell, Video, Bbs, Modem, Isdn, Pcs, Pref, Number}. decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> {Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video}; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, decode_vcard_HOME(__TopXMLNS, __IgnoreEls, _el), Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, decode_vcard_HOME(<<"vcard-temp">>, __IgnoreEls, _el), Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, decode_vcard_WORK(__TopXMLNS, __IgnoreEls, _el), Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, decode_vcard_WORK(<<"vcard-temp">>, __IgnoreEls, _el), Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"VOICE">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, decode_vcard_VOICE(__TopXMLNS, __IgnoreEls, _el), Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, decode_vcard_VOICE(<<"vcard-temp">>, __IgnoreEls, _el), Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"FAX">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, decode_vcard_FAX(__TopXMLNS, __IgnoreEls, _el), Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, decode_vcard_FAX(<<"vcard-temp">>, __IgnoreEls, _el), Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PAGER">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, decode_vcard_PAGER(__TopXMLNS, __IgnoreEls, _el), Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, decode_vcard_PAGER(<<"vcard-temp">>, __IgnoreEls, _el), Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"MSG">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, decode_vcard_MSG(__TopXMLNS, __IgnoreEls, _el), Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, decode_vcard_MSG(<<"vcard-temp">>, __IgnoreEls, _el), Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CELL">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, decode_vcard_CELL(__TopXMLNS, __IgnoreEls, _el), Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, decode_vcard_CELL(<<"vcard-temp">>, __IgnoreEls, _el), Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"VIDEO">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, decode_vcard_VIDEO(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, decode_vcard_VIDEO(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"BBS">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, decode_vcard_BBS(__TopXMLNS, __IgnoreEls, _el), Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, decode_vcard_BBS(<<"vcard-temp">>, __IgnoreEls, _el), Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"MODEM">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, decode_vcard_MODEM(__TopXMLNS, __IgnoreEls, _el), Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, decode_vcard_MODEM(<<"vcard-temp">>, __IgnoreEls, _el), Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"ISDN">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, decode_vcard_ISDN(__TopXMLNS, __IgnoreEls, _el), Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, decode_vcard_ISDN(<<"vcard-temp">>, __IgnoreEls, _el), Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PCS">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, decode_vcard_PCS(__TopXMLNS, __IgnoreEls, _el), Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, decode_vcard_PCS(<<"vcard-temp">>, __IgnoreEls, _el), Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, decode_vcard_PREF(__TopXMLNS, __IgnoreEls, _el), Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, decode_vcard_PREF(<<"vcard-temp">>, __IgnoreEls, _el), Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"NUMBER">>, _attrs, _} = _el | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_NUMBER(__TopXMLNS, __IgnoreEls, _el), Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); <<"vcard-temp">> -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_NUMBER(<<"vcard-temp">>, __IgnoreEls, _el), Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video); _ -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) end; decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, [_ | _els], Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video) -> decode_vcard_TEL_els(__TopXMLNS, __IgnoreEls, _els, Number, Pager, Pcs, Bbs, Voice, Home, Pref, Msg, Fax, Work, Cell, Modem, Isdn, Video). encode_vcard_TEL({vcard_tel, Home, Work, Voice, Fax, Pager, Msg, Cell, Video, Bbs, Modem, Isdn, Pcs, Pref, Number}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_TEL_$number'(Number, __NewTopXMLNS, 'encode_vcard_TEL_$pager'(Pager, __NewTopXMLNS, 'encode_vcard_TEL_$pcs'(Pcs, __NewTopXMLNS, 'encode_vcard_TEL_$bbs'(Bbs, __NewTopXMLNS, 'encode_vcard_TEL_$voice'(Voice, __NewTopXMLNS, 'encode_vcard_TEL_$home'(Home, __NewTopXMLNS, 'encode_vcard_TEL_$pref'(Pref, __NewTopXMLNS, 'encode_vcard_TEL_$msg'(Msg, __NewTopXMLNS, 'encode_vcard_TEL_$fax'(Fax, __NewTopXMLNS, 'encode_vcard_TEL_$work'(Work, __NewTopXMLNS, 'encode_vcard_TEL_$cell'(Cell, __NewTopXMLNS, 'encode_vcard_TEL_$modem'(Modem, __NewTopXMLNS, 'encode_vcard_TEL_$isdn'(Isdn, __NewTopXMLNS, 'encode_vcard_TEL_$video'(Video, __NewTopXMLNS, []))))))))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"TEL">>, _attrs, _els}. 'encode_vcard_TEL_$number'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$number'(Number, __TopXMLNS, _acc) -> [encode_vcard_NUMBER(Number, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$pager'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$pager'(Pager, __TopXMLNS, _acc) -> [encode_vcard_PAGER(Pager, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$pcs'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$pcs'(Pcs, __TopXMLNS, _acc) -> [encode_vcard_PCS(Pcs, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$bbs'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$bbs'(Bbs, __TopXMLNS, _acc) -> [encode_vcard_BBS(Bbs, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$voice'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$voice'(Voice, __TopXMLNS, _acc) -> [encode_vcard_VOICE(Voice, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$home'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$home'(Home, __TopXMLNS, _acc) -> [encode_vcard_HOME(Home, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$pref'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$pref'(Pref, __TopXMLNS, _acc) -> [encode_vcard_PREF(Pref, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$msg'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$msg'(Msg, __TopXMLNS, _acc) -> [encode_vcard_MSG(Msg, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$fax'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$fax'(Fax, __TopXMLNS, _acc) -> [encode_vcard_FAX(Fax, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$work'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$work'(Work, __TopXMLNS, _acc) -> [encode_vcard_WORK(Work, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$cell'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$cell'(Cell, __TopXMLNS, _acc) -> [encode_vcard_CELL(Cell, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$modem'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$modem'(Modem, __TopXMLNS, _acc) -> [encode_vcard_MODEM(Modem, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$isdn'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$isdn'(Isdn, __TopXMLNS, _acc) -> [encode_vcard_ISDN(Isdn, __TopXMLNS) | _acc]. 'encode_vcard_TEL_$video'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_TEL_$video'(Video, __TopXMLNS, _acc) -> [encode_vcard_VIDEO(Video, __TopXMLNS) | _acc]. decode_vcard_LABEL(__TopXMLNS, __IgnoreEls, {xmlel, <<"LABEL">>, _attrs, _els}) -> {Line, Home, Pref, Work, Intl, Parcel, Postal, Dom} = decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, [], false, false, false, false, false, false, false), {vcard_label, Home, Work, Postal, Parcel, Dom, Intl, Pref, Line}. decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> {lists:reverse(Line), Home, Pref, Work, Intl, Parcel, Postal, Dom}; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, decode_vcard_HOME(__TopXMLNS, __IgnoreEls, _el), Pref, Work, Intl, Parcel, Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, decode_vcard_HOME(<<"vcard-temp">>, __IgnoreEls, _el), Pref, Work, Intl, Parcel, Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, decode_vcard_WORK(__TopXMLNS, __IgnoreEls, _el), Intl, Parcel, Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, decode_vcard_WORK(<<"vcard-temp">>, __IgnoreEls, _el), Intl, Parcel, Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"POSTAL">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, decode_vcard_POSTAL(__TopXMLNS, __IgnoreEls, _el), Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, decode_vcard_POSTAL(<<"vcard-temp">>, __IgnoreEls, _el), Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PARCEL">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, decode_vcard_PARCEL(__TopXMLNS, __IgnoreEls, _el), Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, decode_vcard_PARCEL(<<"vcard-temp">>, __IgnoreEls, _el), Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"DOM">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, decode_vcard_DOM(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, decode_vcard_DOM(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"INTL">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, decode_vcard_INTL(__TopXMLNS, __IgnoreEls, _el), Parcel, Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, decode_vcard_INTL(<<"vcard-temp">>, __IgnoreEls, _el), Parcel, Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, decode_vcard_PREF(__TopXMLNS, __IgnoreEls, _el), Work, Intl, Parcel, Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, decode_vcard_PREF(<<"vcard-temp">>, __IgnoreEls, _el), Work, Intl, Parcel, Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LINE">>, _attrs, _} = _el | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_LINE(__TopXMLNS, __IgnoreEls, _el) | Line], Home, Pref, Work, Intl, Parcel, Postal, Dom); <<"vcard-temp">> -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, [decode_vcard_LINE(<<"vcard-temp">>, __IgnoreEls, _el) | Line], Home, Pref, Work, Intl, Parcel, Postal, Dom); _ -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) end; decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, [_ | _els], Line, Home, Pref, Work, Intl, Parcel, Postal, Dom) -> decode_vcard_LABEL_els(__TopXMLNS, __IgnoreEls, _els, Line, Home, Pref, Work, Intl, Parcel, Postal, Dom). encode_vcard_LABEL({vcard_label, Home, Work, Postal, Parcel, Dom, Intl, Pref, Line}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_LABEL_$line'(Line, __NewTopXMLNS, 'encode_vcard_LABEL_$home'(Home, __NewTopXMLNS, 'encode_vcard_LABEL_$pref'(Pref, __NewTopXMLNS, 'encode_vcard_LABEL_$work'(Work, __NewTopXMLNS, 'encode_vcard_LABEL_$intl'(Intl, __NewTopXMLNS, 'encode_vcard_LABEL_$parcel'(Parcel, __NewTopXMLNS, 'encode_vcard_LABEL_$postal'(Postal, __NewTopXMLNS, 'encode_vcard_LABEL_$dom'(Dom, __NewTopXMLNS, []))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LABEL">>, _attrs, _els}. 'encode_vcard_LABEL_$line'([], __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$line'([Line | _els], __TopXMLNS, _acc) -> 'encode_vcard_LABEL_$line'(_els, __TopXMLNS, [encode_vcard_LINE(Line, __TopXMLNS) | _acc]). 'encode_vcard_LABEL_$home'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$home'(Home, __TopXMLNS, _acc) -> [encode_vcard_HOME(Home, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$pref'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$pref'(Pref, __TopXMLNS, _acc) -> [encode_vcard_PREF(Pref, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$work'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$work'(Work, __TopXMLNS, _acc) -> [encode_vcard_WORK(Work, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$intl'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$intl'(Intl, __TopXMLNS, _acc) -> [encode_vcard_INTL(Intl, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$parcel'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$parcel'(Parcel, __TopXMLNS, _acc) -> [encode_vcard_PARCEL(Parcel, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$postal'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$postal'(Postal, __TopXMLNS, _acc) -> [encode_vcard_POSTAL(Postal, __TopXMLNS) | _acc]. 'encode_vcard_LABEL_$dom'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_LABEL_$dom'(Dom, __TopXMLNS, _acc) -> [encode_vcard_DOM(Dom, __TopXMLNS) | _acc]. decode_vcard_ADR(__TopXMLNS, __IgnoreEls, {xmlel, <<"ADR">>, _attrs, _els}) -> {Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region} = decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, false, false, undefined, undefined, undefined, false, false, false, false, false, undefined), {vcard_adr, Home, Work, Postal, Parcel, Dom, Intl, Pref, Pobox, Extadd, Street, Locality, Region, Pcode, Ctry}. decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> {Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region}; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"HOME">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, decode_vcard_HOME(__TopXMLNS, __IgnoreEls, _el), Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, decode_vcard_HOME(<<"vcard-temp">>, __IgnoreEls, _el), Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"WORK">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, decode_vcard_WORK(__TopXMLNS, __IgnoreEls, _el), Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, decode_vcard_WORK(<<"vcard-temp">>, __IgnoreEls, _el), Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"POSTAL">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, decode_vcard_POSTAL(__TopXMLNS, __IgnoreEls, _el), Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, decode_vcard_POSTAL(<<"vcard-temp">>, __IgnoreEls, _el), Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PARCEL">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, decode_vcard_PARCEL(__TopXMLNS, __IgnoreEls, _el), Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, decode_vcard_PARCEL(<<"vcard-temp">>, __IgnoreEls, _el), Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"DOM">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, decode_vcard_DOM(__TopXMLNS, __IgnoreEls, _el), Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, decode_vcard_DOM(<<"vcard-temp">>, __IgnoreEls, _el), Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"INTL">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, decode_vcard_INTL(__TopXMLNS, __IgnoreEls, _el), Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, decode_vcard_INTL(<<"vcard-temp">>, __IgnoreEls, _el), Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PREF">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, decode_vcard_PREF(__TopXMLNS, __IgnoreEls, _el), Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, decode_vcard_PREF(<<"vcard-temp">>, __IgnoreEls, _el), Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"POBOX">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, decode_vcard_POBOX(__TopXMLNS, __IgnoreEls, _el), Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, decode_vcard_POBOX(<<"vcard-temp">>, __IgnoreEls, _el), Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"EXTADD">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, decode_vcard_EXTADD(__TopXMLNS, __IgnoreEls, _el), Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, decode_vcard_EXTADD(<<"vcard-temp">>, __IgnoreEls, _el), Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"STREET">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_STREET(__TopXMLNS, __IgnoreEls, _el), Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_STREET(<<"vcard-temp">>, __IgnoreEls, _el), Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"LOCALITY">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, decode_vcard_LOCALITY(__TopXMLNS, __IgnoreEls, _el), Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, decode_vcard_LOCALITY(<<"vcard-temp">>, __IgnoreEls, _el), Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"REGION">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, decode_vcard_REGION(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, decode_vcard_REGION(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PCODE">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, decode_vcard_PCODE(__TopXMLNS, __IgnoreEls, _el), Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, decode_vcard_PCODE(<<"vcard-temp">>, __IgnoreEls, _el), Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"CTRY">>, _attrs, _} = _el | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, decode_vcard_CTRY(__TopXMLNS, __IgnoreEls, _el), Locality, Work, Intl, Parcel, Postal, Dom, Region); <<"vcard-temp">> -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, decode_vcard_CTRY(<<"vcard-temp">>, __IgnoreEls, _el), Locality, Work, Intl, Parcel, Postal, Dom, Region); _ -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) end; decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, [_ | _els], Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region) -> decode_vcard_ADR_els(__TopXMLNS, __IgnoreEls, _els, Street, Extadd, Pcode, Home, Pref, Pobox, Ctry, Locality, Work, Intl, Parcel, Postal, Dom, Region). encode_vcard_ADR({vcard_adr, Home, Work, Postal, Parcel, Dom, Intl, Pref, Pobox, Extadd, Street, Locality, Region, Pcode, Ctry}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_ADR_$street'(Street, __NewTopXMLNS, 'encode_vcard_ADR_$extadd'(Extadd, __NewTopXMLNS, 'encode_vcard_ADR_$pcode'(Pcode, __NewTopXMLNS, 'encode_vcard_ADR_$home'(Home, __NewTopXMLNS, 'encode_vcard_ADR_$pref'(Pref, __NewTopXMLNS, 'encode_vcard_ADR_$pobox'(Pobox, __NewTopXMLNS, 'encode_vcard_ADR_$ctry'(Ctry, __NewTopXMLNS, 'encode_vcard_ADR_$locality'(Locality, __NewTopXMLNS, 'encode_vcard_ADR_$work'(Work, __NewTopXMLNS, 'encode_vcard_ADR_$intl'(Intl, __NewTopXMLNS, 'encode_vcard_ADR_$parcel'(Parcel, __NewTopXMLNS, 'encode_vcard_ADR_$postal'(Postal, __NewTopXMLNS, 'encode_vcard_ADR_$dom'(Dom, __NewTopXMLNS, 'encode_vcard_ADR_$region'(Region, __NewTopXMLNS, []))))))))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ADR">>, _attrs, _els}. 'encode_vcard_ADR_$street'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$street'(Street, __TopXMLNS, _acc) -> [encode_vcard_STREET(Street, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$extadd'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$extadd'(Extadd, __TopXMLNS, _acc) -> [encode_vcard_EXTADD(Extadd, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$pcode'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$pcode'(Pcode, __TopXMLNS, _acc) -> [encode_vcard_PCODE(Pcode, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$home'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$home'(Home, __TopXMLNS, _acc) -> [encode_vcard_HOME(Home, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$pref'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$pref'(Pref, __TopXMLNS, _acc) -> [encode_vcard_PREF(Pref, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$pobox'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$pobox'(Pobox, __TopXMLNS, _acc) -> [encode_vcard_POBOX(Pobox, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$ctry'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$ctry'(Ctry, __TopXMLNS, _acc) -> [encode_vcard_CTRY(Ctry, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$locality'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$locality'(Locality, __TopXMLNS, _acc) -> [encode_vcard_LOCALITY(Locality, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$work'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$work'(Work, __TopXMLNS, _acc) -> [encode_vcard_WORK(Work, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$intl'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$intl'(Intl, __TopXMLNS, _acc) -> [encode_vcard_INTL(Intl, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$parcel'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$parcel'(Parcel, __TopXMLNS, _acc) -> [encode_vcard_PARCEL(Parcel, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$postal'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$postal'(Postal, __TopXMLNS, _acc) -> [encode_vcard_POSTAL(Postal, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$dom'(false, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$dom'(Dom, __TopXMLNS, _acc) -> [encode_vcard_DOM(Dom, __TopXMLNS) | _acc]. 'encode_vcard_ADR_$region'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_ADR_$region'(Region, __TopXMLNS, _acc) -> [encode_vcard_REGION(Region, __TopXMLNS) | _acc]. decode_vcard_N(__TopXMLNS, __IgnoreEls, {xmlel, <<"N">>, _attrs, _els}) -> {Middle, Suffix, Prefix, Family, Given} = decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined), {vcard_name, Family, Given, Middle, Prefix, Suffix}. decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [], Middle, Suffix, Prefix, Family, Given) -> {Middle, Suffix, Prefix, Family, Given}; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"FAMILY">>, _attrs, _} = _el | _els], Middle, Suffix, Prefix, Family, Given) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, decode_vcard_FAMILY(__TopXMLNS, __IgnoreEls, _el), Given); <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, decode_vcard_FAMILY(<<"vcard-temp">>, __IgnoreEls, _el), Given); _ -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given) end; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"GIVEN">>, _attrs, _} = _el | _els], Middle, Suffix, Prefix, Family, Given) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, decode_vcard_GIVEN(__TopXMLNS, __IgnoreEls, _el)); <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, decode_vcard_GIVEN(<<"vcard-temp">>, __IgnoreEls, _el)); _ -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given) end; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"MIDDLE">>, _attrs, _} = _el | _els], Middle, Suffix, Prefix, Family, Given) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_MIDDLE(__TopXMLNS, __IgnoreEls, _el), Suffix, Prefix, Family, Given); <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, decode_vcard_MIDDLE(<<"vcard-temp">>, __IgnoreEls, _el), Suffix, Prefix, Family, Given); _ -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given) end; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"PREFIX">>, _attrs, _} = _el | _els], Middle, Suffix, Prefix, Family, Given) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, decode_vcard_PREFIX(__TopXMLNS, __IgnoreEls, _el), Family, Given); <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, decode_vcard_PREFIX(<<"vcard-temp">>, __IgnoreEls, _el), Family, Given); _ -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given) end; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"SUFFIX">>, _attrs, _} = _el | _els], Middle, Suffix, Prefix, Family, Given) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, decode_vcard_SUFFIX(__TopXMLNS, __IgnoreEls, _el), Prefix, Family, Given); <<"vcard-temp">> -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, decode_vcard_SUFFIX(<<"vcard-temp">>, __IgnoreEls, _el), Prefix, Family, Given); _ -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given) end; decode_vcard_N_els(__TopXMLNS, __IgnoreEls, [_ | _els], Middle, Suffix, Prefix, Family, Given) -> decode_vcard_N_els(__TopXMLNS, __IgnoreEls, _els, Middle, Suffix, Prefix, Family, Given). encode_vcard_N({vcard_name, Family, Given, Middle, Prefix, Suffix}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = lists:reverse('encode_vcard_N_$middle'(Middle, __NewTopXMLNS, 'encode_vcard_N_$suffix'(Suffix, __NewTopXMLNS, 'encode_vcard_N_$prefix'(Prefix, __NewTopXMLNS, 'encode_vcard_N_$family'(Family, __NewTopXMLNS, 'encode_vcard_N_$given'(Given, __NewTopXMLNS, [])))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"N">>, _attrs, _els}. 'encode_vcard_N_$middle'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_N_$middle'(Middle, __TopXMLNS, _acc) -> [encode_vcard_MIDDLE(Middle, __TopXMLNS) | _acc]. 'encode_vcard_N_$suffix'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_N_$suffix'(Suffix, __TopXMLNS, _acc) -> [encode_vcard_SUFFIX(Suffix, __TopXMLNS) | _acc]. 'encode_vcard_N_$prefix'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_N_$prefix'(Prefix, __TopXMLNS, _acc) -> [encode_vcard_PREFIX(Prefix, __TopXMLNS) | _acc]. 'encode_vcard_N_$family'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_N_$family'(Family, __TopXMLNS, _acc) -> [encode_vcard_FAMILY(Family, __TopXMLNS) | _acc]. 'encode_vcard_N_$given'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_vcard_N_$given'(Given, __TopXMLNS, _acc) -> [encode_vcard_GIVEN(Given, __TopXMLNS) | _acc]. decode_vcard_CONFIDENTIAL(__TopXMLNS, __IgnoreEls, {xmlel, <<"CONFIDENTIAL">>, _attrs, _els}) -> confidential. encode_vcard_CONFIDENTIAL(confidential, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CONFIDENTIAL">>, _attrs, _els}. decode_vcard_PRIVATE(__TopXMLNS, __IgnoreEls, {xmlel, <<"PRIVATE">>, _attrs, _els}) -> private. encode_vcard_PRIVATE(private, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PRIVATE">>, _attrs, _els}. decode_vcard_PUBLIC(__TopXMLNS, __IgnoreEls, {xmlel, <<"PUBLIC">>, _attrs, _els}) -> public. encode_vcard_PUBLIC(public, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PUBLIC">>, _attrs, _els}. decode_vcard_EXTVAL(__TopXMLNS, __IgnoreEls, {xmlel, <<"EXTVAL">>, _attrs, _els}) -> Cdata = decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_EXTVAL_cdata(__TopXMLNS, Cdata); decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_EXTVAL_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_EXTVAL(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_EXTVAL_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"EXTVAL">>, _attrs, _els}. decode_vcard_EXTVAL_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_EXTVAL_cdata(__TopXMLNS, _val) -> _val. encode_vcard_EXTVAL_cdata(<<>>, _acc) -> _acc; encode_vcard_EXTVAL_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_TYPE(__TopXMLNS, __IgnoreEls, {xmlel, <<"TYPE">>, _attrs, _els}) -> Cdata = decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_TYPE_cdata(__TopXMLNS, Cdata); decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_TYPE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_TYPE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_TYPE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"TYPE">>, _attrs, _els}. decode_vcard_TYPE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_TYPE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TYPE_cdata(<<>>, _acc) -> _acc; encode_vcard_TYPE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_DESC(__TopXMLNS, __IgnoreEls, {xmlel, <<"DESC">>, _attrs, _els}) -> Cdata = decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_DESC_cdata(__TopXMLNS, Cdata); decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_DESC_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_DESC(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_DESC_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"DESC">>, _attrs, _els}. decode_vcard_DESC_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_DESC_cdata(__TopXMLNS, _val) -> _val. encode_vcard_DESC_cdata(<<>>, _acc) -> _acc; encode_vcard_DESC_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_URL(__TopXMLNS, __IgnoreEls, {xmlel, <<"URL">>, _attrs, _els}) -> Cdata = decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_URL_cdata(__TopXMLNS, Cdata); decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_URL_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_URL(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_URL_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"URL">>, _attrs, _els}. decode_vcard_URL_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_URL_cdata(__TopXMLNS, _val) -> _val. encode_vcard_URL_cdata(<<>>, _acc) -> _acc; encode_vcard_URL_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_UID(__TopXMLNS, __IgnoreEls, {xmlel, <<"UID">>, _attrs, _els}) -> Cdata = decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_UID_cdata(__TopXMLNS, Cdata); decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_UID_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_UID(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_UID_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"UID">>, _attrs, _els}. decode_vcard_UID_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_UID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_UID_cdata(<<>>, _acc) -> _acc; encode_vcard_UID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_SORT_STRING(__TopXMLNS, __IgnoreEls, {xmlel, <<"SORT-STRING">>, _attrs, _els}) -> Cdata = decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_SORT_STRING_cdata(__TopXMLNS, Cdata); decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_SORT_STRING_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_SORT_STRING(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_SORT_STRING_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"SORT-STRING">>, _attrs, _els}. decode_vcard_SORT_STRING_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_SORT_STRING_cdata(__TopXMLNS, _val) -> _val. encode_vcard_SORT_STRING_cdata(<<>>, _acc) -> _acc; encode_vcard_SORT_STRING_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_REV(__TopXMLNS, __IgnoreEls, {xmlel, <<"REV">>, _attrs, _els}) -> Cdata = decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_REV_cdata(__TopXMLNS, Cdata); decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_REV_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_REV(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_REV_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"REV">>, _attrs, _els}. decode_vcard_REV_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_REV_cdata(__TopXMLNS, _val) -> _val. encode_vcard_REV_cdata(<<>>, _acc) -> _acc; encode_vcard_REV_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_PRODID(__TopXMLNS, __IgnoreEls, {xmlel, <<"PRODID">>, _attrs, _els}) -> Cdata = decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_PRODID_cdata(__TopXMLNS, Cdata); decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_PRODID_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_PRODID(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_PRODID_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PRODID">>, _attrs, _els}. decode_vcard_PRODID_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_PRODID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PRODID_cdata(<<>>, _acc) -> _acc; encode_vcard_PRODID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_NOTE(__TopXMLNS, __IgnoreEls, {xmlel, <<"NOTE">>, _attrs, _els}) -> Cdata = decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_NOTE_cdata(__TopXMLNS, Cdata); decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_NOTE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_NOTE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_NOTE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"NOTE">>, _attrs, _els}. decode_vcard_NOTE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_NOTE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NOTE_cdata(<<>>, _acc) -> _acc; encode_vcard_NOTE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_KEYWORD(__TopXMLNS, __IgnoreEls, {xmlel, <<"KEYWORD">>, _attrs, _els}) -> Cdata = decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_KEYWORD_cdata(__TopXMLNS, Cdata); decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_KEYWORD_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_KEYWORD(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_KEYWORD_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"KEYWORD">>, _attrs, _els}. decode_vcard_KEYWORD_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_KEYWORD_cdata(__TopXMLNS, _val) -> _val. encode_vcard_KEYWORD_cdata(<<>>, _acc) -> _acc; encode_vcard_KEYWORD_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_ROLE(__TopXMLNS, __IgnoreEls, {xmlel, <<"ROLE">>, _attrs, _els}) -> Cdata = decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_ROLE_cdata(__TopXMLNS, Cdata); decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_ROLE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_ROLE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_ROLE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ROLE">>, _attrs, _els}. decode_vcard_ROLE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_ROLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ROLE_cdata(<<>>, _acc) -> _acc; encode_vcard_ROLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_TITLE(__TopXMLNS, __IgnoreEls, {xmlel, <<"TITLE">>, _attrs, _els}) -> Cdata = decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_TITLE_cdata(__TopXMLNS, Cdata); decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_TITLE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_TITLE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_TITLE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"TITLE">>, _attrs, _els}. decode_vcard_TITLE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_TITLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TITLE_cdata(<<>>, _acc) -> _acc; encode_vcard_TITLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_TZ(__TopXMLNS, __IgnoreEls, {xmlel, <<"TZ">>, _attrs, _els}) -> Cdata = decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_TZ_cdata(__TopXMLNS, Cdata); decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_TZ_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_TZ(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_TZ_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"TZ">>, _attrs, _els}. decode_vcard_TZ_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_TZ_cdata(__TopXMLNS, _val) -> _val. encode_vcard_TZ_cdata(<<>>, _acc) -> _acc; encode_vcard_TZ_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_MAILER(__TopXMLNS, __IgnoreEls, {xmlel, <<"MAILER">>, _attrs, _els}) -> Cdata = decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_MAILER_cdata(__TopXMLNS, Cdata); decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_MAILER_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_MAILER(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_MAILER_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"MAILER">>, _attrs, _els}. decode_vcard_MAILER_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_MAILER_cdata(__TopXMLNS, _val) -> _val. encode_vcard_MAILER_cdata(<<>>, _acc) -> _acc; encode_vcard_MAILER_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_JABBERID(__TopXMLNS, __IgnoreEls, {xmlel, <<"JABBERID">>, _attrs, _els}) -> Cdata = decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_JABBERID_cdata(__TopXMLNS, Cdata); decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_JABBERID_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_JABBERID(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_JABBERID_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"JABBERID">>, _attrs, _els}. decode_vcard_JABBERID_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_JABBERID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_JABBERID_cdata(<<>>, _acc) -> _acc; encode_vcard_JABBERID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_BDAY(__TopXMLNS, __IgnoreEls, {xmlel, <<"BDAY">>, _attrs, _els}) -> Cdata = decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_BDAY_cdata(__TopXMLNS, Cdata); decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_BDAY_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_BDAY(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_BDAY_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"BDAY">>, _attrs, _els}. decode_vcard_BDAY_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_BDAY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_BDAY_cdata(<<>>, _acc) -> _acc; encode_vcard_BDAY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_NICKNAME(__TopXMLNS, __IgnoreEls, {xmlel, <<"NICKNAME">>, _attrs, _els}) -> Cdata = decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_NICKNAME_cdata(__TopXMLNS, Cdata); decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_NICKNAME_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_NICKNAME(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_NICKNAME_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"NICKNAME">>, _attrs, _els}. decode_vcard_NICKNAME_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_NICKNAME_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NICKNAME_cdata(<<>>, _acc) -> _acc; encode_vcard_NICKNAME_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_FN(__TopXMLNS, __IgnoreEls, {xmlel, <<"FN">>, _attrs, _els}) -> Cdata = decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_FN_cdata(__TopXMLNS, Cdata); decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_FN_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_FN(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_FN_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"FN">>, _attrs, _els}. decode_vcard_FN_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_FN_cdata(__TopXMLNS, _val) -> _val. encode_vcard_FN_cdata(<<>>, _acc) -> _acc; encode_vcard_FN_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_VERSION(__TopXMLNS, __IgnoreEls, {xmlel, <<"VERSION">>, _attrs, _els}) -> Cdata = decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_VERSION_cdata(__TopXMLNS, Cdata); decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_VERSION_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_VERSION(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_VERSION_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"VERSION">>, _attrs, _els}. decode_vcard_VERSION_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_VERSION_cdata(__TopXMLNS, _val) -> _val. encode_vcard_VERSION_cdata(<<>>, _acc) -> _acc; encode_vcard_VERSION_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_CRED(__TopXMLNS, __IgnoreEls, {xmlel, <<"CRED">>, _attrs, _els}) -> Cdata = decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_CRED_cdata(__TopXMLNS, Cdata); decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_CRED_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_CRED(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_CRED_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CRED">>, _attrs, _els}. decode_vcard_CRED_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_CRED_cdata(__TopXMLNS, _val) -> _val. encode_vcard_CRED_cdata(<<>>, _acc) -> _acc; encode_vcard_CRED_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_PHONETIC(__TopXMLNS, __IgnoreEls, {xmlel, <<"PHONETIC">>, _attrs, _els}) -> Cdata = decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_PHONETIC_cdata(__TopXMLNS, Cdata); decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_PHONETIC_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_PHONETIC(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_PHONETIC_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PHONETIC">>, _attrs, _els}. decode_vcard_PHONETIC_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_PHONETIC_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PHONETIC_cdata(<<>>, _acc) -> _acc; encode_vcard_PHONETIC_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_ORGUNIT(__TopXMLNS, __IgnoreEls, {xmlel, <<"ORGUNIT">>, _attrs, _els}) -> Cdata = decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_ORGUNIT_cdata(__TopXMLNS, Cdata); decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_ORGUNIT_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_ORGUNIT(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_ORGUNIT_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ORGUNIT">>, _attrs, _els}. decode_vcard_ORGUNIT_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_ORGUNIT_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ORGUNIT_cdata(<<>>, _acc) -> _acc; encode_vcard_ORGUNIT_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_ORGNAME(__TopXMLNS, __IgnoreEls, {xmlel, <<"ORGNAME">>, _attrs, _els}) -> Cdata = decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_ORGNAME_cdata(__TopXMLNS, Cdata); decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_ORGNAME_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_ORGNAME(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_ORGNAME_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ORGNAME">>, _attrs, _els}. decode_vcard_ORGNAME_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_ORGNAME_cdata(__TopXMLNS, _val) -> _val. encode_vcard_ORGNAME_cdata(<<>>, _acc) -> _acc; encode_vcard_ORGNAME_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_LON(__TopXMLNS, __IgnoreEls, {xmlel, <<"LON">>, _attrs, _els}) -> Cdata = decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_LON_cdata(__TopXMLNS, Cdata); decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_LON_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_LON(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_LON_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LON">>, _attrs, _els}. decode_vcard_LON_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_LON_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LON_cdata(<<>>, _acc) -> _acc; encode_vcard_LON_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_LAT(__TopXMLNS, __IgnoreEls, {xmlel, <<"LAT">>, _attrs, _els}) -> Cdata = decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_LAT_cdata(__TopXMLNS, Cdata); decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_LAT_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_LAT(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_LAT_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LAT">>, _attrs, _els}. decode_vcard_LAT_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_LAT_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LAT_cdata(<<>>, _acc) -> _acc; encode_vcard_LAT_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_USERID(__TopXMLNS, __IgnoreEls, {xmlel, <<"USERID">>, _attrs, _els}) -> Cdata = decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_USERID_cdata(__TopXMLNS, Cdata); decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_USERID_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_USERID(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_USERID_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"USERID">>, _attrs, _els}. decode_vcard_USERID_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_USERID_cdata(__TopXMLNS, _val) -> _val. encode_vcard_USERID_cdata(<<>>, _acc) -> _acc; encode_vcard_USERID_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_NUMBER(__TopXMLNS, __IgnoreEls, {xmlel, <<"NUMBER">>, _attrs, _els}) -> Cdata = decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_NUMBER_cdata(__TopXMLNS, Cdata); decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_NUMBER_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_NUMBER(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_NUMBER_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"NUMBER">>, _attrs, _els}. decode_vcard_NUMBER_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_NUMBER_cdata(__TopXMLNS, _val) -> _val. encode_vcard_NUMBER_cdata(<<>>, _acc) -> _acc; encode_vcard_NUMBER_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_LINE(__TopXMLNS, __IgnoreEls, {xmlel, <<"LINE">>, _attrs, _els}) -> Cdata = decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_LINE_cdata(__TopXMLNS, Cdata); decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_LINE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_LINE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_LINE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LINE">>, _attrs, _els}. decode_vcard_LINE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_LINE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LINE_cdata(<<>>, _acc) -> _acc; encode_vcard_LINE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_CTRY(__TopXMLNS, __IgnoreEls, {xmlel, <<"CTRY">>, _attrs, _els}) -> Cdata = decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_CTRY_cdata(__TopXMLNS, Cdata); decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_CTRY_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_CTRY(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_CTRY_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CTRY">>, _attrs, _els}. decode_vcard_CTRY_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_CTRY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_CTRY_cdata(<<>>, _acc) -> _acc; encode_vcard_CTRY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_PCODE(__TopXMLNS, __IgnoreEls, {xmlel, <<"PCODE">>, _attrs, _els}) -> Cdata = decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_PCODE_cdata(__TopXMLNS, Cdata); decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_PCODE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_PCODE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_PCODE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PCODE">>, _attrs, _els}. decode_vcard_PCODE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_PCODE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PCODE_cdata(<<>>, _acc) -> _acc; encode_vcard_PCODE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_REGION(__TopXMLNS, __IgnoreEls, {xmlel, <<"REGION">>, _attrs, _els}) -> Cdata = decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_REGION_cdata(__TopXMLNS, Cdata); decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_REGION_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_REGION(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_REGION_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"REGION">>, _attrs, _els}. decode_vcard_REGION_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_REGION_cdata(__TopXMLNS, _val) -> _val. encode_vcard_REGION_cdata(<<>>, _acc) -> _acc; encode_vcard_REGION_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_LOCALITY(__TopXMLNS, __IgnoreEls, {xmlel, <<"LOCALITY">>, _attrs, _els}) -> Cdata = decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_LOCALITY_cdata(__TopXMLNS, Cdata); decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_LOCALITY_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_LOCALITY(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_LOCALITY_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"LOCALITY">>, _attrs, _els}. decode_vcard_LOCALITY_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_LOCALITY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_LOCALITY_cdata(<<>>, _acc) -> _acc; encode_vcard_LOCALITY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_STREET(__TopXMLNS, __IgnoreEls, {xmlel, <<"STREET">>, _attrs, _els}) -> Cdata = decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_STREET_cdata(__TopXMLNS, Cdata); decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_STREET_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_STREET(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_STREET_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"STREET">>, _attrs, _els}. decode_vcard_STREET_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_STREET_cdata(__TopXMLNS, _val) -> _val. encode_vcard_STREET_cdata(<<>>, _acc) -> _acc; encode_vcard_STREET_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_EXTADD(__TopXMLNS, __IgnoreEls, {xmlel, <<"EXTADD">>, _attrs, _els}) -> Cdata = decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_EXTADD_cdata(__TopXMLNS, Cdata); decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_EXTADD_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_EXTADD(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_EXTADD_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"EXTADD">>, _attrs, _els}. decode_vcard_EXTADD_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_EXTADD_cdata(__TopXMLNS, _val) -> _val. encode_vcard_EXTADD_cdata(<<>>, _acc) -> _acc; encode_vcard_EXTADD_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_POBOX(__TopXMLNS, __IgnoreEls, {xmlel, <<"POBOX">>, _attrs, _els}) -> Cdata = decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_POBOX_cdata(__TopXMLNS, Cdata); decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_POBOX_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_POBOX(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_POBOX_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"POBOX">>, _attrs, _els}. decode_vcard_POBOX_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_POBOX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_POBOX_cdata(<<>>, _acc) -> _acc; encode_vcard_POBOX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_SUFFIX(__TopXMLNS, __IgnoreEls, {xmlel, <<"SUFFIX">>, _attrs, _els}) -> Cdata = decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_SUFFIX_cdata(__TopXMLNS, Cdata); decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_SUFFIX_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_SUFFIX(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_SUFFIX_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"SUFFIX">>, _attrs, _els}. decode_vcard_SUFFIX_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_SUFFIX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_SUFFIX_cdata(<<>>, _acc) -> _acc; encode_vcard_SUFFIX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_PREFIX(__TopXMLNS, __IgnoreEls, {xmlel, <<"PREFIX">>, _attrs, _els}) -> Cdata = decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_PREFIX_cdata(__TopXMLNS, Cdata); decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_PREFIX_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_PREFIX(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_PREFIX_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PREFIX">>, _attrs, _els}. decode_vcard_PREFIX_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_PREFIX_cdata(__TopXMLNS, _val) -> _val. encode_vcard_PREFIX_cdata(<<>>, _acc) -> _acc; encode_vcard_PREFIX_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_MIDDLE(__TopXMLNS, __IgnoreEls, {xmlel, <<"MIDDLE">>, _attrs, _els}) -> Cdata = decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_MIDDLE_cdata(__TopXMLNS, Cdata); decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_MIDDLE_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_MIDDLE(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_MIDDLE_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"MIDDLE">>, _attrs, _els}. decode_vcard_MIDDLE_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_MIDDLE_cdata(__TopXMLNS, _val) -> _val. encode_vcard_MIDDLE_cdata(<<>>, _acc) -> _acc; encode_vcard_MIDDLE_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_GIVEN(__TopXMLNS, __IgnoreEls, {xmlel, <<"GIVEN">>, _attrs, _els}) -> Cdata = decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_GIVEN_cdata(__TopXMLNS, Cdata); decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_GIVEN_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_GIVEN(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_GIVEN_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"GIVEN">>, _attrs, _els}. decode_vcard_GIVEN_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_GIVEN_cdata(__TopXMLNS, _val) -> _val. encode_vcard_GIVEN_cdata(<<>>, _acc) -> _acc; encode_vcard_GIVEN_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_FAMILY(__TopXMLNS, __IgnoreEls, {xmlel, <<"FAMILY">>, _attrs, _els}) -> Cdata = decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_vcard_FAMILY_cdata(__TopXMLNS, Cdata); decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_vcard_FAMILY_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_vcard_FAMILY(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = encode_vcard_FAMILY_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"FAMILY">>, _attrs, _els}. decode_vcard_FAMILY_cdata(__TopXMLNS, <<>>) -> <<>>; decode_vcard_FAMILY_cdata(__TopXMLNS, _val) -> _val. encode_vcard_FAMILY_cdata(<<>>, _acc) -> _acc; encode_vcard_FAMILY_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_vcard_X400(__TopXMLNS, __IgnoreEls, {xmlel, <<"X400">>, _attrs, _els}) -> true. encode_vcard_X400(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"X400">>, _attrs, _els}. decode_vcard_INTERNET(__TopXMLNS, __IgnoreEls, {xmlel, <<"INTERNET">>, _attrs, _els}) -> true. encode_vcard_INTERNET(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"INTERNET">>, _attrs, _els}. decode_vcard_PREF(__TopXMLNS, __IgnoreEls, {xmlel, <<"PREF">>, _attrs, _els}) -> true. encode_vcard_PREF(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PREF">>, _attrs, _els}. decode_vcard_INTL(__TopXMLNS, __IgnoreEls, {xmlel, <<"INTL">>, _attrs, _els}) -> true. encode_vcard_INTL(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"INTL">>, _attrs, _els}. decode_vcard_DOM(__TopXMLNS, __IgnoreEls, {xmlel, <<"DOM">>, _attrs, _els}) -> true. encode_vcard_DOM(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"DOM">>, _attrs, _els}. decode_vcard_PARCEL(__TopXMLNS, __IgnoreEls, {xmlel, <<"PARCEL">>, _attrs, _els}) -> true. encode_vcard_PARCEL(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PARCEL">>, _attrs, _els}. decode_vcard_POSTAL(__TopXMLNS, __IgnoreEls, {xmlel, <<"POSTAL">>, _attrs, _els}) -> true. encode_vcard_POSTAL(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"POSTAL">>, _attrs, _els}. decode_vcard_PCS(__TopXMLNS, __IgnoreEls, {xmlel, <<"PCS">>, _attrs, _els}) -> true. encode_vcard_PCS(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PCS">>, _attrs, _els}. decode_vcard_ISDN(__TopXMLNS, __IgnoreEls, {xmlel, <<"ISDN">>, _attrs, _els}) -> true. encode_vcard_ISDN(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ISDN">>, _attrs, _els}. decode_vcard_MODEM(__TopXMLNS, __IgnoreEls, {xmlel, <<"MODEM">>, _attrs, _els}) -> true. encode_vcard_MODEM(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"MODEM">>, _attrs, _els}. decode_vcard_BBS(__TopXMLNS, __IgnoreEls, {xmlel, <<"BBS">>, _attrs, _els}) -> true. encode_vcard_BBS(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"BBS">>, _attrs, _els}. decode_vcard_VIDEO(__TopXMLNS, __IgnoreEls, {xmlel, <<"VIDEO">>, _attrs, _els}) -> true. encode_vcard_VIDEO(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"VIDEO">>, _attrs, _els}. decode_vcard_CELL(__TopXMLNS, __IgnoreEls, {xmlel, <<"CELL">>, _attrs, _els}) -> true. encode_vcard_CELL(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"CELL">>, _attrs, _els}. decode_vcard_MSG(__TopXMLNS, __IgnoreEls, {xmlel, <<"MSG">>, _attrs, _els}) -> true. encode_vcard_MSG(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"MSG">>, _attrs, _els}. decode_vcard_PAGER(__TopXMLNS, __IgnoreEls, {xmlel, <<"PAGER">>, _attrs, _els}) -> true. encode_vcard_PAGER(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"PAGER">>, _attrs, _els}. decode_vcard_FAX(__TopXMLNS, __IgnoreEls, {xmlel, <<"FAX">>, _attrs, _els}) -> true. encode_vcard_FAX(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"FAX">>, _attrs, _els}. decode_vcard_VOICE(__TopXMLNS, __IgnoreEls, {xmlel, <<"VOICE">>, _attrs, _els}) -> true. encode_vcard_VOICE(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"VOICE">>, _attrs, _els}. decode_vcard_WORK(__TopXMLNS, __IgnoreEls, {xmlel, <<"WORK">>, _attrs, _els}) -> true. encode_vcard_WORK(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"WORK">>, _attrs, _els}. decode_vcard_HOME(__TopXMLNS, __IgnoreEls, {xmlel, <<"HOME">>, _attrs, _els}) -> true. encode_vcard_HOME(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"vcard-temp">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"HOME">>, _attrs, _els}. decode_stream_error(__TopXMLNS, __IgnoreEls, {xmlel, <<"stream:error">>, _attrs, _els}) -> {Text, Reason} = decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {stream_error, Reason, Text}. decode_stream_error_els(__TopXMLNS, __IgnoreEls, [], Text, Reason) -> {Text, Reason}; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, decode_stream_error_text(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el), Reason); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"bad-format">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_bad_format(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"bad-namespace-prefix">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_bad_namespace_prefix(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"connection-timeout">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_connection_timeout(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"host-gone">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_host_gone(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"host-unknown">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_host_unknown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"improper-addressing">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_improper_addressing(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-from">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_invalid_from(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-id">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_invalid_id(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-namespace">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_invalid_namespace(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-xml">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_invalid_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-well-formed">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_not_well_formed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remote-connection-failed">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_remote_connection_failed(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"reset">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_reset(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"restricted-xml">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_restricted_xml(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"see-other-host">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_see_other_host(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"system-shutdown">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_system_shutdown(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unsupported-encoding">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_unsupported_encoding(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unsupported-stanza-type">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_unsupported_stanza_type(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unsupported-version">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-streams">> -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_stream_error_unsupported_version(<<"urn:ietf:params:xml:ns:xmpp-streams">>, __IgnoreEls, _el)); _ -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_stream_error_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text, Reason) -> decode_stream_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason). encode_stream_error({stream_error, Reason, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = lists:reverse('encode_stream_error_$text'(Text, __NewTopXMLNS, 'encode_stream_error_$reason'(Reason, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"stream:error">>, _attrs, _els}. 'encode_stream_error_$text'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_stream_error_$text'(Text, __TopXMLNS, _acc) -> [encode_stream_error_text(Text, __TopXMLNS) | _acc]. 'encode_stream_error_$reason'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_stream_error_$reason'('bad-format' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_bad_format(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('bad-namespace-prefix' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_bad_namespace_prefix(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'(conflict = Reason, __TopXMLNS, _acc) -> [encode_stream_error_conflict(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('connection-timeout' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_connection_timeout(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('host-gone' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_host_gone(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('host-unknown' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_host_unknown(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('improper-addressing' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_improper_addressing(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('internal-server-error' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_internal_server_error(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('invalid-from' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_invalid_from(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('invalid-id' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_invalid_id(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('invalid-namespace' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_invalid_namespace(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('invalid-xml' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_invalid_xml(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('not-authorized' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_not_authorized(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('not-well-formed' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_not_well_formed(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('policy-violation' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_policy_violation(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('remote-connection-failed' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_remote_connection_failed(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'(reset = Reason, __TopXMLNS, _acc) -> [encode_stream_error_reset(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('resource-constraint' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_resource_constraint(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('restricted-xml' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_restricted_xml(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'({'see-other-host', _} = Reason, __TopXMLNS, _acc) -> [encode_stream_error_see_other_host(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('system-shutdown' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_system_shutdown(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('undefined-condition' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_undefined_condition(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('unsupported-encoding' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_unsupported_encoding(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('unsupported-stanza-type' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_unsupported_stanza_type(Reason, __TopXMLNS) | _acc]; 'encode_stream_error_$reason'('unsupported-version' = Reason, __TopXMLNS, _acc) -> [encode_stream_error_unsupported_version(Reason, __TopXMLNS) | _acc]. decode_stream_error_unsupported_version(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported-version">>, _attrs, _els}) -> 'unsupported-version'. encode_stream_error_unsupported_version('unsupported-version', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsupported-version">>, _attrs, _els}. decode_stream_error_unsupported_stanza_type(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported-stanza-type">>, _attrs, _els}) -> 'unsupported-stanza-type'. encode_stream_error_unsupported_stanza_type('unsupported-stanza-type', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsupported-stanza-type">>, _attrs, _els}. decode_stream_error_unsupported_encoding(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported-encoding">>, _attrs, _els}) -> 'unsupported-encoding'. encode_stream_error_unsupported_encoding('unsupported-encoding', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsupported-encoding">>, _attrs, _els}. decode_stream_error_undefined_condition(__TopXMLNS, __IgnoreEls, {xmlel, <<"undefined-condition">>, _attrs, _els}) -> 'undefined-condition'. encode_stream_error_undefined_condition('undefined-condition', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"undefined-condition">>, _attrs, _els}. decode_stream_error_system_shutdown(__TopXMLNS, __IgnoreEls, {xmlel, <<"system-shutdown">>, _attrs, _els}) -> 'system-shutdown'. encode_stream_error_system_shutdown('system-shutdown', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"system-shutdown">>, _attrs, _els}. decode_stream_error_see_other_host(__TopXMLNS, __IgnoreEls, {xmlel, <<"see-other-host">>, _attrs, _els}) -> Host = decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {'see-other-host', Host}. decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, [], Host) -> decode_stream_error_see_other_host_cdata(__TopXMLNS, Host); decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Host) -> decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, [_ | _els], Host) -> decode_stream_error_see_other_host_els(__TopXMLNS, __IgnoreEls, _els, Host). encode_stream_error_see_other_host({'see-other-host', Host}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = encode_stream_error_see_other_host_cdata(Host, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"see-other-host">>, _attrs, _els}. decode_stream_error_see_other_host_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"see-other-host">>, __TopXMLNS}}); decode_stream_error_see_other_host_cdata(__TopXMLNS, _val) -> case catch dec_host_port(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"see-other-host">>, __TopXMLNS}}); _res -> _res end. encode_stream_error_see_other_host_cdata(_val, _acc) -> [{xmlcdata, enc_host_port(_val)} | _acc]. decode_stream_error_restricted_xml(__TopXMLNS, __IgnoreEls, {xmlel, <<"restricted-xml">>, _attrs, _els}) -> 'restricted-xml'. encode_stream_error_restricted_xml('restricted-xml', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"restricted-xml">>, _attrs, _els}. decode_stream_error_resource_constraint(__TopXMLNS, __IgnoreEls, {xmlel, <<"resource-constraint">>, _attrs, _els}) -> 'resource-constraint'. encode_stream_error_resource_constraint('resource-constraint', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"resource-constraint">>, _attrs, _els}. decode_stream_error_reset(__TopXMLNS, __IgnoreEls, {xmlel, <<"reset">>, _attrs, _els}) -> reset. encode_stream_error_reset(reset, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"reset">>, _attrs, _els}. decode_stream_error_remote_connection_failed(__TopXMLNS, __IgnoreEls, {xmlel, <<"remote-connection-failed">>, _attrs, _els}) -> 'remote-connection-failed'. encode_stream_error_remote_connection_failed('remote-connection-failed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"remote-connection-failed">>, _attrs, _els}. decode_stream_error_policy_violation(__TopXMLNS, __IgnoreEls, {xmlel, <<"policy-violation">>, _attrs, _els}) -> 'policy-violation'. encode_stream_error_policy_violation('policy-violation', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"policy-violation">>, _attrs, _els}. decode_stream_error_not_well_formed(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-well-formed">>, _attrs, _els}) -> 'not-well-formed'. encode_stream_error_not_well_formed('not-well-formed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-well-formed">>, _attrs, _els}. decode_stream_error_not_authorized(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-authorized">>, _attrs, _els}) -> 'not-authorized'. encode_stream_error_not_authorized('not-authorized', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-authorized">>, _attrs, _els}. decode_stream_error_invalid_xml(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-xml">>, _attrs, _els}) -> 'invalid-xml'. encode_stream_error_invalid_xml('invalid-xml', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-xml">>, _attrs, _els}. decode_stream_error_invalid_namespace(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-namespace">>, _attrs, _els}) -> 'invalid-namespace'. encode_stream_error_invalid_namespace('invalid-namespace', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-namespace">>, _attrs, _els}. decode_stream_error_invalid_id(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-id">>, _attrs, _els}) -> 'invalid-id'. encode_stream_error_invalid_id('invalid-id', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-id">>, _attrs, _els}. decode_stream_error_invalid_from(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-from">>, _attrs, _els}) -> 'invalid-from'. encode_stream_error_invalid_from('invalid-from', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-from">>, _attrs, _els}. decode_stream_error_internal_server_error(__TopXMLNS, __IgnoreEls, {xmlel, <<"internal-server-error">>, _attrs, _els}) -> 'internal-server-error'. encode_stream_error_internal_server_error('internal-server-error', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"internal-server-error">>, _attrs, _els}. decode_stream_error_improper_addressing(__TopXMLNS, __IgnoreEls, {xmlel, <<"improper-addressing">>, _attrs, _els}) -> 'improper-addressing'. encode_stream_error_improper_addressing('improper-addressing', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"improper-addressing">>, _attrs, _els}. decode_stream_error_host_unknown(__TopXMLNS, __IgnoreEls, {xmlel, <<"host-unknown">>, _attrs, _els}) -> 'host-unknown'. encode_stream_error_host_unknown('host-unknown', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"host-unknown">>, _attrs, _els}. decode_stream_error_host_gone(__TopXMLNS, __IgnoreEls, {xmlel, <<"host-gone">>, _attrs, _els}) -> 'host-gone'. encode_stream_error_host_gone('host-gone', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"host-gone">>, _attrs, _els}. decode_stream_error_connection_timeout(__TopXMLNS, __IgnoreEls, {xmlel, <<"connection-timeout">>, _attrs, _els}) -> 'connection-timeout'. encode_stream_error_connection_timeout('connection-timeout', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"connection-timeout">>, _attrs, _els}. decode_stream_error_conflict(__TopXMLNS, __IgnoreEls, {xmlel, <<"conflict">>, _attrs, _els}) -> conflict. encode_stream_error_conflict(conflict, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"conflict">>, _attrs, _els}. decode_stream_error_bad_namespace_prefix(__TopXMLNS, __IgnoreEls, {xmlel, <<"bad-namespace-prefix">>, _attrs, _els}) -> 'bad-namespace-prefix'. encode_stream_error_bad_namespace_prefix('bad-namespace-prefix', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"bad-namespace-prefix">>, _attrs, _els}. decode_stream_error_bad_format(__TopXMLNS, __IgnoreEls, {xmlel, <<"bad-format">>, _attrs, _els}) -> 'bad-format'. encode_stream_error_bad_format('bad-format', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"bad-format">>, _attrs, _els}. decode_stream_error_text(__TopXMLNS, __IgnoreEls, {xmlel, <<"text">>, _attrs, _els}) -> Data = decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_stream_error_text_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_stream_error_text_cdata(__TopXMLNS, Data); decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_stream_error_text_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_stream_error_text_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_stream_error_text_attrs(__TopXMLNS, _attrs, _val); decode_stream_error_text_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_stream_error_text_attrs(__TopXMLNS, _attrs, Lang); decode_stream_error_text_attrs(__TopXMLNS, [], Lang) -> 'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, Lang). encode_stream_error_text({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-streams">>, [], __TopXMLNS), _els = encode_stream_error_text_cdata(Data, []), _attrs = 'encode_stream_error_text_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"text">>, _attrs, _els}. 'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_stream_error_text_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_stream_error_text_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_stream_error_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_stream_error_text_cdata(__TopXMLNS, <<>>) -> <<>>; decode_stream_error_text_cdata(__TopXMLNS, _val) -> _val. encode_stream_error_text_cdata(<<>>, _acc) -> _acc; encode_stream_error_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_time(__TopXMLNS, __IgnoreEls, {xmlel, <<"time">>, _attrs, _els}) -> {Utc, Tzo} = decode_time_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {time, Tzo, Utc}. decode_time_els(__TopXMLNS, __IgnoreEls, [], Utc, Tzo) -> {Utc, Tzo}; decode_time_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"tzo">>, _attrs, _} = _el | _els], Utc, Tzo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:time">> -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, Utc, decode_time_tzo(__TopXMLNS, __IgnoreEls, _el)); <<"urn:xmpp:time">> -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, Utc, decode_time_tzo(<<"urn:xmpp:time">>, __IgnoreEls, _el)); _ -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, Utc, Tzo) end; decode_time_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"utc">>, _attrs, _} = _el | _els], Utc, Tzo) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:time">> -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, decode_time_utc(__TopXMLNS, __IgnoreEls, _el), Tzo); <<"urn:xmpp:time">> -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, decode_time_utc(<<"urn:xmpp:time">>, __IgnoreEls, _el), Tzo); _ -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, Utc, Tzo) end; decode_time_els(__TopXMLNS, __IgnoreEls, [_ | _els], Utc, Tzo) -> decode_time_els(__TopXMLNS, __IgnoreEls, _els, Utc, Tzo). encode_time({time, Tzo, Utc}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:time">>, [], __TopXMLNS), _els = lists:reverse('encode_time_$utc'(Utc, __NewTopXMLNS, 'encode_time_$tzo'(Tzo, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"time">>, _attrs, _els}. 'encode_time_$utc'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_time_$utc'(Utc, __TopXMLNS, _acc) -> [encode_time_utc(Utc, __TopXMLNS) | _acc]. 'encode_time_$tzo'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_time_$tzo'(Tzo, __TopXMLNS, _acc) -> [encode_time_tzo(Tzo, __TopXMLNS) | _acc]. decode_time_tzo(__TopXMLNS, __IgnoreEls, {xmlel, <<"tzo">>, _attrs, _els}) -> Cdata = decode_time_tzo_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_time_tzo_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_time_tzo_cdata(__TopXMLNS, Cdata); decode_time_tzo_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_time_tzo_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_time_tzo_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_time_tzo_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_time_tzo(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:time">>, [], __TopXMLNS), _els = encode_time_tzo_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"tzo">>, _attrs, _els}. decode_time_tzo_cdata(__TopXMLNS, <<>>) -> undefined; decode_time_tzo_cdata(__TopXMLNS, _val) -> case catch dec_tzo(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"tzo">>, __TopXMLNS}}); _res -> _res end. encode_time_tzo_cdata(undefined, _acc) -> _acc; encode_time_tzo_cdata(_val, _acc) -> [{xmlcdata, enc_tzo(_val)} | _acc]. decode_time_utc(__TopXMLNS, __IgnoreEls, {xmlel, <<"utc">>, _attrs, _els}) -> Cdata = decode_time_utc_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_time_utc_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_time_utc_cdata(__TopXMLNS, Cdata); decode_time_utc_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_time_utc_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_time_utc_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_time_utc_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_time_utc(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:time">>, [], __TopXMLNS), _els = encode_time_utc_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"utc">>, _attrs, _els}. decode_time_utc_cdata(__TopXMLNS, <<>>) -> undefined; decode_time_utc_cdata(__TopXMLNS, _val) -> case catch dec_utc(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"utc">>, __TopXMLNS}}); _res -> _res end. encode_time_utc_cdata(undefined, _acc) -> _acc; encode_time_utc_cdata(_val, _acc) -> [{xmlcdata, enc_utc(_val)} | _acc]. decode_ping(__TopXMLNS, __IgnoreEls, {xmlel, <<"ping">>, _attrs, _els}) -> {ping}. encode_ping({ping}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:ping">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ping">>, _attrs, _els}. decode_session(__TopXMLNS, __IgnoreEls, {xmlel, <<"session">>, _attrs, _els}) -> Optional = decode_session_els(__TopXMLNS, __IgnoreEls, _els, false), {xmpp_session, Optional}. decode_session_els(__TopXMLNS, __IgnoreEls, [], Optional) -> Optional; decode_session_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"optional">>, _attrs, _} = _el | _els], Optional) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-session">> -> decode_session_els(__TopXMLNS, __IgnoreEls, _els, decode_session_optional(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-session">> -> decode_session_els(__TopXMLNS, __IgnoreEls, _els, decode_session_optional(<<"urn:ietf:params:xml:ns:xmpp-session">>, __IgnoreEls, _el)); _ -> decode_session_els(__TopXMLNS, __IgnoreEls, _els, Optional) end; decode_session_els(__TopXMLNS, __IgnoreEls, [_ | _els], Optional) -> decode_session_els(__TopXMLNS, __IgnoreEls, _els, Optional). encode_session({xmpp_session, Optional}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-session">>, [], __TopXMLNS), _els = lists:reverse('encode_session_$optional'(Optional, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"session">>, _attrs, _els}. 'encode_session_$optional'(false, __TopXMLNS, _acc) -> _acc; 'encode_session_$optional'(Optional, __TopXMLNS, _acc) -> [encode_session_optional(Optional, __TopXMLNS) | _acc]. decode_session_optional(__TopXMLNS, __IgnoreEls, {xmlel, <<"optional">>, _attrs, _els}) -> true. encode_session_optional(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-session">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"optional">>, _attrs, _els}. decode_register(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els} = decode_register_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, undefined, false, undefined, undefined, undefined, undefined, undefined, false, undefined, undefined, undefined, undefined, undefined, []), {register, Registered, Remove, Instructions, Username, Nick, Password, Name, First, Last, Email, Address, City, State, Zip, Phone, Url, Date, Misc, Text, Key, Xdata, __Els}. decode_register_els(__TopXMLNS, __IgnoreEls, [], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> {Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, lists:reverse(__Els)}; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el), Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"registered">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, decode_register_registered(__TopXMLNS, __IgnoreEls, _el), Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, decode_register_registered(<<"jabber:iq:register">>, __IgnoreEls, _el), Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remove">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, decode_register_remove(__TopXMLNS, __IgnoreEls, _el), Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, decode_register_remove(<<"jabber:iq:register">>, __IgnoreEls, _el), Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"instructions">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, decode_register_instructions(__TopXMLNS, __IgnoreEls, _el), Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, decode_register_instructions(<<"jabber:iq:register">>, __IgnoreEls, _el), Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"username">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, decode_register_username(__TopXMLNS, __IgnoreEls, _el), Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, decode_register_username(<<"jabber:iq:register">>, __IgnoreEls, _el), Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, decode_register_nick(__TopXMLNS, __IgnoreEls, _el), Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, decode_register_nick(<<"jabber:iq:register">>, __IgnoreEls, _el), Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, decode_register_password(__TopXMLNS, __IgnoreEls, _el), Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, decode_register_password(<<"jabber:iq:register">>, __IgnoreEls, _el), Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"name">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, decode_register_name(__TopXMLNS, __IgnoreEls, _el), Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, decode_register_name(<<"jabber:iq:register">>, __IgnoreEls, _el), Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"first">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, decode_register_first(__TopXMLNS, __IgnoreEls, _el), Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, decode_register_first(<<"jabber:iq:register">>, __IgnoreEls, _el), Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"last">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, decode_register_last(__TopXMLNS, __IgnoreEls, _el), First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, decode_register_last(<<"jabber:iq:register">>, __IgnoreEls, _el), First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"email">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, decode_register_email(__TopXMLNS, __IgnoreEls, _el), __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, decode_register_email(<<"jabber:iq:register">>, __IgnoreEls, _el), __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"address">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, decode_register_address(__TopXMLNS, __IgnoreEls, _el), Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, decode_register_address(<<"jabber:iq:register">>, __IgnoreEls, _el), Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"city">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, decode_register_city(__TopXMLNS, __IgnoreEls, _el), Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, decode_register_city(<<"jabber:iq:register">>, __IgnoreEls, _el), Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"state">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, decode_register_state(__TopXMLNS, __IgnoreEls, _el), Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, decode_register_state(<<"jabber:iq:register">>, __IgnoreEls, _el), Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"zip">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, decode_register_zip(__TopXMLNS, __IgnoreEls, _el), Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, decode_register_zip(<<"jabber:iq:register">>, __IgnoreEls, _el), Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"phone">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, decode_register_phone(__TopXMLNS, __IgnoreEls, _el), State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, decode_register_phone(<<"jabber:iq:register">>, __IgnoreEls, _el), State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"url">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, decode_register_url(__TopXMLNS, __IgnoreEls, _el), Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, decode_register_url(<<"jabber:iq:register">>, __IgnoreEls, _el), Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"date">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, decode_register_date(__TopXMLNS, __IgnoreEls, _el), Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, decode_register_date(<<"jabber:iq:register">>, __IgnoreEls, _el), Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"misc">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, decode_register_misc(__TopXMLNS, __IgnoreEls, _el), Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, decode_register_misc(<<"jabber:iq:register">>, __IgnoreEls, _el), Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"text">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, decode_register_text(__TopXMLNS, __IgnoreEls, _el), Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, decode_register_text(<<"jabber:iq:register">>, __IgnoreEls, _el), Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"key">>, _attrs, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, decode_register_key(__TopXMLNS, __IgnoreEls, _el), City, Nick, Url, Email, __Els); <<"jabber:iq:register">> -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, decode_register_key(<<"jabber:iq:register">>, __IgnoreEls, _el), City, Nick, Url, Email, __Els); _ -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end; decode_register_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> if __IgnoreEls -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) end end; decode_register_els(__TopXMLNS, __IgnoreEls, [_ | _els], Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els) -> decode_register_els(__TopXMLNS, __IgnoreEls, _els, Zip, Xdata, Misc, Address, Instructions, Text, Last, First, Password, Registered, Date, Phone, State, Name, Username, Remove, Key, City, Nick, Url, Email, __Els). encode_register({register, Registered, Remove, Instructions, Username, Nick, Password, Name, First, Last, Email, Address, City, State, Zip, Phone, Url, Date, Misc, Text, Key, Xdata, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ lists:reverse('encode_register_$zip'(Zip, __NewTopXMLNS, 'encode_register_$xdata'(Xdata, __NewTopXMLNS, 'encode_register_$misc'(Misc, __NewTopXMLNS, 'encode_register_$address'(Address, __NewTopXMLNS, 'encode_register_$instructions'(Instructions, __NewTopXMLNS, 'encode_register_$text'(Text, __NewTopXMLNS, 'encode_register_$last'(Last, __NewTopXMLNS, 'encode_register_$first'(First, __NewTopXMLNS, 'encode_register_$password'(Password, __NewTopXMLNS, 'encode_register_$registered'(Registered, __NewTopXMLNS, 'encode_register_$date'(Date, __NewTopXMLNS, 'encode_register_$phone'(Phone, __NewTopXMLNS, 'encode_register_$state'(State, __NewTopXMLNS, 'encode_register_$name'(Name, __NewTopXMLNS, 'encode_register_$username'(Username, __NewTopXMLNS, 'encode_register_$remove'(Remove, __NewTopXMLNS, 'encode_register_$key'(Key, __NewTopXMLNS, 'encode_register_$city'(City, __NewTopXMLNS, 'encode_register_$nick'(Nick, __NewTopXMLNS, 'encode_register_$url'(Url, __NewTopXMLNS, 'encode_register_$email'(Email, __NewTopXMLNS, [])))))))))))))))))))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_register_$zip'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$zip'(Zip, __TopXMLNS, _acc) -> [encode_register_zip(Zip, __TopXMLNS) | _acc]. 'encode_register_$xdata'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$xdata'(Xdata, __TopXMLNS, _acc) -> [encode_xdata(Xdata, __TopXMLNS) | _acc]. 'encode_register_$misc'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$misc'(Misc, __TopXMLNS, _acc) -> [encode_register_misc(Misc, __TopXMLNS) | _acc]. 'encode_register_$address'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$address'(Address, __TopXMLNS, _acc) -> [encode_register_address(Address, __TopXMLNS) | _acc]. 'encode_register_$instructions'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$instructions'(Instructions, __TopXMLNS, _acc) -> [encode_register_instructions(Instructions, __TopXMLNS) | _acc]. 'encode_register_$text'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$text'(Text, __TopXMLNS, _acc) -> [encode_register_text(Text, __TopXMLNS) | _acc]. 'encode_register_$last'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$last'(Last, __TopXMLNS, _acc) -> [encode_register_last(Last, __TopXMLNS) | _acc]. 'encode_register_$first'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$first'(First, __TopXMLNS, _acc) -> [encode_register_first(First, __TopXMLNS) | _acc]. 'encode_register_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$password'(Password, __TopXMLNS, _acc) -> [encode_register_password(Password, __TopXMLNS) | _acc]. 'encode_register_$registered'(false, __TopXMLNS, _acc) -> _acc; 'encode_register_$registered'(Registered, __TopXMLNS, _acc) -> [encode_register_registered(Registered, __TopXMLNS) | _acc]. 'encode_register_$date'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$date'(Date, __TopXMLNS, _acc) -> [encode_register_date(Date, __TopXMLNS) | _acc]. 'encode_register_$phone'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$phone'(Phone, __TopXMLNS, _acc) -> [encode_register_phone(Phone, __TopXMLNS) | _acc]. 'encode_register_$state'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$state'(State, __TopXMLNS, _acc) -> [encode_register_state(State, __TopXMLNS) | _acc]. 'encode_register_$name'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$name'(Name, __TopXMLNS, _acc) -> [encode_register_name(Name, __TopXMLNS) | _acc]. 'encode_register_$username'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$username'(Username, __TopXMLNS, _acc) -> [encode_register_username(Username, __TopXMLNS) | _acc]. 'encode_register_$remove'(false, __TopXMLNS, _acc) -> _acc; 'encode_register_$remove'(Remove, __TopXMLNS, _acc) -> [encode_register_remove(Remove, __TopXMLNS) | _acc]. 'encode_register_$key'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$key'(Key, __TopXMLNS, _acc) -> [encode_register_key(Key, __TopXMLNS) | _acc]. 'encode_register_$city'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$city'(City, __TopXMLNS, _acc) -> [encode_register_city(City, __TopXMLNS) | _acc]. 'encode_register_$nick'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$nick'(Nick, __TopXMLNS, _acc) -> [encode_register_nick(Nick, __TopXMLNS) | _acc]. 'encode_register_$url'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$url'(Url, __TopXMLNS, _acc) -> [encode_register_url(Url, __TopXMLNS) | _acc]. 'encode_register_$email'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_register_$email'(Email, __TopXMLNS, _acc) -> [encode_register_email(Email, __TopXMLNS) | _acc]. decode_register_key(__TopXMLNS, __IgnoreEls, {xmlel, <<"key">>, _attrs, _els}) -> Cdata = decode_register_key_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_key_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_key_cdata(__TopXMLNS, Cdata); decode_register_key_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_key_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_key_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_key_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_key(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_key_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"key">>, _attrs, _els}. decode_register_key_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_key_cdata(__TopXMLNS, _val) -> _val. encode_register_key_cdata(<<>>, _acc) -> _acc; encode_register_key_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_text(__TopXMLNS, __IgnoreEls, {xmlel, <<"text">>, _attrs, _els}) -> Cdata = decode_register_text_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_text_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_text_cdata(__TopXMLNS, Cdata); decode_register_text_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_text_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_text_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_text_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_text(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_text_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"text">>, _attrs, _els}. decode_register_text_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_text_cdata(__TopXMLNS, _val) -> _val. encode_register_text_cdata(<<>>, _acc) -> _acc; encode_register_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_misc(__TopXMLNS, __IgnoreEls, {xmlel, <<"misc">>, _attrs, _els}) -> Cdata = decode_register_misc_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_misc_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_misc_cdata(__TopXMLNS, Cdata); decode_register_misc_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_misc_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_misc_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_misc_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_misc(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_misc_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"misc">>, _attrs, _els}. decode_register_misc_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_misc_cdata(__TopXMLNS, _val) -> _val. encode_register_misc_cdata(<<>>, _acc) -> _acc; encode_register_misc_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_date(__TopXMLNS, __IgnoreEls, {xmlel, <<"date">>, _attrs, _els}) -> Cdata = decode_register_date_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_date_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_date_cdata(__TopXMLNS, Cdata); decode_register_date_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_date_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_date_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_date_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_date(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_date_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"date">>, _attrs, _els}. decode_register_date_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_date_cdata(__TopXMLNS, _val) -> _val. encode_register_date_cdata(<<>>, _acc) -> _acc; encode_register_date_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_url(__TopXMLNS, __IgnoreEls, {xmlel, <<"url">>, _attrs, _els}) -> Cdata = decode_register_url_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_url_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_url_cdata(__TopXMLNS, Cdata); decode_register_url_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_url_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_url_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_url_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_url(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_url_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"url">>, _attrs, _els}. decode_register_url_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_url_cdata(__TopXMLNS, _val) -> _val. encode_register_url_cdata(<<>>, _acc) -> _acc; encode_register_url_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_phone(__TopXMLNS, __IgnoreEls, {xmlel, <<"phone">>, _attrs, _els}) -> Cdata = decode_register_phone_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_phone_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_phone_cdata(__TopXMLNS, Cdata); decode_register_phone_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_phone_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_phone_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_phone_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_phone(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_phone_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"phone">>, _attrs, _els}. decode_register_phone_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_phone_cdata(__TopXMLNS, _val) -> _val. encode_register_phone_cdata(<<>>, _acc) -> _acc; encode_register_phone_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_zip(__TopXMLNS, __IgnoreEls, {xmlel, <<"zip">>, _attrs, _els}) -> Cdata = decode_register_zip_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_zip_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_zip_cdata(__TopXMLNS, Cdata); decode_register_zip_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_zip_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_zip_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_zip_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_zip(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_zip_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"zip">>, _attrs, _els}. decode_register_zip_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_zip_cdata(__TopXMLNS, _val) -> _val. encode_register_zip_cdata(<<>>, _acc) -> _acc; encode_register_zip_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_state(__TopXMLNS, __IgnoreEls, {xmlel, <<"state">>, _attrs, _els}) -> Cdata = decode_register_state_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_state_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_state_cdata(__TopXMLNS, Cdata); decode_register_state_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_state_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_state_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_state_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_state(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_state_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"state">>, _attrs, _els}. decode_register_state_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_state_cdata(__TopXMLNS, _val) -> _val. encode_register_state_cdata(<<>>, _acc) -> _acc; encode_register_state_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_city(__TopXMLNS, __IgnoreEls, {xmlel, <<"city">>, _attrs, _els}) -> Cdata = decode_register_city_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_city_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_city_cdata(__TopXMLNS, Cdata); decode_register_city_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_city_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_city_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_city_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_city(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_city_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"city">>, _attrs, _els}. decode_register_city_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_city_cdata(__TopXMLNS, _val) -> _val. encode_register_city_cdata(<<>>, _acc) -> _acc; encode_register_city_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_address(__TopXMLNS, __IgnoreEls, {xmlel, <<"address">>, _attrs, _els}) -> Cdata = decode_register_address_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_address_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_address_cdata(__TopXMLNS, Cdata); decode_register_address_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_address_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_address_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_address_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_address(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_address_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"address">>, _attrs, _els}. decode_register_address_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_address_cdata(__TopXMLNS, _val) -> _val. encode_register_address_cdata(<<>>, _acc) -> _acc; encode_register_address_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_email(__TopXMLNS, __IgnoreEls, {xmlel, <<"email">>, _attrs, _els}) -> Cdata = decode_register_email_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_email_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_email_cdata(__TopXMLNS, Cdata); decode_register_email_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_email_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_email_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_email_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_email(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_email_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"email">>, _attrs, _els}. decode_register_email_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_email_cdata(__TopXMLNS, _val) -> _val. encode_register_email_cdata(<<>>, _acc) -> _acc; encode_register_email_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_last(__TopXMLNS, __IgnoreEls, {xmlel, <<"last">>, _attrs, _els}) -> Cdata = decode_register_last_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_last_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_last_cdata(__TopXMLNS, Cdata); decode_register_last_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_last_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_last_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_last_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_last(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_last_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"last">>, _attrs, _els}. decode_register_last_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_last_cdata(__TopXMLNS, _val) -> _val. encode_register_last_cdata(<<>>, _acc) -> _acc; encode_register_last_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_first(__TopXMLNS, __IgnoreEls, {xmlel, <<"first">>, _attrs, _els}) -> Cdata = decode_register_first_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_first_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_first_cdata(__TopXMLNS, Cdata); decode_register_first_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_first_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_first_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_first_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_first(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_first_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"first">>, _attrs, _els}. decode_register_first_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_first_cdata(__TopXMLNS, _val) -> _val. encode_register_first_cdata(<<>>, _acc) -> _acc; encode_register_first_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_name(__TopXMLNS, __IgnoreEls, {xmlel, <<"name">>, _attrs, _els}) -> Cdata = decode_register_name_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_name_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_name_cdata(__TopXMLNS, Cdata); decode_register_name_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_name_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_name_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_name_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_name(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_name_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"name">>, _attrs, _els}. decode_register_name_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_name_cdata(__TopXMLNS, _val) -> _val. encode_register_name_cdata(<<>>, _acc) -> _acc; encode_register_name_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_password(__TopXMLNS, __IgnoreEls, {xmlel, <<"password">>, _attrs, _els}) -> Cdata = decode_register_password_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_password_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_password_cdata(__TopXMLNS, Cdata); decode_register_password_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_password_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_password_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_password_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_password(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_password_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"password">>, _attrs, _els}. decode_register_password_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_password_cdata(__TopXMLNS, _val) -> _val. encode_register_password_cdata(<<>>, _acc) -> _acc; encode_register_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_nick(__TopXMLNS, __IgnoreEls, {xmlel, <<"nick">>, _attrs, _els}) -> Cdata = decode_register_nick_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_nick_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_nick_cdata(__TopXMLNS, Cdata); decode_register_nick_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_nick_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_nick_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_nick_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_nick(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_nick_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"nick">>, _attrs, _els}. decode_register_nick_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_nick_cdata(__TopXMLNS, _val) -> _val. encode_register_nick_cdata(<<>>, _acc) -> _acc; encode_register_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_username(__TopXMLNS, __IgnoreEls, {xmlel, <<"username">>, _attrs, _els}) -> Cdata = decode_register_username_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_username_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_username_cdata(__TopXMLNS, Cdata); decode_register_username_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_username_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_username_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_username_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_username(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_username_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"username">>, _attrs, _els}. decode_register_username_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_username_cdata(__TopXMLNS, _val) -> _val. encode_register_username_cdata(<<>>, _acc) -> _acc; encode_register_username_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_instructions(__TopXMLNS, __IgnoreEls, {xmlel, <<"instructions">>, _attrs, _els}) -> Cdata = decode_register_instructions_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_register_instructions_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_register_instructions_cdata(__TopXMLNS, Cdata); decode_register_instructions_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_register_instructions_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_register_instructions_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_register_instructions_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_register_instructions(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = encode_register_instructions_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"instructions">>, _attrs, _els}. decode_register_instructions_cdata(__TopXMLNS, <<>>) -> <<>>; decode_register_instructions_cdata(__TopXMLNS, _val) -> _val. encode_register_instructions_cdata(<<>>, _acc) -> _acc; encode_register_instructions_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_register_remove(__TopXMLNS, __IgnoreEls, {xmlel, <<"remove">>, _attrs, _els}) -> true. encode_register_remove(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"remove">>, _attrs, _els}. decode_register_registered(__TopXMLNS, __IgnoreEls, {xmlel, <<"registered">>, _attrs, _els}) -> true. encode_register_registered(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:register">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"registered">>, _attrs, _els}. decode_feature_register(__TopXMLNS, __IgnoreEls, {xmlel, <<"register">>, _attrs, _els}) -> {feature_register}. encode_feature_register({feature_register}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/features/iq-register">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"register">>, _attrs, _els}. decode_caps(__TopXMLNS, __IgnoreEls, {xmlel, <<"c">>, _attrs, _els}) -> {Hash, Node, Exts, Version} = decode_caps_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {caps, Node, Version, Hash, Exts}. decode_caps_attrs(__TopXMLNS, [{<<"hash">>, _val} | _attrs], _Hash, Node, Exts, Version) -> decode_caps_attrs(__TopXMLNS, _attrs, _val, Node, Exts, Version); decode_caps_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Hash, _Node, Exts, Version) -> decode_caps_attrs(__TopXMLNS, _attrs, Hash, _val, Exts, Version); decode_caps_attrs(__TopXMLNS, [{<<"ext">>, _val} | _attrs], Hash, Node, _Exts, Version) -> decode_caps_attrs(__TopXMLNS, _attrs, Hash, Node, _val, Version); decode_caps_attrs(__TopXMLNS, [{<<"ver">>, _val} | _attrs], Hash, Node, Exts, _Version) -> decode_caps_attrs(__TopXMLNS, _attrs, Hash, Node, Exts, _val); decode_caps_attrs(__TopXMLNS, [_ | _attrs], Hash, Node, Exts, Version) -> decode_caps_attrs(__TopXMLNS, _attrs, Hash, Node, Exts, Version); decode_caps_attrs(__TopXMLNS, [], Hash, Node, Exts, Version) -> {decode_caps_attr_hash(__TopXMLNS, Hash), decode_caps_attr_node(__TopXMLNS, Node), decode_caps_attr_ext(__TopXMLNS, Exts), decode_caps_attr_ver(__TopXMLNS, Version)}. encode_caps({caps, Node, Version, Hash, Exts}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/caps">>, [], __TopXMLNS), _els = [], _attrs = encode_caps_attr_ver(Version, encode_caps_attr_ext(Exts, encode_caps_attr_node(Node, encode_caps_attr_hash(Hash, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"c">>, _attrs, _els}. decode_caps_attr_hash(__TopXMLNS, undefined) -> <<>>; decode_caps_attr_hash(__TopXMLNS, _val) -> _val. encode_caps_attr_hash(<<>>, _acc) -> _acc; encode_caps_attr_hash(_val, _acc) -> [{<<"hash">>, _val} | _acc]. decode_caps_attr_node(__TopXMLNS, undefined) -> <<>>; decode_caps_attr_node(__TopXMLNS, _val) -> _val. encode_caps_attr_node(<<>>, _acc) -> _acc; encode_caps_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_caps_attr_ext(__TopXMLNS, undefined) -> []; decode_caps_attr_ext(__TopXMLNS, _val) -> case catch re:split(_val, "\\h+") of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"ext">>, <<"c">>, __TopXMLNS}}); _res -> _res end. encode_caps_attr_ext([], _acc) -> _acc; encode_caps_attr_ext(_val, _acc) -> [{<<"ext">>, join(_val, 32)} | _acc]. decode_caps_attr_ver(__TopXMLNS, undefined) -> <<>>; decode_caps_attr_ver(__TopXMLNS, _val) -> _val. encode_caps_attr_ver(<<>>, _acc) -> _acc; encode_caps_attr_ver(_val, _acc) -> [{<<"ver">>, _val} | _acc]. decode_p1_ack(__TopXMLNS, __IgnoreEls, {xmlel, <<"ack">>, _attrs, _els}) -> {p1_ack}. encode_p1_ack({p1_ack}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"p1:ack">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ack">>, _attrs, _els}. decode_p1_rebind(__TopXMLNS, __IgnoreEls, {xmlel, <<"rebind">>, _attrs, _els}) -> {p1_rebind}. encode_p1_rebind({p1_rebind}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"p1:rebind">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"rebind">>, _attrs, _els}. decode_p1_push(__TopXMLNS, __IgnoreEls, {xmlel, <<"push">>, _attrs, _els}) -> {p1_push}. encode_p1_push({p1_push}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"p1:push">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"push">>, _attrs, _els}. decode_stream_features(__TopXMLNS, __IgnoreEls, {xmlel, <<"stream:features">>, _attrs, _els}) -> __Els = decode_stream_features_els(__TopXMLNS, __IgnoreEls, _els, []), {stream_features, __Els}. decode_stream_features_els(__TopXMLNS, __IgnoreEls, [], __Els) -> lists:reverse(__Els); decode_stream_features_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], __Els) -> if __IgnoreEls -> decode_stream_features_els(__TopXMLNS, __IgnoreEls, _els, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_stream_features_els(__TopXMLNS, __IgnoreEls, _els, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_stream_features_els(__TopXMLNS, __IgnoreEls, _els, __Els) end end; decode_stream_features_els(__TopXMLNS, __IgnoreEls, [_ | _els], __Els) -> decode_stream_features_els(__TopXMLNS, __IgnoreEls, _els, __Els). encode_stream_features({stream_features, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"stream:features">>, _attrs, _els}. decode_compression(__TopXMLNS, __IgnoreEls, {xmlel, <<"compression">>, _attrs, _els}) -> Methods = decode_compression_els(__TopXMLNS, __IgnoreEls, _els, []), {compression, Methods}. decode_compression_els(__TopXMLNS, __IgnoreEls, [], Methods) -> lists:reverse(Methods); decode_compression_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"method">>, _attrs, _} = _el | _els], Methods) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/features/compress">> -> decode_compression_els(__TopXMLNS, __IgnoreEls, _els, [decode_compression_method(__TopXMLNS, __IgnoreEls, _el) | Methods]); <<"http://jabber.org/features/compress">> -> decode_compression_els(__TopXMLNS, __IgnoreEls, _els, [decode_compression_method(<<"http://jabber.org/features/compress">>, __IgnoreEls, _el) | Methods]); _ -> decode_compression_els(__TopXMLNS, __IgnoreEls, _els, Methods) end; decode_compression_els(__TopXMLNS, __IgnoreEls, [_ | _els], Methods) -> decode_compression_els(__TopXMLNS, __IgnoreEls, _els, Methods). encode_compression({compression, Methods}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/features/compress">>, [], __TopXMLNS), _els = lists:reverse('encode_compression_$methods'(Methods, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"compression">>, _attrs, _els}. 'encode_compression_$methods'([], __TopXMLNS, _acc) -> _acc; 'encode_compression_$methods'([Methods | _els], __TopXMLNS, _acc) -> 'encode_compression_$methods'(_els, __TopXMLNS, [encode_compression_method(Methods, __TopXMLNS) | _acc]). decode_compression_method(__TopXMLNS, __IgnoreEls, {xmlel, <<"method">>, _attrs, _els}) -> Cdata = decode_compression_method_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_compression_method_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_compression_method_cdata(__TopXMLNS, Cdata); decode_compression_method_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_compression_method_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_compression_method_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_compression_method_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_compression_method(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/features/compress">>, [], __TopXMLNS), _els = encode_compression_method_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"method">>, _attrs, _els}. decode_compression_method_cdata(__TopXMLNS, <<>>) -> <<>>; decode_compression_method_cdata(__TopXMLNS, _val) -> _val. encode_compression_method_cdata(<<>>, _acc) -> _acc; encode_compression_method_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_compressed(__TopXMLNS, __IgnoreEls, {xmlel, <<"compressed">>, _attrs, _els}) -> {compressed}. encode_compressed({compressed}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"compressed">>, _attrs, _els}. decode_compress(__TopXMLNS, __IgnoreEls, {xmlel, <<"compress">>, _attrs, _els}) -> Methods = decode_compress_els(__TopXMLNS, __IgnoreEls, _els, []), {compress, Methods}. decode_compress_els(__TopXMLNS, __IgnoreEls, [], Methods) -> lists:reverse(Methods); decode_compress_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"method">>, _attrs, _} = _el | _els], Methods) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/compress">> -> decode_compress_els(__TopXMLNS, __IgnoreEls, _els, [decode_compress_method(__TopXMLNS, __IgnoreEls, _el) | Methods]); <<"http://jabber.org/protocol/compress">> -> decode_compress_els(__TopXMLNS, __IgnoreEls, _els, [decode_compress_method(<<"http://jabber.org/protocol/compress">>, __IgnoreEls, _el) | Methods]); _ -> decode_compress_els(__TopXMLNS, __IgnoreEls, _els, Methods) end; decode_compress_els(__TopXMLNS, __IgnoreEls, [_ | _els], Methods) -> decode_compress_els(__TopXMLNS, __IgnoreEls, _els, Methods). encode_compress({compress, Methods}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = lists:reverse('encode_compress_$methods'(Methods, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"compress">>, _attrs, _els}. 'encode_compress_$methods'([], __TopXMLNS, _acc) -> _acc; 'encode_compress_$methods'([Methods | _els], __TopXMLNS, _acc) -> 'encode_compress_$methods'(_els, __TopXMLNS, [encode_compress_method(Methods, __TopXMLNS) | _acc]). decode_compress_method(__TopXMLNS, __IgnoreEls, {xmlel, <<"method">>, _attrs, _els}) -> Cdata = decode_compress_method_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_compress_method_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_compress_method_cdata(__TopXMLNS, Cdata); decode_compress_method_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_compress_method_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_compress_method_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_compress_method_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_compress_method(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = encode_compress_method_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"method">>, _attrs, _els}. decode_compress_method_cdata(__TopXMLNS, <<>>) -> <<>>; decode_compress_method_cdata(__TopXMLNS, _val) -> _val. encode_compress_method_cdata(<<>>, _acc) -> _acc; encode_compress_method_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_compress_failure(__TopXMLNS, __IgnoreEls, {xmlel, <<"failure">>, _attrs, _els}) -> Reason = decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, undefined), {compress_failure, Reason}. decode_compress_failure_els(__TopXMLNS, __IgnoreEls, [], Reason) -> Reason; decode_compress_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"setup-failed">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_setup_failed(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_setup_failed(<<"http://jabber.org/protocol/compress">>, __IgnoreEls, _el)); _ -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_compress_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"processing-failed">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_processing_failed(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_processing_failed(<<"http://jabber.org/protocol/compress">>, __IgnoreEls, _el)); _ -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_compress_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unsupported-method">>, _attrs, _} = _el | _els], Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_unsupported_method(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/compress">> -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, decode_compress_failure_unsupported_method(<<"http://jabber.org/protocol/compress">>, __IgnoreEls, _el)); _ -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, Reason) end; decode_compress_failure_els(__TopXMLNS, __IgnoreEls, [_ | _els], Reason) -> decode_compress_failure_els(__TopXMLNS, __IgnoreEls, _els, Reason). encode_compress_failure({compress_failure, Reason}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = lists:reverse('encode_compress_failure_$reason'(Reason, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"failure">>, _attrs, _els}. 'encode_compress_failure_$reason'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_compress_failure_$reason'('setup-failed' = Reason, __TopXMLNS, _acc) -> [encode_compress_failure_setup_failed(Reason, __TopXMLNS) | _acc]; 'encode_compress_failure_$reason'('processing-failed' = Reason, __TopXMLNS, _acc) -> [encode_compress_failure_processing_failed(Reason, __TopXMLNS) | _acc]; 'encode_compress_failure_$reason'('unsupported-method' = Reason, __TopXMLNS, _acc) -> [encode_compress_failure_unsupported_method(Reason, __TopXMLNS) | _acc]. decode_compress_failure_unsupported_method(__TopXMLNS, __IgnoreEls, {xmlel, <<"unsupported-method">>, _attrs, _els}) -> 'unsupported-method'. encode_compress_failure_unsupported_method('unsupported-method', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unsupported-method">>, _attrs, _els}. decode_compress_failure_processing_failed(__TopXMLNS, __IgnoreEls, {xmlel, <<"processing-failed">>, _attrs, _els}) -> 'processing-failed'. encode_compress_failure_processing_failed('processing-failed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"processing-failed">>, _attrs, _els}. decode_compress_failure_setup_failed(__TopXMLNS, __IgnoreEls, {xmlel, <<"setup-failed">>, _attrs, _els}) -> 'setup-failed'. encode_compress_failure_setup_failed('setup-failed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/compress">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"setup-failed">>, _attrs, _els}. decode_starttls_failure(__TopXMLNS, __IgnoreEls, {xmlel, <<"failure">>, _attrs, _els}) -> {starttls_failure}. encode_starttls_failure({starttls_failure}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-tls">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"failure">>, _attrs, _els}. decode_starttls_proceed(__TopXMLNS, __IgnoreEls, {xmlel, <<"proceed">>, _attrs, _els}) -> {starttls_proceed}. encode_starttls_proceed({starttls_proceed}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-tls">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"proceed">>, _attrs, _els}. decode_starttls(__TopXMLNS, __IgnoreEls, {xmlel, <<"starttls">>, _attrs, _els}) -> Required = decode_starttls_els(__TopXMLNS, __IgnoreEls, _els, false), {starttls, Required}. decode_starttls_els(__TopXMLNS, __IgnoreEls, [], Required) -> Required; decode_starttls_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"required">>, _attrs, _} = _el | _els], Required) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-tls">> -> decode_starttls_els(__TopXMLNS, __IgnoreEls, _els, decode_starttls_required(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-tls">> -> decode_starttls_els(__TopXMLNS, __IgnoreEls, _els, decode_starttls_required(<<"urn:ietf:params:xml:ns:xmpp-tls">>, __IgnoreEls, _el)); _ -> decode_starttls_els(__TopXMLNS, __IgnoreEls, _els, Required) end; decode_starttls_els(__TopXMLNS, __IgnoreEls, [_ | _els], Required) -> decode_starttls_els(__TopXMLNS, __IgnoreEls, _els, Required). encode_starttls({starttls, Required}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-tls">>, [], __TopXMLNS), _els = lists:reverse('encode_starttls_$required'(Required, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"starttls">>, _attrs, _els}. 'encode_starttls_$required'(false, __TopXMLNS, _acc) -> _acc; 'encode_starttls_$required'(Required, __TopXMLNS, _acc) -> [encode_starttls_required(Required, __TopXMLNS) | _acc]. decode_starttls_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"required">>, _attrs, _els}) -> true. encode_starttls_required(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-tls">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"required">>, _attrs, _els}. decode_sasl_mechanisms(__TopXMLNS, __IgnoreEls, {xmlel, <<"mechanisms">>, _attrs, _els}) -> List = decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, _els, []), {sasl_mechanisms, List}. decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, [], List) -> lists:reverse(List); decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"mechanism">>, _attrs, _} = _el | _els], List) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, _els, [decode_sasl_mechanism(__TopXMLNS, __IgnoreEls, _el) | List]); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, _els, [decode_sasl_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el) | List]); _ -> decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, _els, List) end; decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, [_ | _els], List) -> decode_sasl_mechanisms_els(__TopXMLNS, __IgnoreEls, _els, List). encode_sasl_mechanisms({sasl_mechanisms, List}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = lists:reverse('encode_sasl_mechanisms_$list'(List, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"mechanisms">>, _attrs, _els}. 'encode_sasl_mechanisms_$list'([], __TopXMLNS, _acc) -> _acc; 'encode_sasl_mechanisms_$list'([List | _els], __TopXMLNS, _acc) -> 'encode_sasl_mechanisms_$list'(_els, __TopXMLNS, [encode_sasl_mechanism(List, __TopXMLNS) | _acc]). decode_sasl_mechanism(__TopXMLNS, __IgnoreEls, {xmlel, <<"mechanism">>, _attrs, _els}) -> Cdata = decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_sasl_mechanism_cdata(__TopXMLNS, Cdata); decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_sasl_mechanism_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_sasl_mechanism(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_mechanism_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"mechanism">>, _attrs, _els}. decode_sasl_mechanism_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_mechanism_cdata(__TopXMLNS, _val) -> _val. encode_sasl_mechanism_cdata(<<>>, _acc) -> _acc; encode_sasl_mechanism_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_sasl_failure(__TopXMLNS, __IgnoreEls, {xmlel, <<"failure">>, _attrs, _els}) -> {Text, Reason} = decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, [], undefined), {sasl_failure, Reason, Text}. decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [], Text, Reason) -> {lists:reverse(Text), Reason}; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, [decode_sasl_failure_text(__TopXMLNS, __IgnoreEls, _el) | Text], Reason); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, [decode_sasl_failure_text(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el) | Text], Reason); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"aborted">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_aborted(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_aborted(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"account-disabled">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_account_disabled(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_account_disabled(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"credentials-expired">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_credentials_expired(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_credentials_expired(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"encryption-required">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_encryption_required(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_encryption_required(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"incorrect-encoding">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_incorrect_encoding(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_incorrect_encoding(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-authzid">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_invalid_authzid(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_invalid_authzid(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"invalid-mechanism">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_invalid_mechanism(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_invalid_mechanism(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"malformed-request">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_malformed_request(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_malformed_request(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"mechanism-too-weak">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_mechanism_too_weak(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_mechanism_too_weak(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_not_authorized(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"bad-protocol">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_bad_protocol(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_bad_protocol(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"temporary-auth-failure">>, _attrs, _} = _el | _els], Text, Reason) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_temporary_auth_failure(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-sasl">> -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_sasl_failure_temporary_auth_failure(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, __IgnoreEls, _el)); _ -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason) end; decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text, Reason) -> decode_sasl_failure_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason). encode_sasl_failure({sasl_failure, Reason, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = lists:reverse('encode_sasl_failure_$text'(Text, __NewTopXMLNS, 'encode_sasl_failure_$reason'(Reason, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"failure">>, _attrs, _els}. 'encode_sasl_failure_$text'([], __TopXMLNS, _acc) -> _acc; 'encode_sasl_failure_$text'([Text | _els], __TopXMLNS, _acc) -> 'encode_sasl_failure_$text'(_els, __TopXMLNS, [encode_sasl_failure_text(Text, __TopXMLNS) | _acc]). 'encode_sasl_failure_$reason'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_sasl_failure_$reason'(aborted = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_aborted(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('account-disabled' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_account_disabled(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('credentials-expired' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_credentials_expired(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('encryption-required' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_encryption_required(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('incorrect-encoding' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_incorrect_encoding(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('invalid-authzid' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_invalid_authzid(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('invalid-mechanism' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_invalid_mechanism(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('malformed-request' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_malformed_request(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('mechanism-too-weak' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_mechanism_too_weak(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('not-authorized' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_not_authorized(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('bad-protocol' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_bad_protocol(Reason, __TopXMLNS) | _acc]; 'encode_sasl_failure_$reason'('temporary-auth-failure' = Reason, __TopXMLNS, _acc) -> [encode_sasl_failure_temporary_auth_failure(Reason, __TopXMLNS) | _acc]. decode_sasl_failure_temporary_auth_failure(__TopXMLNS, __IgnoreEls, {xmlel, <<"temporary-auth-failure">>, _attrs, _els}) -> 'temporary-auth-failure'. encode_sasl_failure_temporary_auth_failure('temporary-auth-failure', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"temporary-auth-failure">>, _attrs, _els}. decode_sasl_failure_bad_protocol(__TopXMLNS, __IgnoreEls, {xmlel, <<"bad-protocol">>, _attrs, _els}) -> 'bad-protocol'. encode_sasl_failure_bad_protocol('bad-protocol', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"bad-protocol">>, _attrs, _els}. decode_sasl_failure_not_authorized(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-authorized">>, _attrs, _els}) -> 'not-authorized'. encode_sasl_failure_not_authorized('not-authorized', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-authorized">>, _attrs, _els}. decode_sasl_failure_mechanism_too_weak(__TopXMLNS, __IgnoreEls, {xmlel, <<"mechanism-too-weak">>, _attrs, _els}) -> 'mechanism-too-weak'. encode_sasl_failure_mechanism_too_weak('mechanism-too-weak', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"mechanism-too-weak">>, _attrs, _els}. decode_sasl_failure_malformed_request(__TopXMLNS, __IgnoreEls, {xmlel, <<"malformed-request">>, _attrs, _els}) -> 'malformed-request'. encode_sasl_failure_malformed_request('malformed-request', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"malformed-request">>, _attrs, _els}. decode_sasl_failure_invalid_mechanism(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-mechanism">>, _attrs, _els}) -> 'invalid-mechanism'. encode_sasl_failure_invalid_mechanism('invalid-mechanism', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-mechanism">>, _attrs, _els}. decode_sasl_failure_invalid_authzid(__TopXMLNS, __IgnoreEls, {xmlel, <<"invalid-authzid">>, _attrs, _els}) -> 'invalid-authzid'. encode_sasl_failure_invalid_authzid('invalid-authzid', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"invalid-authzid">>, _attrs, _els}. decode_sasl_failure_incorrect_encoding(__TopXMLNS, __IgnoreEls, {xmlel, <<"incorrect-encoding">>, _attrs, _els}) -> 'incorrect-encoding'. encode_sasl_failure_incorrect_encoding('incorrect-encoding', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"incorrect-encoding">>, _attrs, _els}. decode_sasl_failure_encryption_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"encryption-required">>, _attrs, _els}) -> 'encryption-required'. encode_sasl_failure_encryption_required('encryption-required', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"encryption-required">>, _attrs, _els}. decode_sasl_failure_credentials_expired(__TopXMLNS, __IgnoreEls, {xmlel, <<"credentials-expired">>, _attrs, _els}) -> 'credentials-expired'. encode_sasl_failure_credentials_expired('credentials-expired', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"credentials-expired">>, _attrs, _els}. decode_sasl_failure_account_disabled(__TopXMLNS, __IgnoreEls, {xmlel, <<"account-disabled">>, _attrs, _els}) -> 'account-disabled'. encode_sasl_failure_account_disabled('account-disabled', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"account-disabled">>, _attrs, _els}. decode_sasl_failure_aborted(__TopXMLNS, __IgnoreEls, {xmlel, <<"aborted">>, _attrs, _els}) -> aborted. encode_sasl_failure_aborted(aborted, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"aborted">>, _attrs, _els}. decode_sasl_failure_text(__TopXMLNS, __IgnoreEls, {xmlel, <<"text">>, _attrs, _els}) -> Data = decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_sasl_failure_text_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_sasl_failure_text_cdata(__TopXMLNS, Data); decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_sasl_failure_text_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_sasl_failure_text_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_sasl_failure_text_attrs(__TopXMLNS, _attrs, _val); decode_sasl_failure_text_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_sasl_failure_text_attrs(__TopXMLNS, _attrs, Lang); decode_sasl_failure_text_attrs(__TopXMLNS, [], Lang) -> 'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, Lang). encode_sasl_failure_text({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_failure_text_cdata(Data, []), _attrs = 'encode_sasl_failure_text_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"text">>, _attrs, _els}. 'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_sasl_failure_text_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_sasl_failure_text_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_sasl_failure_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_sasl_failure_text_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_failure_text_cdata(__TopXMLNS, _val) -> _val. encode_sasl_failure_text_cdata(<<>>, _acc) -> _acc; encode_sasl_failure_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_sasl_success(__TopXMLNS, __IgnoreEls, {xmlel, <<"success">>, _attrs, _els}) -> Text = decode_sasl_success_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {sasl_success, Text}. decode_sasl_success_els(__TopXMLNS, __IgnoreEls, [], Text) -> decode_sasl_success_cdata(__TopXMLNS, Text); decode_sasl_success_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Text) -> decode_sasl_success_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_success_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text) -> decode_sasl_success_els(__TopXMLNS, __IgnoreEls, _els, Text). encode_sasl_success({sasl_success, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_success_cdata(Text, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"success">>, _attrs, _els}. decode_sasl_success_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_success_cdata(__TopXMLNS, _val) -> case catch base64:mime_decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"success">>, __TopXMLNS}}); _res -> _res end. encode_sasl_success_cdata(<<>>, _acc) -> _acc; encode_sasl_success_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_sasl_response(__TopXMLNS, __IgnoreEls, {xmlel, <<"response">>, _attrs, _els}) -> Text = decode_sasl_response_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {sasl_response, Text}. decode_sasl_response_els(__TopXMLNS, __IgnoreEls, [], Text) -> decode_sasl_response_cdata(__TopXMLNS, Text); decode_sasl_response_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Text) -> decode_sasl_response_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_response_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text) -> decode_sasl_response_els(__TopXMLNS, __IgnoreEls, _els, Text). encode_sasl_response({sasl_response, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_response_cdata(Text, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"response">>, _attrs, _els}. decode_sasl_response_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_response_cdata(__TopXMLNS, _val) -> case catch base64:mime_decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"response">>, __TopXMLNS}}); _res -> _res end. encode_sasl_response_cdata(<<>>, _acc) -> _acc; encode_sasl_response_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_sasl_challenge(__TopXMLNS, __IgnoreEls, {xmlel, <<"challenge">>, _attrs, _els}) -> Text = decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {sasl_challenge, Text}. decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, [], Text) -> decode_sasl_challenge_cdata(__TopXMLNS, Text); decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Text) -> decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text) -> decode_sasl_challenge_els(__TopXMLNS, __IgnoreEls, _els, Text). encode_sasl_challenge({sasl_challenge, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_challenge_cdata(Text, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"challenge">>, _attrs, _els}. decode_sasl_challenge_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_challenge_cdata(__TopXMLNS, _val) -> case catch base64:mime_decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"challenge">>, __TopXMLNS}}); _res -> _res end. encode_sasl_challenge_cdata(<<>>, _acc) -> _acc; encode_sasl_challenge_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_sasl_abort(__TopXMLNS, __IgnoreEls, {xmlel, <<"abort">>, _attrs, _els}) -> {sasl_abort}. encode_sasl_abort({sasl_abort}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"abort">>, _attrs, _els}. decode_sasl_auth(__TopXMLNS, __IgnoreEls, {xmlel, <<"auth">>, _attrs, _els}) -> Text = decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Mechanism = decode_sasl_auth_attrs(__TopXMLNS, _attrs, undefined), {sasl_auth, Mechanism, Text}. decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, [], Text) -> decode_sasl_auth_cdata(__TopXMLNS, Text); decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Text) -> decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text) -> decode_sasl_auth_els(__TopXMLNS, __IgnoreEls, _els, Text). decode_sasl_auth_attrs(__TopXMLNS, [{<<"mechanism">>, _val} | _attrs], _Mechanism) -> decode_sasl_auth_attrs(__TopXMLNS, _attrs, _val); decode_sasl_auth_attrs(__TopXMLNS, [_ | _attrs], Mechanism) -> decode_sasl_auth_attrs(__TopXMLNS, _attrs, Mechanism); decode_sasl_auth_attrs(__TopXMLNS, [], Mechanism) -> decode_sasl_auth_attr_mechanism(__TopXMLNS, Mechanism). encode_sasl_auth({sasl_auth, Mechanism, Text}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-sasl">>, [], __TopXMLNS), _els = encode_sasl_auth_cdata(Text, []), _attrs = encode_sasl_auth_attr_mechanism(Mechanism, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"auth">>, _attrs, _els}. decode_sasl_auth_attr_mechanism(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"mechanism">>, <<"auth">>, __TopXMLNS}}); decode_sasl_auth_attr_mechanism(__TopXMLNS, _val) -> _val. encode_sasl_auth_attr_mechanism(_val, _acc) -> [{<<"mechanism">>, _val} | _acc]. decode_sasl_auth_cdata(__TopXMLNS, <<>>) -> <<>>; decode_sasl_auth_cdata(__TopXMLNS, _val) -> case catch base64:mime_decode(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"auth">>, __TopXMLNS}}); _res -> _res end. encode_sasl_auth_cdata(<<>>, _acc) -> _acc; encode_sasl_auth_cdata(_val, _acc) -> [{xmlcdata, base64:encode(_val)} | _acc]. decode_legacy_auth(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Digest, Password, Resource, Username} = decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined, undefined), {legacy_auth, Username, Password, Digest, Resource}. decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [], Digest, Password, Resource, Username) -> {Digest, Password, Resource, Username}; decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"username">>, _attrs, _} = _el | _els], Digest, Password, Resource, Username) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, decode_legacy_auth_username(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, decode_legacy_auth_username(<<"jabber:iq:auth">>, __IgnoreEls, _el)); _ -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, Username) end; decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Digest, Password, Resource, Username) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, decode_legacy_auth_password(__TopXMLNS, __IgnoreEls, _el), Resource, Username); <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, decode_legacy_auth_password(<<"jabber:iq:auth">>, __IgnoreEls, _el), Resource, Username); _ -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, Username) end; decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"digest">>, _attrs, _} = _el | _els], Digest, Password, Resource, Username) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, decode_legacy_auth_digest(__TopXMLNS, __IgnoreEls, _el), Password, Resource, Username); <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, decode_legacy_auth_digest(<<"jabber:iq:auth">>, __IgnoreEls, _el), Password, Resource, Username); _ -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, Username) end; decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"resource">>, _attrs, _} = _el | _els], Digest, Password, Resource, Username) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, decode_legacy_auth_resource(__TopXMLNS, __IgnoreEls, _el), Username); <<"jabber:iq:auth">> -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, decode_legacy_auth_resource(<<"jabber:iq:auth">>, __IgnoreEls, _el), Username); _ -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, Username) end; decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, [_ | _els], Digest, Password, Resource, Username) -> decode_legacy_auth_els(__TopXMLNS, __IgnoreEls, _els, Digest, Password, Resource, Username). encode_legacy_auth({legacy_auth, Username, Password, Digest, Resource}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:auth">>, [], __TopXMLNS), _els = lists:reverse('encode_legacy_auth_$digest'(Digest, __NewTopXMLNS, 'encode_legacy_auth_$password'(Password, __NewTopXMLNS, 'encode_legacy_auth_$resource'(Resource, __NewTopXMLNS, 'encode_legacy_auth_$username'(Username, __NewTopXMLNS, []))))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_legacy_auth_$digest'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_legacy_auth_$digest'(Digest, __TopXMLNS, _acc) -> [encode_legacy_auth_digest(Digest, __TopXMLNS) | _acc]. 'encode_legacy_auth_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_legacy_auth_$password'(Password, __TopXMLNS, _acc) -> [encode_legacy_auth_password(Password, __TopXMLNS) | _acc]. 'encode_legacy_auth_$resource'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_legacy_auth_$resource'(Resource, __TopXMLNS, _acc) -> [encode_legacy_auth_resource(Resource, __TopXMLNS) | _acc]. 'encode_legacy_auth_$username'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_legacy_auth_$username'(Username, __TopXMLNS, _acc) -> [encode_legacy_auth_username(Username, __TopXMLNS) | _acc]. decode_legacy_auth_resource(__TopXMLNS, __IgnoreEls, {xmlel, <<"resource">>, _attrs, _els}) -> Cdata = decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_legacy_auth_resource_cdata(__TopXMLNS, Cdata); decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_legacy_auth_resource_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_legacy_auth_resource(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:auth">>, [], __TopXMLNS), _els = encode_legacy_auth_resource_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"resource">>, _attrs, _els}. decode_legacy_auth_resource_cdata(__TopXMLNS, <<>>) -> <<>>; decode_legacy_auth_resource_cdata(__TopXMLNS, _val) -> _val. encode_legacy_auth_resource_cdata(<<>>, _acc) -> _acc; encode_legacy_auth_resource_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_legacy_auth_digest(__TopXMLNS, __IgnoreEls, {xmlel, <<"digest">>, _attrs, _els}) -> Cdata = decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_legacy_auth_digest_cdata(__TopXMLNS, Cdata); decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_legacy_auth_digest_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_legacy_auth_digest(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:auth">>, [], __TopXMLNS), _els = encode_legacy_auth_digest_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"digest">>, _attrs, _els}. decode_legacy_auth_digest_cdata(__TopXMLNS, <<>>) -> <<>>; decode_legacy_auth_digest_cdata(__TopXMLNS, _val) -> _val. encode_legacy_auth_digest_cdata(<<>>, _acc) -> _acc; encode_legacy_auth_digest_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_legacy_auth_password(__TopXMLNS, __IgnoreEls, {xmlel, <<"password">>, _attrs, _els}) -> Cdata = decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_legacy_auth_password_cdata(__TopXMLNS, Cdata); decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_legacy_auth_password_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_legacy_auth_password(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:auth">>, [], __TopXMLNS), _els = encode_legacy_auth_password_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"password">>, _attrs, _els}. decode_legacy_auth_password_cdata(__TopXMLNS, <<>>) -> <<>>; decode_legacy_auth_password_cdata(__TopXMLNS, _val) -> _val. encode_legacy_auth_password_cdata(<<>>, _acc) -> _acc; encode_legacy_auth_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_legacy_auth_username(__TopXMLNS, __IgnoreEls, {xmlel, <<"username">>, _attrs, _els}) -> Cdata = decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_legacy_auth_username_cdata(__TopXMLNS, Cdata); decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_legacy_auth_username_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_legacy_auth_username(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:auth">>, [], __TopXMLNS), _els = encode_legacy_auth_username_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"username">>, _attrs, _els}. decode_legacy_auth_username_cdata(__TopXMLNS, <<>>) -> <<>>; decode_legacy_auth_username_cdata(__TopXMLNS, _val) -> _val. encode_legacy_auth_username_cdata(<<>>, _acc) -> _acc; encode_legacy_auth_username_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_bind(__TopXMLNS, __IgnoreEls, {xmlel, <<"bind">>, _attrs, _els}) -> {Jid, Resource} = decode_bind_els(__TopXMLNS, __IgnoreEls, _els, undefined, <<>>), {bind, Jid, Resource}. decode_bind_els(__TopXMLNS, __IgnoreEls, [], Jid, Resource) -> {Jid, Resource}; decode_bind_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"jid">>, _attrs, _} = _el | _els], Jid, Resource) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-bind">> -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, decode_bind_jid(__TopXMLNS, __IgnoreEls, _el), Resource); <<"urn:ietf:params:xml:ns:xmpp-bind">> -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, decode_bind_jid(<<"urn:ietf:params:xml:ns:xmpp-bind">>, __IgnoreEls, _el), Resource); _ -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, Jid, Resource) end; decode_bind_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"resource">>, _attrs, _} = _el | _els], Jid, Resource) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:ietf:params:xml:ns:xmpp-bind">> -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, Jid, decode_bind_resource(__TopXMLNS, __IgnoreEls, _el)); <<"urn:ietf:params:xml:ns:xmpp-bind">> -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, Jid, decode_bind_resource(<<"urn:ietf:params:xml:ns:xmpp-bind">>, __IgnoreEls, _el)); _ -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, Jid, Resource) end; decode_bind_els(__TopXMLNS, __IgnoreEls, [_ | _els], Jid, Resource) -> decode_bind_els(__TopXMLNS, __IgnoreEls, _els, Jid, Resource). encode_bind({bind, Jid, Resource}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-bind">>, [], __TopXMLNS), _els = lists:reverse('encode_bind_$jid'(Jid, __NewTopXMLNS, 'encode_bind_$resource'(Resource, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"bind">>, _attrs, _els}. 'encode_bind_$jid'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_bind_$jid'(Jid, __TopXMLNS, _acc) -> [encode_bind_jid(Jid, __TopXMLNS) | _acc]. 'encode_bind_$resource'(<<>>, __TopXMLNS, _acc) -> _acc; 'encode_bind_$resource'(Resource, __TopXMLNS, _acc) -> [encode_bind_resource(Resource, __TopXMLNS) | _acc]. decode_bind_resource(__TopXMLNS, __IgnoreEls, {xmlel, <<"resource">>, _attrs, _els}) -> Cdata = decode_bind_resource_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_bind_resource_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_bind_resource_cdata(__TopXMLNS, Cdata); decode_bind_resource_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_bind_resource_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_bind_resource_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_bind_resource_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_bind_resource(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-bind">>, [], __TopXMLNS), _els = encode_bind_resource_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"resource">>, _attrs, _els}. decode_bind_resource_cdata(__TopXMLNS, <<>>) -> <<>>; decode_bind_resource_cdata(__TopXMLNS, _val) -> case catch resourceprep(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"resource">>, __TopXMLNS}}); _res -> _res end. encode_bind_resource_cdata(<<>>, _acc) -> _acc; encode_bind_resource_cdata(_val, _acc) -> [{xmlcdata, resourceprep(_val)} | _acc]. decode_bind_jid(__TopXMLNS, __IgnoreEls, {xmlel, <<"jid">>, _attrs, _els}) -> Cdata = decode_bind_jid_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_bind_jid_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_bind_jid_cdata(__TopXMLNS, Cdata); decode_bind_jid_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_bind_jid_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_bind_jid_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_bind_jid_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_bind_jid(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-bind">>, [], __TopXMLNS), _els = encode_bind_jid_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"jid">>, _attrs, _els}. decode_bind_jid_cdata(__TopXMLNS, <<>>) -> undefined; decode_bind_jid_cdata(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"jid">>, __TopXMLNS}}); _res -> _res end. encode_bind_jid_cdata(undefined, _acc) -> _acc; encode_bind_jid_cdata(_val, _acc) -> [{xmlcdata, enc_jid(_val)} | _acc]. decode_error(__TopXMLNS, __IgnoreEls, {xmlel, <<"error">>, _attrs, _els}) -> {Text, Reason, __Els} = decode_error_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, []), {Type, Code, By} = decode_error_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {stanza_error, Type, Code, By, Reason, Text, __Els}. decode_error_els(__TopXMLNS, __IgnoreEls, [], Text, Reason, __Els) -> {Text, Reason, lists:reverse(__Els)}; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"text">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, decode_error_text(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), Reason, __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"bad-request">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_bad_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"conflict">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_conflict(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"feature-not-implemented">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_feature_not_implemented(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"forbidden">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_forbidden(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"gone">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_gone(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"internal-server-error">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_internal_server_error(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item-not-found">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_item_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"jid-malformed">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_jid_malformed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-acceptable">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_not_acceptable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-allowed">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_not_allowed(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"not-authorized">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_not_authorized(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"payment-required">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_payment_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"policy-violation">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_policy_violation(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"recipient-unavailable">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_recipient_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"redirect">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_redirect(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"registration-required">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_registration_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remote-server-not-found">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_remote_server_not_found(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"remote-server-timeout">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_remote_server_timeout(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"resource-constraint">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_resource_constraint(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"service-unavailable">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_service_unavailable(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subscription-required">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_subscription_required(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"undefined-condition">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_undefined_condition(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"unexpected-request">>, _attrs, _} = _el | _els], Text, Reason, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"urn:ietf:params:xml:ns:xmpp-stanzas">> -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, decode_error_unexpected_request(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, __IgnoreEls, _el), __Els); _ -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end; decode_error_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Text, Reason, __Els) -> if __IgnoreEls -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els) end end; decode_error_els(__TopXMLNS, __IgnoreEls, [_ | _els], Text, Reason, __Els) -> decode_error_els(__TopXMLNS, __IgnoreEls, _els, Text, Reason, __Els). decode_error_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], _Type, Code, By) -> decode_error_attrs(__TopXMLNS, _attrs, _val, Code, By); decode_error_attrs(__TopXMLNS, [{<<"code">>, _val} | _attrs], Type, _Code, By) -> decode_error_attrs(__TopXMLNS, _attrs, Type, _val, By); decode_error_attrs(__TopXMLNS, [{<<"by">>, _val} | _attrs], Type, Code, _By) -> decode_error_attrs(__TopXMLNS, _attrs, Type, Code, _val); decode_error_attrs(__TopXMLNS, [_ | _attrs], Type, Code, By) -> decode_error_attrs(__TopXMLNS, _attrs, Type, Code, By); decode_error_attrs(__TopXMLNS, [], Type, Code, By) -> {decode_error_attr_type(__TopXMLNS, Type), decode_error_attr_code(__TopXMLNS, Code), decode_error_attr_by(__TopXMLNS, By)}. encode_error({stanza_error, Type, Code, By, Reason, Text, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ lists:reverse('encode_error_$text'(Text, __NewTopXMLNS, 'encode_error_$reason'(Reason, __NewTopXMLNS, []))), _attrs = encode_error_attr_by(By, encode_error_attr_code(Code, encode_error_attr_type(Type, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"error">>, _attrs, _els}. 'encode_error_$text'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_error_$text'(Text, __TopXMLNS, _acc) -> [encode_error_text(Text, __TopXMLNS) | _acc]. 'encode_error_$reason'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_error_$reason'('bad-request' = Reason, __TopXMLNS, _acc) -> [encode_error_bad_request(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'(conflict = Reason, __TopXMLNS, _acc) -> [encode_error_conflict(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('feature-not-implemented' = Reason, __TopXMLNS, _acc) -> [encode_error_feature_not_implemented(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'(forbidden = Reason, __TopXMLNS, _acc) -> [encode_error_forbidden(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'({gone, _} = Reason, __TopXMLNS, _acc) -> [encode_error_gone(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('internal-server-error' = Reason, __TopXMLNS, _acc) -> [encode_error_internal_server_error(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('item-not-found' = Reason, __TopXMLNS, _acc) -> [encode_error_item_not_found(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('jid-malformed' = Reason, __TopXMLNS, _acc) -> [encode_error_jid_malformed(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('not-acceptable' = Reason, __TopXMLNS, _acc) -> [encode_error_not_acceptable(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('not-allowed' = Reason, __TopXMLNS, _acc) -> [encode_error_not_allowed(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('not-authorized' = Reason, __TopXMLNS, _acc) -> [encode_error_not_authorized(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('payment-required' = Reason, __TopXMLNS, _acc) -> [encode_error_payment_required(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('policy-violation' = Reason, __TopXMLNS, _acc) -> [encode_error_policy_violation(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('recipient-unavailable' = Reason, __TopXMLNS, _acc) -> [encode_error_recipient_unavailable(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'({redirect, _} = Reason, __TopXMLNS, _acc) -> [encode_error_redirect(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('registration-required' = Reason, __TopXMLNS, _acc) -> [encode_error_registration_required(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('remote-server-not-found' = Reason, __TopXMLNS, _acc) -> [encode_error_remote_server_not_found(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('remote-server-timeout' = Reason, __TopXMLNS, _acc) -> [encode_error_remote_server_timeout(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('resource-constraint' = Reason, __TopXMLNS, _acc) -> [encode_error_resource_constraint(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('service-unavailable' = Reason, __TopXMLNS, _acc) -> [encode_error_service_unavailable(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('subscription-required' = Reason, __TopXMLNS, _acc) -> [encode_error_subscription_required(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('undefined-condition' = Reason, __TopXMLNS, _acc) -> [encode_error_undefined_condition(Reason, __TopXMLNS) | _acc]; 'encode_error_$reason'('unexpected-request' = Reason, __TopXMLNS, _acc) -> [encode_error_unexpected_request(Reason, __TopXMLNS) | _acc]. decode_error_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"error">>, __TopXMLNS}}); decode_error_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [auth, cancel, continue, modify, wait]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"error">>, __TopXMLNS}}); _res -> _res end. encode_error_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_error_attr_code(__TopXMLNS, undefined) -> undefined; decode_error_attr_code(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"code">>, <<"error">>, __TopXMLNS}}); _res -> _res end. encode_error_attr_code(undefined, _acc) -> _acc; encode_error_attr_code(_val, _acc) -> [{<<"code">>, enc_int(_val)} | _acc]. decode_error_attr_by(__TopXMLNS, undefined) -> <<>>; decode_error_attr_by(__TopXMLNS, _val) -> _val. encode_error_attr_by(<<>>, _acc) -> _acc; encode_error_attr_by(_val, _acc) -> [{<<"by">>, _val} | _acc]. decode_error_text(__TopXMLNS, __IgnoreEls, {xmlel, <<"text">>, _attrs, _els}) -> Data = decode_error_text_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_error_text_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_error_text_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_error_text_cdata(__TopXMLNS, Data); decode_error_text_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_error_text_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_error_text_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_error_text_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_error_text_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_error_text_attrs(__TopXMLNS, _attrs, _val); decode_error_text_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_error_text_attrs(__TopXMLNS, _attrs, Lang); decode_error_text_attrs(__TopXMLNS, [], Lang) -> 'decode_error_text_attr_xml:lang'(__TopXMLNS, Lang). encode_error_text({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = encode_error_text_cdata(Data, []), _attrs = 'encode_error_text_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"text">>, _attrs, _els}. 'decode_error_text_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_error_text_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_error_text_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_error_text_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_error_text_cdata(__TopXMLNS, <<>>) -> <<>>; decode_error_text_cdata(__TopXMLNS, _val) -> _val. encode_error_text_cdata(<<>>, _acc) -> _acc; encode_error_text_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_error_unexpected_request(__TopXMLNS, __IgnoreEls, {xmlel, <<"unexpected-request">>, _attrs, _els}) -> 'unexpected-request'. encode_error_unexpected_request('unexpected-request', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unexpected-request">>, _attrs, _els}. decode_error_undefined_condition(__TopXMLNS, __IgnoreEls, {xmlel, <<"undefined-condition">>, _attrs, _els}) -> 'undefined-condition'. encode_error_undefined_condition('undefined-condition', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"undefined-condition">>, _attrs, _els}. decode_error_subscription_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"subscription-required">>, _attrs, _els}) -> 'subscription-required'. encode_error_subscription_required('subscription-required', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"subscription-required">>, _attrs, _els}. decode_error_service_unavailable(__TopXMLNS, __IgnoreEls, {xmlel, <<"service-unavailable">>, _attrs, _els}) -> 'service-unavailable'. encode_error_service_unavailable('service-unavailable', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"service-unavailable">>, _attrs, _els}. decode_error_resource_constraint(__TopXMLNS, __IgnoreEls, {xmlel, <<"resource-constraint">>, _attrs, _els}) -> 'resource-constraint'. encode_error_resource_constraint('resource-constraint', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"resource-constraint">>, _attrs, _els}. decode_error_remote_server_timeout(__TopXMLNS, __IgnoreEls, {xmlel, <<"remote-server-timeout">>, _attrs, _els}) -> 'remote-server-timeout'. encode_error_remote_server_timeout('remote-server-timeout', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"remote-server-timeout">>, _attrs, _els}. decode_error_remote_server_not_found(__TopXMLNS, __IgnoreEls, {xmlel, <<"remote-server-not-found">>, _attrs, _els}) -> 'remote-server-not-found'. encode_error_remote_server_not_found('remote-server-not-found', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"remote-server-not-found">>, _attrs, _els}. decode_error_registration_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"registration-required">>, _attrs, _els}) -> 'registration-required'. encode_error_registration_required('registration-required', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"registration-required">>, _attrs, _els}. decode_error_redirect(__TopXMLNS, __IgnoreEls, {xmlel, <<"redirect">>, _attrs, _els}) -> Uri = decode_error_redirect_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {redirect, Uri}. decode_error_redirect_els(__TopXMLNS, __IgnoreEls, [], Uri) -> decode_error_redirect_cdata(__TopXMLNS, Uri); decode_error_redirect_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Uri) -> decode_error_redirect_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_error_redirect_els(__TopXMLNS, __IgnoreEls, [_ | _els], Uri) -> decode_error_redirect_els(__TopXMLNS, __IgnoreEls, _els, Uri). encode_error_redirect({redirect, Uri}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = encode_error_redirect_cdata(Uri, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"redirect">>, _attrs, _els}. decode_error_redirect_cdata(__TopXMLNS, <<>>) -> <<>>; decode_error_redirect_cdata(__TopXMLNS, _val) -> _val. encode_error_redirect_cdata(<<>>, _acc) -> _acc; encode_error_redirect_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_error_recipient_unavailable(__TopXMLNS, __IgnoreEls, {xmlel, <<"recipient-unavailable">>, _attrs, _els}) -> 'recipient-unavailable'. encode_error_recipient_unavailable('recipient-unavailable', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"recipient-unavailable">>, _attrs, _els}. decode_error_policy_violation(__TopXMLNS, __IgnoreEls, {xmlel, <<"policy-violation">>, _attrs, _els}) -> 'policy-violation'. encode_error_policy_violation('policy-violation', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"policy-violation">>, _attrs, _els}. decode_error_payment_required(__TopXMLNS, __IgnoreEls, {xmlel, <<"payment-required">>, _attrs, _els}) -> 'payment-required'. encode_error_payment_required('payment-required', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"payment-required">>, _attrs, _els}. decode_error_not_authorized(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-authorized">>, _attrs, _els}) -> 'not-authorized'. encode_error_not_authorized('not-authorized', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-authorized">>, _attrs, _els}. decode_error_not_allowed(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-allowed">>, _attrs, _els}) -> 'not-allowed'. encode_error_not_allowed('not-allowed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-allowed">>, _attrs, _els}. decode_error_not_acceptable(__TopXMLNS, __IgnoreEls, {xmlel, <<"not-acceptable">>, _attrs, _els}) -> 'not-acceptable'. encode_error_not_acceptable('not-acceptable', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"not-acceptable">>, _attrs, _els}. decode_error_jid_malformed(__TopXMLNS, __IgnoreEls, {xmlel, <<"jid-malformed">>, _attrs, _els}) -> 'jid-malformed'. encode_error_jid_malformed('jid-malformed', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"jid-malformed">>, _attrs, _els}. decode_error_item_not_found(__TopXMLNS, __IgnoreEls, {xmlel, <<"item-not-found">>, _attrs, _els}) -> 'item-not-found'. encode_error_item_not_found('item-not-found', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"item-not-found">>, _attrs, _els}. decode_error_internal_server_error(__TopXMLNS, __IgnoreEls, {xmlel, <<"internal-server-error">>, _attrs, _els}) -> 'internal-server-error'. encode_error_internal_server_error('internal-server-error', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"internal-server-error">>, _attrs, _els}. decode_error_gone(__TopXMLNS, __IgnoreEls, {xmlel, <<"gone">>, _attrs, _els}) -> Uri = decode_error_gone_els(__TopXMLNS, __IgnoreEls, _els, <<>>), {gone, Uri}. decode_error_gone_els(__TopXMLNS, __IgnoreEls, [], Uri) -> decode_error_gone_cdata(__TopXMLNS, Uri); decode_error_gone_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Uri) -> decode_error_gone_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_error_gone_els(__TopXMLNS, __IgnoreEls, [_ | _els], Uri) -> decode_error_gone_els(__TopXMLNS, __IgnoreEls, _els, Uri). encode_error_gone({gone, Uri}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = encode_error_gone_cdata(Uri, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"gone">>, _attrs, _els}. decode_error_gone_cdata(__TopXMLNS, <<>>) -> <<>>; decode_error_gone_cdata(__TopXMLNS, _val) -> _val. encode_error_gone_cdata(<<>>, _acc) -> _acc; encode_error_gone_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_error_forbidden(__TopXMLNS, __IgnoreEls, {xmlel, <<"forbidden">>, _attrs, _els}) -> forbidden. encode_error_forbidden(forbidden, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"forbidden">>, _attrs, _els}. decode_error_feature_not_implemented(__TopXMLNS, __IgnoreEls, {xmlel, <<"feature-not-implemented">>, _attrs, _els}) -> 'feature-not-implemented'. encode_error_feature_not_implemented('feature-not-implemented', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"feature-not-implemented">>, _attrs, _els}. decode_error_conflict(__TopXMLNS, __IgnoreEls, {xmlel, <<"conflict">>, _attrs, _els}) -> conflict. encode_error_conflict(conflict, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"conflict">>, _attrs, _els}. decode_error_bad_request(__TopXMLNS, __IgnoreEls, {xmlel, <<"bad-request">>, _attrs, _els}) -> 'bad-request'. encode_error_bad_request('bad-request', __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:ietf:params:xml:ns:xmpp-stanzas">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"bad-request">>, _attrs, _els}. decode_presence(__TopXMLNS, __IgnoreEls, {xmlel, <<"presence">>, _attrs, _els}) -> {Status, Show, Priority, __Els} = decode_presence_els(__TopXMLNS, __IgnoreEls, _els, [], undefined, undefined, []), {Id, Type, From, To, Lang} = decode_presence_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {presence, Id, Type, Lang, From, To, Show, Status, Priority, __Els}. decode_presence_els(__TopXMLNS, __IgnoreEls, [], Status, Show, Priority, __Els) -> {lists:reverse(Status), Show, Priority, lists:reverse(__Els)}; decode_presence_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"show">>, _attrs, _} = _el | _els], Status, Show, Priority, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, decode_presence_show(__TopXMLNS, __IgnoreEls, _el), Priority, __Els); <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, decode_presence_show(<<"jabber:client">>, __IgnoreEls, _el), Priority, __Els); <<"jabber:server">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, decode_presence_show(<<"jabber:server">>, __IgnoreEls, _el), Priority, __Els); <<"jabber:component:accept">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, decode_presence_show(<<"jabber:component:accept">>, __IgnoreEls, _el), Priority, __Els); _ -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, __Els) end; decode_presence_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"status">>, _attrs, _} = _el | _els], Status, Show, Priority, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, [decode_presence_status(__TopXMLNS, __IgnoreEls, _el) | Status], Show, Priority, __Els); <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, [decode_presence_status(<<"jabber:client">>, __IgnoreEls, _el) | Status], Show, Priority, __Els); <<"jabber:server">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, [decode_presence_status(<<"jabber:server">>, __IgnoreEls, _el) | Status], Show, Priority, __Els); <<"jabber:component:accept">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, [decode_presence_status(<<"jabber:component:accept">>, __IgnoreEls, _el) | Status], Show, Priority, __Els); _ -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, __Els) end; decode_presence_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"priority">>, _attrs, _} = _el | _els], Status, Show, Priority, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, decode_presence_priority(__TopXMLNS, __IgnoreEls, _el), __Els); <<"jabber:client">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, decode_presence_priority(<<"jabber:client">>, __IgnoreEls, _el), __Els); <<"jabber:server">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, decode_presence_priority(<<"jabber:server">>, __IgnoreEls, _el), __Els); <<"jabber:component:accept">> -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, decode_presence_priority(<<"jabber:component:accept">>, __IgnoreEls, _el), __Els); _ -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, __Els) end; decode_presence_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Status, Show, Priority, __Els) -> if __IgnoreEls -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, __Els) end end; decode_presence_els(__TopXMLNS, __IgnoreEls, [_ | _els], Status, Show, Priority, __Els) -> decode_presence_els(__TopXMLNS, __IgnoreEls, _els, Status, Show, Priority, __Els). decode_presence_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, Type, From, To, Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, _val, Type, From, To, Lang); decode_presence_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Id, _Type, From, To, Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, Id, _val, From, To, Lang); decode_presence_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], Id, Type, _From, To, Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, _val, To, Lang); decode_presence_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], Id, Type, From, _To, Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, From, _val, Lang); decode_presence_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, _Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, From, To, _val); decode_presence_attrs(__TopXMLNS, [_ | _attrs], Id, Type, From, To, Lang) -> decode_presence_attrs(__TopXMLNS, _attrs, Id, Type, From, To, Lang); decode_presence_attrs(__TopXMLNS, [], Id, Type, From, To, Lang) -> {decode_presence_attr_id(__TopXMLNS, Id), decode_presence_attr_type(__TopXMLNS, Type), decode_presence_attr_from(__TopXMLNS, From), decode_presence_attr_to(__TopXMLNS, To), 'decode_presence_attr_xml:lang'(__TopXMLNS, Lang)}. encode_presence({presence, Id, Type, Lang, From, To, Show, Status, Priority, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ lists:reverse('encode_presence_$status'(Status, __NewTopXMLNS, 'encode_presence_$show'(Show, __NewTopXMLNS, 'encode_presence_$priority'(Priority, __NewTopXMLNS, [])))), _attrs = 'encode_presence_attr_xml:lang'(Lang, encode_presence_attr_to(To, encode_presence_attr_from(From, encode_presence_attr_type(Type, encode_presence_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"presence">>, _attrs, _els}. 'encode_presence_$status'([], __TopXMLNS, _acc) -> _acc; 'encode_presence_$status'([Status | _els], __TopXMLNS, _acc) -> 'encode_presence_$status'(_els, __TopXMLNS, [encode_presence_status(Status, __TopXMLNS) | _acc]). 'encode_presence_$show'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_presence_$show'(Show, __TopXMLNS, _acc) -> [encode_presence_show(Show, __TopXMLNS) | _acc]. 'encode_presence_$priority'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_presence_$priority'(Priority, __TopXMLNS, _acc) -> [encode_presence_priority(Priority, __TopXMLNS) | _acc]. decode_presence_attr_id(__TopXMLNS, undefined) -> <<>>; decode_presence_attr_id(__TopXMLNS, _val) -> _val. encode_presence_attr_id(<<>>, _acc) -> _acc; encode_presence_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_presence_attr_type(__TopXMLNS, undefined) -> available; decode_presence_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [unavailable, subscribe, subscribed, unsubscribe, unsubscribed, available, probe, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"presence">>, __TopXMLNS}}); _res -> _res end. encode_presence_attr_type(available, _acc) -> _acc; encode_presence_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_presence_attr_from(__TopXMLNS, undefined) -> undefined; decode_presence_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"presence">>, __TopXMLNS}}); _res -> _res end. encode_presence_attr_from(undefined, _acc) -> _acc; encode_presence_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_presence_attr_to(__TopXMLNS, undefined) -> undefined; decode_presence_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"presence">>, __TopXMLNS}}); _res -> _res end. encode_presence_attr_to(undefined, _acc) -> _acc; encode_presence_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. 'decode_presence_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_presence_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_presence_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_presence_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_presence_priority(__TopXMLNS, __IgnoreEls, {xmlel, <<"priority">>, _attrs, _els}) -> Cdata = decode_presence_priority_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_presence_priority_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_presence_priority_cdata(__TopXMLNS, Cdata); decode_presence_priority_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_presence_priority_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_presence_priority_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_presence_priority_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_presence_priority(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_presence_priority_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"priority">>, _attrs, _els}. decode_presence_priority_cdata(__TopXMLNS, <<>>) -> undefined; decode_presence_priority_cdata(__TopXMLNS, _val) -> case catch dec_int(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"priority">>, __TopXMLNS}}); _res -> _res end. encode_presence_priority_cdata(undefined, _acc) -> _acc; encode_presence_priority_cdata(_val, _acc) -> [{xmlcdata, enc_int(_val)} | _acc]. decode_presence_status(__TopXMLNS, __IgnoreEls, {xmlel, <<"status">>, _attrs, _els}) -> Data = decode_presence_status_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_presence_status_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_presence_status_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_presence_status_cdata(__TopXMLNS, Data); decode_presence_status_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_presence_status_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_presence_status_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_presence_status_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_presence_status_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_presence_status_attrs(__TopXMLNS, _attrs, _val); decode_presence_status_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_presence_status_attrs(__TopXMLNS, _attrs, Lang); decode_presence_status_attrs(__TopXMLNS, [], Lang) -> 'decode_presence_status_attr_xml:lang'(__TopXMLNS, Lang). encode_presence_status({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_presence_status_cdata(Data, []), _attrs = 'encode_presence_status_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"status">>, _attrs, _els}. 'decode_presence_status_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_presence_status_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_presence_status_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_presence_status_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_presence_status_cdata(__TopXMLNS, <<>>) -> <<>>; decode_presence_status_cdata(__TopXMLNS, _val) -> _val. encode_presence_status_cdata(<<>>, _acc) -> _acc; encode_presence_status_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_presence_show(__TopXMLNS, __IgnoreEls, {xmlel, <<"show">>, _attrs, _els}) -> Cdata = decode_presence_show_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_presence_show_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_presence_show_cdata(__TopXMLNS, Cdata); decode_presence_show_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_presence_show_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_presence_show_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_presence_show_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_presence_show(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_presence_show_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"show">>, _attrs, _els}. decode_presence_show_cdata(__TopXMLNS, <<>>) -> undefined; decode_presence_show_cdata(__TopXMLNS, _val) -> case catch dec_enum(_val, [away, chat, dnd, xa]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_cdata_value, <<>>, <<"show">>, __TopXMLNS}}); _res -> _res end. encode_presence_show_cdata(undefined, _acc) -> _acc; encode_presence_show_cdata(_val, _acc) -> [{xmlcdata, enc_enum(_val)} | _acc]. decode_message(__TopXMLNS, __IgnoreEls, {xmlel, <<"message">>, _attrs, _els}) -> {Thread, Subject, Body, __Els} = decode_message_els(__TopXMLNS, __IgnoreEls, _els, undefined, [], [], []), {Id, Type, From, To, Lang} = decode_message_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {message, Id, Type, Lang, From, To, Subject, Body, Thread, __Els}. decode_message_els(__TopXMLNS, __IgnoreEls, [], Thread, Subject, Body, __Els) -> {Thread, lists:reverse(Subject), lists:reverse(Body), lists:reverse(__Els)}; decode_message_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"subject">>, _attrs, _} = _el | _els], Thread, Subject, Body, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, [decode_message_subject(__TopXMLNS, __IgnoreEls, _el) | Subject], Body, __Els); <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, [decode_message_subject(<<"jabber:client">>, __IgnoreEls, _el) | Subject], Body, __Els); <<"jabber:server">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, [decode_message_subject(<<"jabber:server">>, __IgnoreEls, _el) | Subject], Body, __Els); <<"jabber:component:accept">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, [decode_message_subject(<<"jabber:component:accept">>, __IgnoreEls, _el) | Subject], Body, __Els); _ -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, __Els) end; decode_message_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"thread">>, _attrs, _} = _el | _els], Thread, Subject, Body, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, decode_message_thread(__TopXMLNS, __IgnoreEls, _el), Subject, Body, __Els); <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, decode_message_thread(<<"jabber:client">>, __IgnoreEls, _el), Subject, Body, __Els); <<"jabber:server">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, decode_message_thread(<<"jabber:server">>, __IgnoreEls, _el), Subject, Body, __Els); <<"jabber:component:accept">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, decode_message_thread(<<"jabber:component:accept">>, __IgnoreEls, _el), Subject, Body, __Els); _ -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, __Els) end; decode_message_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"body">>, _attrs, _} = _el | _els], Thread, Subject, Body, __Els) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:server">>; __TopXMLNS == <<"jabber:component:accept">>; __TopXMLNS == <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, [decode_message_body(__TopXMLNS, __IgnoreEls, _el) | Body], __Els); <<"jabber:client">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, [decode_message_body(<<"jabber:client">>, __IgnoreEls, _el) | Body], __Els); <<"jabber:server">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, [decode_message_body(<<"jabber:server">>, __IgnoreEls, _el) | Body], __Els); <<"jabber:component:accept">> -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, [decode_message_body(<<"jabber:component:accept">>, __IgnoreEls, _el) | Body], __Els); _ -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, __Els) end; decode_message_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], Thread, Subject, Body, __Els) -> if __IgnoreEls -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, __Els) end end; decode_message_els(__TopXMLNS, __IgnoreEls, [_ | _els], Thread, Subject, Body, __Els) -> decode_message_els(__TopXMLNS, __IgnoreEls, _els, Thread, Subject, Body, __Els). decode_message_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, Type, From, To, Lang) -> decode_message_attrs(__TopXMLNS, _attrs, _val, Type, From, To, Lang); decode_message_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Id, _Type, From, To, Lang) -> decode_message_attrs(__TopXMLNS, _attrs, Id, _val, From, To, Lang); decode_message_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], Id, Type, _From, To, Lang) -> decode_message_attrs(__TopXMLNS, _attrs, Id, Type, _val, To, Lang); decode_message_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], Id, Type, From, _To, Lang) -> decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, _val, Lang); decode_message_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, _Lang) -> decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, To, _val); decode_message_attrs(__TopXMLNS, [_ | _attrs], Id, Type, From, To, Lang) -> decode_message_attrs(__TopXMLNS, _attrs, Id, Type, From, To, Lang); decode_message_attrs(__TopXMLNS, [], Id, Type, From, To, Lang) -> {decode_message_attr_id(__TopXMLNS, Id), decode_message_attr_type(__TopXMLNS, Type), decode_message_attr_from(__TopXMLNS, From), decode_message_attr_to(__TopXMLNS, To), 'decode_message_attr_xml:lang'(__TopXMLNS, Lang)}. encode_message({message, Id, Type, Lang, From, To, Subject, Body, Thread, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els] ++ lists:reverse('encode_message_$thread'(Thread, __NewTopXMLNS, 'encode_message_$subject'(Subject, __NewTopXMLNS, 'encode_message_$body'(Body, __NewTopXMLNS, [])))), _attrs = 'encode_message_attr_xml:lang'(Lang, encode_message_attr_to(To, encode_message_attr_from(From, encode_message_attr_type(Type, encode_message_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"message">>, _attrs, _els}. 'encode_message_$thread'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_message_$thread'(Thread, __TopXMLNS, _acc) -> [encode_message_thread(Thread, __TopXMLNS) | _acc]. 'encode_message_$subject'([], __TopXMLNS, _acc) -> _acc; 'encode_message_$subject'([Subject | _els], __TopXMLNS, _acc) -> 'encode_message_$subject'(_els, __TopXMLNS, [encode_message_subject(Subject, __TopXMLNS) | _acc]). 'encode_message_$body'([], __TopXMLNS, _acc) -> _acc; 'encode_message_$body'([Body | _els], __TopXMLNS, _acc) -> 'encode_message_$body'(_els, __TopXMLNS, [encode_message_body(Body, __TopXMLNS) | _acc]). decode_message_attr_id(__TopXMLNS, undefined) -> <<>>; decode_message_attr_id(__TopXMLNS, _val) -> _val. encode_message_attr_id(<<>>, _acc) -> _acc; encode_message_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_message_attr_type(__TopXMLNS, undefined) -> normal; decode_message_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [chat, normal, groupchat, headline, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"message">>, __TopXMLNS}}); _res -> _res end. encode_message_attr_type(normal, _acc) -> _acc; encode_message_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_message_attr_from(__TopXMLNS, undefined) -> undefined; decode_message_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"message">>, __TopXMLNS}}); _res -> _res end. encode_message_attr_from(undefined, _acc) -> _acc; encode_message_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_message_attr_to(__TopXMLNS, undefined) -> undefined; decode_message_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"message">>, __TopXMLNS}}); _res -> _res end. encode_message_attr_to(undefined, _acc) -> _acc; encode_message_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. 'decode_message_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_message_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_message_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_message_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_message_thread(__TopXMLNS, __IgnoreEls, {xmlel, <<"thread">>, _attrs, _els}) -> Cdata = decode_message_thread_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_message_thread_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_message_thread_cdata(__TopXMLNS, Cdata); decode_message_thread_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_message_thread_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_message_thread_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_message_thread_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_message_thread(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_message_thread_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"thread">>, _attrs, _els}. decode_message_thread_cdata(__TopXMLNS, <<>>) -> <<>>; decode_message_thread_cdata(__TopXMLNS, _val) -> _val. encode_message_thread_cdata(<<>>, _acc) -> _acc; encode_message_thread_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_message_body(__TopXMLNS, __IgnoreEls, {xmlel, <<"body">>, _attrs, _els}) -> Data = decode_message_body_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_message_body_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_message_body_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_message_body_cdata(__TopXMLNS, Data); decode_message_body_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_message_body_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_message_body_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_message_body_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_message_body_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_message_body_attrs(__TopXMLNS, _attrs, _val); decode_message_body_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_message_body_attrs(__TopXMLNS, _attrs, Lang); decode_message_body_attrs(__TopXMLNS, [], Lang) -> 'decode_message_body_attr_xml:lang'(__TopXMLNS, Lang). encode_message_body({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_message_body_cdata(Data, []), _attrs = 'encode_message_body_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"body">>, _attrs, _els}. 'decode_message_body_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_message_body_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_message_body_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_message_body_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_message_body_cdata(__TopXMLNS, <<>>) -> <<>>; decode_message_body_cdata(__TopXMLNS, _val) -> _val. encode_message_body_cdata(<<>>, _acc) -> _acc; encode_message_body_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_message_subject(__TopXMLNS, __IgnoreEls, {xmlel, <<"subject">>, _attrs, _els}) -> Data = decode_message_subject_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Lang = decode_message_subject_attrs(__TopXMLNS, _attrs, undefined), {text, Lang, Data}. decode_message_subject_els(__TopXMLNS, __IgnoreEls, [], Data) -> decode_message_subject_cdata(__TopXMLNS, Data); decode_message_subject_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Data) -> decode_message_subject_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_message_subject_els(__TopXMLNS, __IgnoreEls, [_ | _els], Data) -> decode_message_subject_els(__TopXMLNS, __IgnoreEls, _els, Data). decode_message_subject_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], _Lang) -> decode_message_subject_attrs(__TopXMLNS, _attrs, _val); decode_message_subject_attrs(__TopXMLNS, [_ | _attrs], Lang) -> decode_message_subject_attrs(__TopXMLNS, _attrs, Lang); decode_message_subject_attrs(__TopXMLNS, [], Lang) -> 'decode_message_subject_attr_xml:lang'(__TopXMLNS, Lang). encode_message_subject({text, Lang, Data}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = encode_message_subject_cdata(Data, []), _attrs = 'encode_message_subject_attr_xml:lang'(Lang, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"subject">>, _attrs, _els}. 'decode_message_subject_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_message_subject_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_message_subject_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_message_subject_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_message_subject_cdata(__TopXMLNS, <<>>) -> <<>>; decode_message_subject_cdata(__TopXMLNS, _val) -> _val. encode_message_subject_cdata(<<>>, _acc) -> _acc; encode_message_subject_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_iq(__TopXMLNS, __IgnoreEls, {xmlel, <<"iq">>, _attrs, _els}) -> __Els = decode_iq_els(__TopXMLNS, __IgnoreEls, _els, []), {Id, Type, From, To, Lang} = decode_iq_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined, undefined), {iq, Id, Type, Lang, From, To, __Els}. decode_iq_els(__TopXMLNS, __IgnoreEls, [], __Els) -> lists:reverse(__Els); decode_iq_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], __Els) -> if __IgnoreEls -> decode_iq_els(__TopXMLNS, __IgnoreEls, _els, [_el | __Els]); true -> case is_known_tag(_el, __TopXMLNS) of true -> decode_iq_els(__TopXMLNS, __IgnoreEls, _els, [decode(_el, __TopXMLNS, []) | __Els]); false -> decode_iq_els(__TopXMLNS, __IgnoreEls, _els, __Els) end end; decode_iq_els(__TopXMLNS, __IgnoreEls, [_ | _els], __Els) -> decode_iq_els(__TopXMLNS, __IgnoreEls, _els, __Els). decode_iq_attrs(__TopXMLNS, [{<<"id">>, _val} | _attrs], _Id, Type, From, To, Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, _val, Type, From, To, Lang); decode_iq_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Id, _Type, From, To, Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, Id, _val, From, To, Lang); decode_iq_attrs(__TopXMLNS, [{<<"from">>, _val} | _attrs], Id, Type, _From, To, Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, _val, To, Lang); decode_iq_attrs(__TopXMLNS, [{<<"to">>, _val} | _attrs], Id, Type, From, _To, Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, _val, Lang); decode_iq_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], Id, Type, From, To, _Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, To, _val); decode_iq_attrs(__TopXMLNS, [_ | _attrs], Id, Type, From, To, Lang) -> decode_iq_attrs(__TopXMLNS, _attrs, Id, Type, From, To, Lang); decode_iq_attrs(__TopXMLNS, [], Id, Type, From, To, Lang) -> {decode_iq_attr_id(__TopXMLNS, Id), decode_iq_attr_type(__TopXMLNS, Type), decode_iq_attr_from(__TopXMLNS, From), decode_iq_attr_to(__TopXMLNS, To), 'decode_iq_attr_xml:lang'(__TopXMLNS, Lang)}. encode_iq({iq, Id, Type, Lang, From, To, __Els}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<>>, [<<"jabber:client">>, <<"jabber:server">>, <<"jabber:component:accept">>], __TopXMLNS), _els = [encode(_el, __NewTopXMLNS) || _el <- __Els], _attrs = 'encode_iq_attr_xml:lang'(Lang, encode_iq_attr_to(To, encode_iq_attr_from(From, encode_iq_attr_type(Type, encode_iq_attr_id(Id, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))))), {xmlel, <<"iq">>, _attrs, _els}. decode_iq_attr_id(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"id">>, <<"iq">>, __TopXMLNS}}); decode_iq_attr_id(__TopXMLNS, _val) -> _val. encode_iq_attr_id(_val, _acc) -> [{<<"id">>, _val} | _acc]. decode_iq_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"iq">>, __TopXMLNS}}); decode_iq_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [get, set, result, error]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. encode_iq_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_iq_attr_from(__TopXMLNS, undefined) -> undefined; decode_iq_attr_from(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"from">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. encode_iq_attr_from(undefined, _acc) -> _acc; encode_iq_attr_from(_val, _acc) -> [{<<"from">>, enc_jid(_val)} | _acc]. decode_iq_attr_to(__TopXMLNS, undefined) -> undefined; decode_iq_attr_to(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"to">>, <<"iq">>, __TopXMLNS}}); _res -> _res end. encode_iq_attr_to(undefined, _acc) -> _acc; encode_iq_attr_to(_val, _acc) -> [{<<"to">>, enc_jid(_val)} | _acc]. 'decode_iq_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_iq_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_iq_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_iq_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_stats(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> List = decode_stats_els(__TopXMLNS, __IgnoreEls, _els, []), Node = decode_stats_attrs(__TopXMLNS, _attrs, undefined), {stats, List, Node}. decode_stats_els(__TopXMLNS, __IgnoreEls, [], List) -> lists:reverse(List); decode_stats_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"stat">>, _attrs, _} = _el | _els], List) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/stats">> -> decode_stats_els(__TopXMLNS, __IgnoreEls, _els, [decode_stat(__TopXMLNS, __IgnoreEls, _el) | List]); <<"http://jabber.org/protocol/stats">> -> decode_stats_els(__TopXMLNS, __IgnoreEls, _els, [decode_stat(<<"http://jabber.org/protocol/stats">>, __IgnoreEls, _el) | List]); _ -> decode_stats_els(__TopXMLNS, __IgnoreEls, _els, List) end; decode_stats_els(__TopXMLNS, __IgnoreEls, [_ | _els], List) -> decode_stats_els(__TopXMLNS, __IgnoreEls, _els, List). decode_stats_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_stats_attrs(__TopXMLNS, _attrs, _val); decode_stats_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_stats_attrs(__TopXMLNS, _attrs, Node); decode_stats_attrs(__TopXMLNS, [], Node) -> decode_stats_attr_node(__TopXMLNS, Node). encode_stats({stats, List, Node}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/stats">>, [], __TopXMLNS), _els = lists:reverse('encode_stats_$list'(List, __NewTopXMLNS, [])), _attrs = encode_stats_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_stats_$list'([], __TopXMLNS, _acc) -> _acc; 'encode_stats_$list'([List | _els], __TopXMLNS, _acc) -> 'encode_stats_$list'(_els, __TopXMLNS, [encode_stat(List, __TopXMLNS) | _acc]). decode_stats_attr_node(__TopXMLNS, undefined) -> <<>>; decode_stats_attr_node(__TopXMLNS, _val) -> _val. encode_stats_attr_node(<<>>, _acc) -> _acc; encode_stats_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_stat(__TopXMLNS, __IgnoreEls, {xmlel, <<"stat">>, _attrs, _els}) -> Error = decode_stat_els(__TopXMLNS, __IgnoreEls, _els, undefined), {Name, Units, Value} = decode_stat_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {stat, Name, Units, Value, Error}. decode_stat_els(__TopXMLNS, __IgnoreEls, [], Error) -> Error; decode_stat_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"error">>, _attrs, _} = _el | _els], Error) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/stats">> -> decode_stat_els(__TopXMLNS, __IgnoreEls, _els, decode_stat_error(__TopXMLNS, __IgnoreEls, _el)); <<"http://jabber.org/protocol/stats">> -> decode_stat_els(__TopXMLNS, __IgnoreEls, _els, decode_stat_error(<<"http://jabber.org/protocol/stats">>, __IgnoreEls, _el)); _ -> decode_stat_els(__TopXMLNS, __IgnoreEls, _els, Error) end; decode_stat_els(__TopXMLNS, __IgnoreEls, [_ | _els], Error) -> decode_stat_els(__TopXMLNS, __IgnoreEls, _els, Error). decode_stat_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name, Units, Value) -> decode_stat_attrs(__TopXMLNS, _attrs, _val, Units, Value); decode_stat_attrs(__TopXMLNS, [{<<"units">>, _val} | _attrs], Name, _Units, Value) -> decode_stat_attrs(__TopXMLNS, _attrs, Name, _val, Value); decode_stat_attrs(__TopXMLNS, [{<<"value">>, _val} | _attrs], Name, Units, _Value) -> decode_stat_attrs(__TopXMLNS, _attrs, Name, Units, _val); decode_stat_attrs(__TopXMLNS, [_ | _attrs], Name, Units, Value) -> decode_stat_attrs(__TopXMLNS, _attrs, Name, Units, Value); decode_stat_attrs(__TopXMLNS, [], Name, Units, Value) -> {decode_stat_attr_name(__TopXMLNS, Name), decode_stat_attr_units(__TopXMLNS, Units), decode_stat_attr_value(__TopXMLNS, Value)}. encode_stat({stat, Name, Units, Value, Error}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/stats">>, [], __TopXMLNS), _els = lists:reverse('encode_stat_$error'(Error, __NewTopXMLNS, [])), _attrs = encode_stat_attr_value(Value, encode_stat_attr_units(Units, encode_stat_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"stat">>, _attrs, _els}. 'encode_stat_$error'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_stat_$error'(Error, __TopXMLNS, _acc) -> [encode_stat_error(Error, __TopXMLNS) | _acc]. decode_stat_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"stat">>, __TopXMLNS}}); decode_stat_attr_name(__TopXMLNS, _val) -> _val. encode_stat_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_stat_attr_units(__TopXMLNS, undefined) -> <<>>; decode_stat_attr_units(__TopXMLNS, _val) -> _val. encode_stat_attr_units(<<>>, _acc) -> _acc; encode_stat_attr_units(_val, _acc) -> [{<<"units">>, _val} | _acc]. decode_stat_attr_value(__TopXMLNS, undefined) -> <<>>; decode_stat_attr_value(__TopXMLNS, _val) -> _val. encode_stat_attr_value(<<>>, _acc) -> _acc; encode_stat_attr_value(_val, _acc) -> [{<<"value">>, _val} | _acc]. decode_stat_error(__TopXMLNS, __IgnoreEls, {xmlel, <<"error">>, _attrs, _els}) -> Reason = decode_stat_error_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Code = decode_stat_error_attrs(__TopXMLNS, _attrs, undefined), {stat_error, Code, Reason}. decode_stat_error_els(__TopXMLNS, __IgnoreEls, [], Reason) -> decode_stat_error_cdata(__TopXMLNS, Reason); decode_stat_error_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Reason) -> decode_stat_error_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_stat_error_els(__TopXMLNS, __IgnoreEls, [_ | _els], Reason) -> decode_stat_error_els(__TopXMLNS, __IgnoreEls, _els, Reason). decode_stat_error_attrs(__TopXMLNS, [{<<"code">>, _val} | _attrs], _Code) -> decode_stat_error_attrs(__TopXMLNS, _attrs, _val); decode_stat_error_attrs(__TopXMLNS, [_ | _attrs], Code) -> decode_stat_error_attrs(__TopXMLNS, _attrs, Code); decode_stat_error_attrs(__TopXMLNS, [], Code) -> decode_stat_error_attr_code(__TopXMLNS, Code). encode_stat_error({stat_error, Code, Reason}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/stats">>, [], __TopXMLNS), _els = encode_stat_error_cdata(Reason, []), _attrs = encode_stat_error_attr_code(Code, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"error">>, _attrs, _els}. decode_stat_error_attr_code(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"code">>, <<"error">>, __TopXMLNS}}); decode_stat_error_attr_code(__TopXMLNS, _val) -> case catch dec_int(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"code">>, <<"error">>, __TopXMLNS}}); _res -> _res end. encode_stat_error_attr_code(_val, _acc) -> [{<<"code">>, enc_int(_val)} | _acc]. decode_stat_error_cdata(__TopXMLNS, <<>>) -> <<>>; decode_stat_error_cdata(__TopXMLNS, _val) -> _val. encode_stat_error_cdata(<<>>, _acc) -> _acc; encode_stat_error_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_bookmarks_storage(__TopXMLNS, __IgnoreEls, {xmlel, <<"storage">>, _attrs, _els}) -> {Conference, Url} = decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, [], []), {bookmark_storage, Conference, Url}. decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, [], Conference, Url) -> {lists:reverse(Conference), lists:reverse(Url)}; decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"conference">>, _attrs, _} = _el | _els], Conference, Url) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"storage:bookmarks">> -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, [decode_bookmark_conference(__TopXMLNS, __IgnoreEls, _el) | Conference], Url); <<"storage:bookmarks">> -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, [decode_bookmark_conference(<<"storage:bookmarks">>, __IgnoreEls, _el) | Conference], Url); _ -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, Conference, Url) end; decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"url">>, _attrs, _} = _el | _els], Conference, Url) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"storage:bookmarks">> -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, Conference, [decode_bookmark_url(__TopXMLNS, __IgnoreEls, _el) | Url]); <<"storage:bookmarks">> -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, Conference, [decode_bookmark_url(<<"storage:bookmarks">>, __IgnoreEls, _el) | Url]); _ -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, Conference, Url) end; decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, [_ | _els], Conference, Url) -> decode_bookmarks_storage_els(__TopXMLNS, __IgnoreEls, _els, Conference, Url). encode_bookmarks_storage({bookmark_storage, Conference, Url}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"storage:bookmarks">>, [], __TopXMLNS), _els = lists:reverse('encode_bookmarks_storage_$conference'(Conference, __NewTopXMLNS, 'encode_bookmarks_storage_$url'(Url, __NewTopXMLNS, []))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"storage">>, _attrs, _els}. 'encode_bookmarks_storage_$conference'([], __TopXMLNS, _acc) -> _acc; 'encode_bookmarks_storage_$conference'([Conference | _els], __TopXMLNS, _acc) -> 'encode_bookmarks_storage_$conference'(_els, __TopXMLNS, [encode_bookmark_conference(Conference, __TopXMLNS) | _acc]). 'encode_bookmarks_storage_$url'([], __TopXMLNS, _acc) -> _acc; 'encode_bookmarks_storage_$url'([Url | _els], __TopXMLNS, _acc) -> 'encode_bookmarks_storage_$url'(_els, __TopXMLNS, [encode_bookmark_url(Url, __TopXMLNS) | _acc]). decode_bookmark_url(__TopXMLNS, __IgnoreEls, {xmlel, <<"url">>, _attrs, _els}) -> {Name, Url} = decode_bookmark_url_attrs(__TopXMLNS, _attrs, undefined, undefined), {bookmark_url, Name, Url}. decode_bookmark_url_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name, Url) -> decode_bookmark_url_attrs(__TopXMLNS, _attrs, _val, Url); decode_bookmark_url_attrs(__TopXMLNS, [{<<"url">>, _val} | _attrs], Name, _Url) -> decode_bookmark_url_attrs(__TopXMLNS, _attrs, Name, _val); decode_bookmark_url_attrs(__TopXMLNS, [_ | _attrs], Name, Url) -> decode_bookmark_url_attrs(__TopXMLNS, _attrs, Name, Url); decode_bookmark_url_attrs(__TopXMLNS, [], Name, Url) -> {decode_bookmark_url_attr_name(__TopXMLNS, Name), decode_bookmark_url_attr_url(__TopXMLNS, Url)}. encode_bookmark_url({bookmark_url, Name, Url}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"storage:bookmarks">>, [], __TopXMLNS), _els = [], _attrs = encode_bookmark_url_attr_url(Url, encode_bookmark_url_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))), {xmlel, <<"url">>, _attrs, _els}. decode_bookmark_url_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"url">>, __TopXMLNS}}); decode_bookmark_url_attr_name(__TopXMLNS, _val) -> _val. encode_bookmark_url_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_bookmark_url_attr_url(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"url">>, <<"url">>, __TopXMLNS}}); decode_bookmark_url_attr_url(__TopXMLNS, _val) -> _val. encode_bookmark_url_attr_url(_val, _acc) -> [{<<"url">>, _val} | _acc]. decode_bookmark_conference(__TopXMLNS, __IgnoreEls, {xmlel, <<"conference">>, _attrs, _els}) -> {Password, Nick} = decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined), {Name, Jid, Autojoin} = decode_bookmark_conference_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {bookmark_conference, Name, Jid, Autojoin, Nick, Password}. decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, [], Password, Nick) -> {Password, Nick}; decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"nick">>, _attrs, _} = _el | _els], Password, Nick) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"storage:bookmarks">> -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_conference_nick(__TopXMLNS, __IgnoreEls, _el)); <<"storage:bookmarks">> -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, Password, decode_conference_nick(<<"storage:bookmarks">>, __IgnoreEls, _el)); _ -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, Password, Nick) end; decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"password">>, _attrs, _} = _el | _els], Password, Nick) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"storage:bookmarks">> -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, decode_conference_password(__TopXMLNS, __IgnoreEls, _el), Nick); <<"storage:bookmarks">> -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, decode_conference_password(<<"storage:bookmarks">>, __IgnoreEls, _el), Nick); _ -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, Password, Nick) end; decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, [_ | _els], Password, Nick) -> decode_bookmark_conference_els(__TopXMLNS, __IgnoreEls, _els, Password, Nick). decode_bookmark_conference_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name, Jid, Autojoin) -> decode_bookmark_conference_attrs(__TopXMLNS, _attrs, _val, Jid, Autojoin); decode_bookmark_conference_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], Name, _Jid, Autojoin) -> decode_bookmark_conference_attrs(__TopXMLNS, _attrs, Name, _val, Autojoin); decode_bookmark_conference_attrs(__TopXMLNS, [{<<"autojoin">>, _val} | _attrs], Name, Jid, _Autojoin) -> decode_bookmark_conference_attrs(__TopXMLNS, _attrs, Name, Jid, _val); decode_bookmark_conference_attrs(__TopXMLNS, [_ | _attrs], Name, Jid, Autojoin) -> decode_bookmark_conference_attrs(__TopXMLNS, _attrs, Name, Jid, Autojoin); decode_bookmark_conference_attrs(__TopXMLNS, [], Name, Jid, Autojoin) -> {decode_bookmark_conference_attr_name(__TopXMLNS, Name), decode_bookmark_conference_attr_jid(__TopXMLNS, Jid), decode_bookmark_conference_attr_autojoin(__TopXMLNS, Autojoin)}. encode_bookmark_conference({bookmark_conference, Name, Jid, Autojoin, Nick, Password}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"storage:bookmarks">>, [], __TopXMLNS), _els = lists:reverse('encode_bookmark_conference_$password'(Password, __NewTopXMLNS, 'encode_bookmark_conference_$nick'(Nick, __NewTopXMLNS, []))), _attrs = encode_bookmark_conference_attr_autojoin(Autojoin, encode_bookmark_conference_attr_jid(Jid, encode_bookmark_conference_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"conference">>, _attrs, _els}. 'encode_bookmark_conference_$password'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_bookmark_conference_$password'(Password, __TopXMLNS, _acc) -> [encode_conference_password(Password, __TopXMLNS) | _acc]. 'encode_bookmark_conference_$nick'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_bookmark_conference_$nick'(Nick, __TopXMLNS, _acc) -> [encode_conference_nick(Nick, __TopXMLNS) | _acc]. decode_bookmark_conference_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"conference">>, __TopXMLNS}}); decode_bookmark_conference_attr_name(__TopXMLNS, _val) -> _val. encode_bookmark_conference_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_bookmark_conference_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"conference">>, __TopXMLNS}}); decode_bookmark_conference_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"conference">>, __TopXMLNS}}); _res -> _res end. encode_bookmark_conference_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_bookmark_conference_attr_autojoin(__TopXMLNS, undefined) -> false; decode_bookmark_conference_attr_autojoin(__TopXMLNS, _val) -> case catch dec_bool(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"autojoin">>, <<"conference">>, __TopXMLNS}}); _res -> _res end. encode_bookmark_conference_attr_autojoin(false, _acc) -> _acc; encode_bookmark_conference_attr_autojoin(_val, _acc) -> [{<<"autojoin">>, enc_bool(_val)} | _acc]. decode_conference_password(__TopXMLNS, __IgnoreEls, {xmlel, <<"password">>, _attrs, _els}) -> Cdata = decode_conference_password_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_conference_password_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_conference_password_cdata(__TopXMLNS, Cdata); decode_conference_password_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_conference_password_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_conference_password_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_conference_password_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_conference_password(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"storage:bookmarks">>, [], __TopXMLNS), _els = encode_conference_password_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"password">>, _attrs, _els}. decode_conference_password_cdata(__TopXMLNS, <<>>) -> <<>>; decode_conference_password_cdata(__TopXMLNS, _val) -> _val. encode_conference_password_cdata(<<>>, _acc) -> _acc; encode_conference_password_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_conference_nick(__TopXMLNS, __IgnoreEls, {xmlel, <<"nick">>, _attrs, _els}) -> Cdata = decode_conference_nick_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_conference_nick_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_conference_nick_cdata(__TopXMLNS, Cdata); decode_conference_nick_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_conference_nick_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_conference_nick_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_conference_nick_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_conference_nick(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"storage:bookmarks">>, [], __TopXMLNS), _els = encode_conference_nick_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"nick">>, _attrs, _els}. decode_conference_nick_cdata(__TopXMLNS, <<>>) -> <<>>; decode_conference_nick_cdata(__TopXMLNS, _val) -> _val. encode_conference_nick_cdata(<<>>, _acc) -> _acc; encode_conference_nick_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_private(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> __Xmls = decode_private_els(__TopXMLNS, __IgnoreEls, _els, []), {private, __Xmls}. decode_private_els(__TopXMLNS, __IgnoreEls, [], __Xmls) -> lists:reverse(__Xmls); decode_private_els(__TopXMLNS, __IgnoreEls, [{xmlel, _, _, _} = _el | _els], __Xmls) -> decode_private_els(__TopXMLNS, __IgnoreEls, _els, [_el | __Xmls]); decode_private_els(__TopXMLNS, __IgnoreEls, [_ | _els], __Xmls) -> decode_private_els(__TopXMLNS, __IgnoreEls, _els, __Xmls). encode_private({private, __Xmls}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:private">>, [], __TopXMLNS), _els = __Xmls, _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. decode_disco_items(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Items, Rsm} = decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, [], undefined), Node = decode_disco_items_attrs(__TopXMLNS, _attrs, undefined), {disco_items, Node, Items, Rsm}. decode_disco_items_els(__TopXMLNS, __IgnoreEls, [], Items, Rsm) -> {lists:reverse(Items), Rsm}; decode_disco_items_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/disco#items">> -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, [decode_disco_item(__TopXMLNS, __IgnoreEls, _el) | Items], Rsm); <<"http://jabber.org/protocol/disco#items">> -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, [decode_disco_item(<<"http://jabber.org/protocol/disco#items">>, __IgnoreEls, _el) | Items], Rsm); _ -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Rsm) end; decode_disco_items_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"set">>, _attrs, _} = _el | _els], Items, Rsm) -> case get_attr(<<"xmlns">>, _attrs) of <<"http://jabber.org/protocol/rsm">> -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, Items, decode_rsm_set(<<"http://jabber.org/protocol/rsm">>, __IgnoreEls, _el)); _ -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Rsm) end; decode_disco_items_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items, Rsm) -> decode_disco_items_els(__TopXMLNS, __IgnoreEls, _els, Items, Rsm). decode_disco_items_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_disco_items_attrs(__TopXMLNS, _attrs, _val); decode_disco_items_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_disco_items_attrs(__TopXMLNS, _attrs, Node); decode_disco_items_attrs(__TopXMLNS, [], Node) -> decode_disco_items_attr_node(__TopXMLNS, Node). encode_disco_items({disco_items, Node, Items, Rsm}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/disco#items">>, [], __TopXMLNS), _els = lists:reverse('encode_disco_items_$items'(Items, __NewTopXMLNS, 'encode_disco_items_$rsm'(Rsm, __NewTopXMLNS, []))), _attrs = encode_disco_items_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_disco_items_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_disco_items_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_disco_items_$items'(_els, __TopXMLNS, [encode_disco_item(Items, __TopXMLNS) | _acc]). 'encode_disco_items_$rsm'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_disco_items_$rsm'(Rsm, __TopXMLNS, _acc) -> [encode_rsm_set(Rsm, __TopXMLNS) | _acc]. decode_disco_items_attr_node(__TopXMLNS, undefined) -> <<>>; decode_disco_items_attr_node(__TopXMLNS, _val) -> _val. encode_disco_items_attr_node(<<>>, _acc) -> _acc; encode_disco_items_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_disco_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Jid, Name, Node} = decode_disco_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined), {disco_item, Jid, Name, Node}. decode_disco_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Name, Node) -> decode_disco_item_attrs(__TopXMLNS, _attrs, _val, Name, Node); decode_disco_item_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], Jid, _Name, Node) -> decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, _val, Node); decode_disco_item_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], Jid, Name, _Node) -> decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, Name, _val); decode_disco_item_attrs(__TopXMLNS, [_ | _attrs], Jid, Name, Node) -> decode_disco_item_attrs(__TopXMLNS, _attrs, Jid, Name, Node); decode_disco_item_attrs(__TopXMLNS, [], Jid, Name, Node) -> {decode_disco_item_attr_jid(__TopXMLNS, Jid), decode_disco_item_attr_name(__TopXMLNS, Name), decode_disco_item_attr_node(__TopXMLNS, Node)}. encode_disco_item({disco_item, Jid, Name, Node}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/disco#items">>, [], __TopXMLNS), _els = [], _attrs = encode_disco_item_attr_node(Node, encode_disco_item_attr_name(Name, encode_disco_item_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)))), {xmlel, <<"item">>, _attrs, _els}. decode_disco_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); decode_disco_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_disco_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_disco_item_attr_name(__TopXMLNS, undefined) -> <<>>; decode_disco_item_attr_name(__TopXMLNS, _val) -> _val. encode_disco_item_attr_name(<<>>, _acc) -> _acc; encode_disco_item_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_disco_item_attr_node(__TopXMLNS, undefined) -> <<>>; decode_disco_item_attr_node(__TopXMLNS, _val) -> _val. encode_disco_item_attr_node(<<>>, _acc) -> _acc; encode_disco_item_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_disco_info(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Xdata, Features, Identities} = decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, [], [], []), Node = decode_disco_info_attrs(__TopXMLNS, _attrs, undefined), {disco_info, Node, Identities, Features, Xdata}. decode_disco_info_els(__TopXMLNS, __IgnoreEls, [], Xdata, Features, Identities) -> {lists:reverse(Xdata), lists:reverse(Features), lists:reverse(Identities)}; decode_disco_info_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"identity">>, _attrs, _} = _el | _els], Xdata, Features, Identities) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/disco#info">> -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, [decode_disco_identity(__TopXMLNS, __IgnoreEls, _el) | Identities]); <<"http://jabber.org/protocol/disco#info">> -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, [decode_disco_identity(<<"http://jabber.org/protocol/disco#info">>, __IgnoreEls, _el) | Identities]); _ -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, Identities) end; decode_disco_info_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"feature">>, _attrs, _} = _el | _els], Xdata, Features, Identities) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"http://jabber.org/protocol/disco#info">> -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_disco_feature(__TopXMLNS, __IgnoreEls, _el) | Features], Identities); <<"http://jabber.org/protocol/disco#info">> -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, [decode_disco_feature(<<"http://jabber.org/protocol/disco#info">>, __IgnoreEls, _el) | Features], Identities); _ -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, Identities) end; decode_disco_info_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"x">>, _attrs, _} = _el | _els], Xdata, Features, Identities) -> case get_attr(<<"xmlns">>, _attrs) of <<"jabber:x:data">> -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, [decode_xdata(<<"jabber:x:data">>, __IgnoreEls, _el) | Xdata], Features, Identities); _ -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, Identities) end; decode_disco_info_els(__TopXMLNS, __IgnoreEls, [_ | _els], Xdata, Features, Identities) -> decode_disco_info_els(__TopXMLNS, __IgnoreEls, _els, Xdata, Features, Identities). decode_disco_info_attrs(__TopXMLNS, [{<<"node">>, _val} | _attrs], _Node) -> decode_disco_info_attrs(__TopXMLNS, _attrs, _val); decode_disco_info_attrs(__TopXMLNS, [_ | _attrs], Node) -> decode_disco_info_attrs(__TopXMLNS, _attrs, Node); decode_disco_info_attrs(__TopXMLNS, [], Node) -> decode_disco_info_attr_node(__TopXMLNS, Node). encode_disco_info({disco_info, Node, Identities, Features, Xdata}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/disco#info">>, [], __TopXMLNS), _els = lists:reverse('encode_disco_info_$xdata'(Xdata, __NewTopXMLNS, 'encode_disco_info_$features'(Features, __NewTopXMLNS, 'encode_disco_info_$identities'(Identities, __NewTopXMLNS, [])))), _attrs = encode_disco_info_attr_node(Node, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_disco_info_$xdata'([], __TopXMLNS, _acc) -> _acc; 'encode_disco_info_$xdata'([Xdata | _els], __TopXMLNS, _acc) -> 'encode_disco_info_$xdata'(_els, __TopXMLNS, [encode_xdata(Xdata, __TopXMLNS) | _acc]). 'encode_disco_info_$features'([], __TopXMLNS, _acc) -> _acc; 'encode_disco_info_$features'([Features | _els], __TopXMLNS, _acc) -> 'encode_disco_info_$features'(_els, __TopXMLNS, [encode_disco_feature(Features, __TopXMLNS) | _acc]). 'encode_disco_info_$identities'([], __TopXMLNS, _acc) -> _acc; 'encode_disco_info_$identities'([Identities | _els], __TopXMLNS, _acc) -> 'encode_disco_info_$identities'(_els, __TopXMLNS, [encode_disco_identity(Identities, __TopXMLNS) | _acc]). decode_disco_info_attr_node(__TopXMLNS, undefined) -> <<>>; decode_disco_info_attr_node(__TopXMLNS, _val) -> _val. encode_disco_info_attr_node(<<>>, _acc) -> _acc; encode_disco_info_attr_node(_val, _acc) -> [{<<"node">>, _val} | _acc]. decode_disco_feature(__TopXMLNS, __IgnoreEls, {xmlel, <<"feature">>, _attrs, _els}) -> Var = decode_disco_feature_attrs(__TopXMLNS, _attrs, undefined), Var. decode_disco_feature_attrs(__TopXMLNS, [{<<"var">>, _val} | _attrs], _Var) -> decode_disco_feature_attrs(__TopXMLNS, _attrs, _val); decode_disco_feature_attrs(__TopXMLNS, [_ | _attrs], Var) -> decode_disco_feature_attrs(__TopXMLNS, _attrs, Var); decode_disco_feature_attrs(__TopXMLNS, [], Var) -> decode_disco_feature_attr_var(__TopXMLNS, Var). encode_disco_feature(Var, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/disco#info">>, [], __TopXMLNS), _els = [], _attrs = encode_disco_feature_attr_var(Var, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"feature">>, _attrs, _els}. decode_disco_feature_attr_var(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"var">>, <<"feature">>, __TopXMLNS}}); decode_disco_feature_attr_var(__TopXMLNS, _val) -> _val. encode_disco_feature_attr_var(_val, _acc) -> [{<<"var">>, _val} | _acc]. decode_disco_identity(__TopXMLNS, __IgnoreEls, {xmlel, <<"identity">>, _attrs, _els}) -> {Category, Type, Lang, Name} = decode_disco_identity_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {identity, Category, Type, Lang, Name}. decode_disco_identity_attrs(__TopXMLNS, [{<<"category">>, _val} | _attrs], _Category, Type, Lang, Name) -> decode_disco_identity_attrs(__TopXMLNS, _attrs, _val, Type, Lang, Name); decode_disco_identity_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Category, _Type, Lang, Name) -> decode_disco_identity_attrs(__TopXMLNS, _attrs, Category, _val, Lang, Name); decode_disco_identity_attrs(__TopXMLNS, [{<<"xml:lang">>, _val} | _attrs], Category, Type, _Lang, Name) -> decode_disco_identity_attrs(__TopXMLNS, _attrs, Category, Type, _val, Name); decode_disco_identity_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], Category, Type, Lang, _Name) -> decode_disco_identity_attrs(__TopXMLNS, _attrs, Category, Type, Lang, _val); decode_disco_identity_attrs(__TopXMLNS, [_ | _attrs], Category, Type, Lang, Name) -> decode_disco_identity_attrs(__TopXMLNS, _attrs, Category, Type, Lang, Name); decode_disco_identity_attrs(__TopXMLNS, [], Category, Type, Lang, Name) -> {decode_disco_identity_attr_category(__TopXMLNS, Category), decode_disco_identity_attr_type(__TopXMLNS, Type), 'decode_disco_identity_attr_xml:lang'(__TopXMLNS, Lang), decode_disco_identity_attr_name(__TopXMLNS, Name)}. encode_disco_identity({identity, Category, Type, Lang, Name}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"http://jabber.org/protocol/disco#info">>, [], __TopXMLNS), _els = [], _attrs = encode_disco_identity_attr_name(Name, 'encode_disco_identity_attr_xml:lang'(Lang, encode_disco_identity_attr_type(Type, encode_disco_identity_attr_category(Category, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"identity">>, _attrs, _els}. decode_disco_identity_attr_category(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"category">>, <<"identity">>, __TopXMLNS}}); decode_disco_identity_attr_category(__TopXMLNS, _val) -> _val. encode_disco_identity_attr_category(_val, _acc) -> [{<<"category">>, _val} | _acc]. decode_disco_identity_attr_type(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"type">>, <<"identity">>, __TopXMLNS}}); decode_disco_identity_attr_type(__TopXMLNS, _val) -> _val. encode_disco_identity_attr_type(_val, _acc) -> [{<<"type">>, _val} | _acc]. 'decode_disco_identity_attr_xml:lang'(__TopXMLNS, undefined) -> <<>>; 'decode_disco_identity_attr_xml:lang'(__TopXMLNS, _val) -> _val. 'encode_disco_identity_attr_xml:lang'(<<>>, _acc) -> _acc; 'encode_disco_identity_attr_xml:lang'(_val, _acc) -> [{<<"xml:lang">>, _val} | _acc]. decode_disco_identity_attr_name(__TopXMLNS, undefined) -> <<>>; decode_disco_identity_attr_name(__TopXMLNS, _val) -> _val. encode_disco_identity_attr_name(<<>>, _acc) -> _acc; encode_disco_identity_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_block_list(__TopXMLNS, __IgnoreEls, {xmlel, <<"blocklist">>, _attrs, _els}) -> Items = decode_block_list_els(__TopXMLNS, __IgnoreEls, _els, []), {block_list, Items}. decode_block_list_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_block_list_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:blocking">> -> decode_block_list_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"urn:xmpp:blocking">> -> decode_block_list_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(<<"urn:xmpp:blocking">>, __IgnoreEls, _el) | Items]); _ -> decode_block_list_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_block_list_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_block_list_els(__TopXMLNS, __IgnoreEls, _els, Items). encode_block_list({block_list, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:blocking">>, [], __TopXMLNS), _els = lists:reverse('encode_block_list_$items'(Items, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"blocklist">>, _attrs, _els}. 'encode_block_list_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_block_list_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_block_list_$items'(_els, __TopXMLNS, [encode_block_item(Items, __TopXMLNS) | _acc]). decode_unblock(__TopXMLNS, __IgnoreEls, {xmlel, <<"unblock">>, _attrs, _els}) -> Items = decode_unblock_els(__TopXMLNS, __IgnoreEls, _els, []), {unblock, Items}. decode_unblock_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_unblock_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:blocking">> -> decode_unblock_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"urn:xmpp:blocking">> -> decode_unblock_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(<<"urn:xmpp:blocking">>, __IgnoreEls, _el) | Items]); _ -> decode_unblock_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_unblock_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_unblock_els(__TopXMLNS, __IgnoreEls, _els, Items). encode_unblock({unblock, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:blocking">>, [], __TopXMLNS), _els = lists:reverse('encode_unblock_$items'(Items, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"unblock">>, _attrs, _els}. 'encode_unblock_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_unblock_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_unblock_$items'(_els, __TopXMLNS, [encode_block_item(Items, __TopXMLNS) | _acc]). decode_block(__TopXMLNS, __IgnoreEls, {xmlel, <<"block">>, _attrs, _els}) -> Items = decode_block_els(__TopXMLNS, __IgnoreEls, _els, []), {block, Items}. decode_block_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_block_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"urn:xmpp:blocking">> -> decode_block_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"urn:xmpp:blocking">> -> decode_block_els(__TopXMLNS, __IgnoreEls, _els, [decode_block_item(<<"urn:xmpp:blocking">>, __IgnoreEls, _el) | Items]); _ -> decode_block_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_block_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_block_els(__TopXMLNS, __IgnoreEls, _els, Items). encode_block({block, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:blocking">>, [], __TopXMLNS), _els = lists:reverse('encode_block_$items'(Items, __NewTopXMLNS, [])), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"block">>, _attrs, _els}. 'encode_block_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_block_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_block_$items'(_els, __TopXMLNS, [encode_block_item(Items, __TopXMLNS) | _acc]). decode_block_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> Jid = decode_block_item_attrs(__TopXMLNS, _attrs, undefined), Jid. decode_block_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid) -> decode_block_item_attrs(__TopXMLNS, _attrs, _val); decode_block_item_attrs(__TopXMLNS, [_ | _attrs], Jid) -> decode_block_item_attrs(__TopXMLNS, _attrs, Jid); decode_block_item_attrs(__TopXMLNS, [], Jid) -> decode_block_item_attr_jid(__TopXMLNS, Jid). encode_block_item(Jid, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:blocking">>, [], __TopXMLNS), _els = [], _attrs = encode_block_item_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"item">>, _attrs, _els}. decode_block_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); decode_block_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_block_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_privacy(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Lists, Default, Active} = decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, [], undefined, undefined), {privacy_query, Lists, Default, Active}. decode_privacy_els(__TopXMLNS, __IgnoreEls, [], Lists, Default, Active) -> {lists:reverse(Lists), Default, Active}; decode_privacy_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"list">>, _attrs, _} = _el | _els], Lists, Default, Active) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, [decode_privacy_list(__TopXMLNS, __IgnoreEls, _el) | Lists], Default, Active); <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, [decode_privacy_list(<<"jabber:iq:privacy">>, __IgnoreEls, _el) | Lists], Default, Active); _ -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, Active) end; decode_privacy_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"default">>, _attrs, _} = _el | _els], Lists, Default, Active) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, decode_privacy_default_list(__TopXMLNS, __IgnoreEls, _el), Active); <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, decode_privacy_default_list(<<"jabber:iq:privacy">>, __IgnoreEls, _el), Active); _ -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, Active) end; decode_privacy_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"active">>, _attrs, _} = _el | _els], Lists, Default, Active) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, decode_privacy_active_list(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:privacy">> -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, decode_privacy_active_list(<<"jabber:iq:privacy">>, __IgnoreEls, _el)); _ -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, Active) end; decode_privacy_els(__TopXMLNS, __IgnoreEls, [_ | _els], Lists, Default, Active) -> decode_privacy_els(__TopXMLNS, __IgnoreEls, _els, Lists, Default, Active). encode_privacy({privacy_query, Lists, Default, Active}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = lists:reverse('encode_privacy_$lists'(Lists, __NewTopXMLNS, 'encode_privacy_$default'(Default, __NewTopXMLNS, 'encode_privacy_$active'(Active, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_privacy_$lists'([], __TopXMLNS, _acc) -> _acc; 'encode_privacy_$lists'([Lists | _els], __TopXMLNS, _acc) -> 'encode_privacy_$lists'(_els, __TopXMLNS, [encode_privacy_list(Lists, __TopXMLNS) | _acc]). 'encode_privacy_$default'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_privacy_$default'(Default, __TopXMLNS, _acc) -> [encode_privacy_default_list(Default, __TopXMLNS) | _acc]. 'encode_privacy_$active'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_privacy_$active'(Active, __TopXMLNS, _acc) -> [encode_privacy_active_list(Active, __TopXMLNS) | _acc]. decode_privacy_active_list(__TopXMLNS, __IgnoreEls, {xmlel, <<"active">>, _attrs, _els}) -> Name = decode_privacy_active_list_attrs(__TopXMLNS, _attrs, undefined), Name. decode_privacy_active_list_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name) -> decode_privacy_active_list_attrs(__TopXMLNS, _attrs, _val); decode_privacy_active_list_attrs(__TopXMLNS, [_ | _attrs], Name) -> decode_privacy_active_list_attrs(__TopXMLNS, _attrs, Name); decode_privacy_active_list_attrs(__TopXMLNS, [], Name) -> decode_privacy_active_list_attr_name(__TopXMLNS, Name). encode_privacy_active_list(Name, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = encode_privacy_active_list_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"active">>, _attrs, _els}. decode_privacy_active_list_attr_name(__TopXMLNS, undefined) -> none; decode_privacy_active_list_attr_name(__TopXMLNS, _val) -> _val. encode_privacy_active_list_attr_name(none, _acc) -> _acc; encode_privacy_active_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_privacy_default_list(__TopXMLNS, __IgnoreEls, {xmlel, <<"default">>, _attrs, _els}) -> Name = decode_privacy_default_list_attrs(__TopXMLNS, _attrs, undefined), Name. decode_privacy_default_list_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name) -> decode_privacy_default_list_attrs(__TopXMLNS, _attrs, _val); decode_privacy_default_list_attrs(__TopXMLNS, [_ | _attrs], Name) -> decode_privacy_default_list_attrs(__TopXMLNS, _attrs, Name); decode_privacy_default_list_attrs(__TopXMLNS, [], Name) -> decode_privacy_default_list_attr_name(__TopXMLNS, Name). encode_privacy_default_list(Name, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = encode_privacy_default_list_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"default">>, _attrs, _els}. decode_privacy_default_list_attr_name(__TopXMLNS, undefined) -> none; decode_privacy_default_list_attr_name(__TopXMLNS, _val) -> _val. encode_privacy_default_list_attr_name(none, _acc) -> _acc; encode_privacy_default_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_privacy_list(__TopXMLNS, __IgnoreEls, {xmlel, <<"list">>, _attrs, _els}) -> Items = decode_privacy_list_els(__TopXMLNS, __IgnoreEls, _els, []), Name = decode_privacy_list_attrs(__TopXMLNS, _attrs, undefined), {privacy_list, Name, Items}. decode_privacy_list_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_privacy_list_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_list_els(__TopXMLNS, __IgnoreEls, _els, [decode_privacy_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"jabber:iq:privacy">> -> decode_privacy_list_els(__TopXMLNS, __IgnoreEls, _els, [decode_privacy_item(<<"jabber:iq:privacy">>, __IgnoreEls, _el) | Items]); _ -> decode_privacy_list_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_privacy_list_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_privacy_list_els(__TopXMLNS, __IgnoreEls, _els, Items). decode_privacy_list_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], _Name) -> decode_privacy_list_attrs(__TopXMLNS, _attrs, _val); decode_privacy_list_attrs(__TopXMLNS, [_ | _attrs], Name) -> decode_privacy_list_attrs(__TopXMLNS, _attrs, Name); decode_privacy_list_attrs(__TopXMLNS, [], Name) -> decode_privacy_list_attr_name(__TopXMLNS, Name). encode_privacy_list({privacy_list, Name, Items}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = lists:reverse('encode_privacy_list_$items'(Items, __NewTopXMLNS, [])), _attrs = encode_privacy_list_attr_name(Name, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"list">>, _attrs, _els}. 'encode_privacy_list_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_privacy_list_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_privacy_list_$items'(_els, __TopXMLNS, [encode_privacy_item(Items, __TopXMLNS) | _acc]). decode_privacy_list_attr_name(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"name">>, <<"list">>, __TopXMLNS}}); decode_privacy_list_attr_name(__TopXMLNS, _val) -> _val. encode_privacy_list_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_privacy_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> {Iq, Presence_out, Message, Presence_in} = decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, false, false, false, false), {Action, Order, Type, Value} = decode_privacy_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {privacy_item, Order, Action, Type, Value, Message, Iq, Presence_in, Presence_out}. decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [], Iq, Presence_out, Message, Presence_in) -> {Iq, Presence_out, Message, Presence_in}; decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"message">>, _attrs, _} = _el | _els], Iq, Presence_out, Message, Presence_in) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, decode_privacy_message(__TopXMLNS, __IgnoreEls, _el), Presence_in); <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, decode_privacy_message(<<"jabber:iq:privacy">>, __IgnoreEls, _el), Presence_in); _ -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, Presence_in) end; decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"iq">>, _attrs, _} = _el | _els], Iq, Presence_out, Message, Presence_in) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, decode_privacy_iq(__TopXMLNS, __IgnoreEls, _el), Presence_out, Message, Presence_in); <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, decode_privacy_iq(<<"jabber:iq:privacy">>, __IgnoreEls, _el), Presence_out, Message, Presence_in); _ -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, Presence_in) end; decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"presence-in">>, _attrs, _} = _el | _els], Iq, Presence_out, Message, Presence_in) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, decode_privacy_presence_in(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, decode_privacy_presence_in(<<"jabber:iq:privacy">>, __IgnoreEls, _el)); _ -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, Presence_in) end; decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"presence-out">>, _attrs, _} = _el | _els], Iq, Presence_out, Message, Presence_in) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, decode_privacy_presence_out(__TopXMLNS, __IgnoreEls, _el), Message, Presence_in); <<"jabber:iq:privacy">> -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, decode_privacy_presence_out(<<"jabber:iq:privacy">>, __IgnoreEls, _el), Message, Presence_in); _ -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, Presence_in) end; decode_privacy_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Iq, Presence_out, Message, Presence_in) -> decode_privacy_item_els(__TopXMLNS, __IgnoreEls, _els, Iq, Presence_out, Message, Presence_in). decode_privacy_item_attrs(__TopXMLNS, [{<<"action">>, _val} | _attrs], _Action, Order, Type, Value) -> decode_privacy_item_attrs(__TopXMLNS, _attrs, _val, Order, Type, Value); decode_privacy_item_attrs(__TopXMLNS, [{<<"order">>, _val} | _attrs], Action, _Order, Type, Value) -> decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, _val, Type, Value); decode_privacy_item_attrs(__TopXMLNS, [{<<"type">>, _val} | _attrs], Action, Order, _Type, Value) -> decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, Order, _val, Value); decode_privacy_item_attrs(__TopXMLNS, [{<<"value">>, _val} | _attrs], Action, Order, Type, _Value) -> decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, Order, Type, _val); decode_privacy_item_attrs(__TopXMLNS, [_ | _attrs], Action, Order, Type, Value) -> decode_privacy_item_attrs(__TopXMLNS, _attrs, Action, Order, Type, Value); decode_privacy_item_attrs(__TopXMLNS, [], Action, Order, Type, Value) -> {decode_privacy_item_attr_action(__TopXMLNS, Action), decode_privacy_item_attr_order(__TopXMLNS, Order), decode_privacy_item_attr_type(__TopXMLNS, Type), decode_privacy_item_attr_value(__TopXMLNS, Value)}. encode_privacy_item({privacy_item, Order, Action, Type, Value, Message, Iq, Presence_in, Presence_out}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = lists:reverse('encode_privacy_item_$iq'(Iq, __NewTopXMLNS, 'encode_privacy_item_$presence_out'(Presence_out, __NewTopXMLNS, 'encode_privacy_item_$message'(Message, __NewTopXMLNS, 'encode_privacy_item_$presence_in'(Presence_in, __NewTopXMLNS, []))))), _attrs = encode_privacy_item_attr_value(Value, encode_privacy_item_attr_type(Type, encode_privacy_item_attr_order(Order, encode_privacy_item_attr_action(Action, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"item">>, _attrs, _els}. 'encode_privacy_item_$iq'(false, __TopXMLNS, _acc) -> _acc; 'encode_privacy_item_$iq'(Iq, __TopXMLNS, _acc) -> [encode_privacy_iq(Iq, __TopXMLNS) | _acc]. 'encode_privacy_item_$presence_out'(false, __TopXMLNS, _acc) -> _acc; 'encode_privacy_item_$presence_out'(Presence_out, __TopXMLNS, _acc) -> [encode_privacy_presence_out(Presence_out, __TopXMLNS) | _acc]. 'encode_privacy_item_$message'(false, __TopXMLNS, _acc) -> _acc; 'encode_privacy_item_$message'(Message, __TopXMLNS, _acc) -> [encode_privacy_message(Message, __TopXMLNS) | _acc]. 'encode_privacy_item_$presence_in'(false, __TopXMLNS, _acc) -> _acc; 'encode_privacy_item_$presence_in'(Presence_in, __TopXMLNS, _acc) -> [encode_privacy_presence_in(Presence_in, __TopXMLNS) | _acc]. decode_privacy_item_attr_action(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"action">>, <<"item">>, __TopXMLNS}}); decode_privacy_item_attr_action(__TopXMLNS, _val) -> case catch dec_enum(_val, [allow, deny]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"action">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_privacy_item_attr_action(_val, _acc) -> [{<<"action">>, enc_enum(_val)} | _acc]. decode_privacy_item_attr_order(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"order">>, <<"item">>, __TopXMLNS}}); decode_privacy_item_attr_order(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"order">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_privacy_item_attr_order(_val, _acc) -> [{<<"order">>, enc_int(_val)} | _acc]. decode_privacy_item_attr_type(__TopXMLNS, undefined) -> undefined; decode_privacy_item_attr_type(__TopXMLNS, _val) -> case catch dec_enum(_val, [group, jid, subscription]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"type">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_privacy_item_attr_type(undefined, _acc) -> _acc; encode_privacy_item_attr_type(_val, _acc) -> [{<<"type">>, enc_enum(_val)} | _acc]. decode_privacy_item_attr_value(__TopXMLNS, undefined) -> <<>>; decode_privacy_item_attr_value(__TopXMLNS, _val) -> _val. encode_privacy_item_attr_value(<<>>, _acc) -> _acc; encode_privacy_item_attr_value(_val, _acc) -> [{<<"value">>, _val} | _acc]. decode_privacy_presence_out(__TopXMLNS, __IgnoreEls, {xmlel, <<"presence-out">>, _attrs, _els}) -> true. encode_privacy_presence_out(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"presence-out">>, _attrs, _els}. decode_privacy_presence_in(__TopXMLNS, __IgnoreEls, {xmlel, <<"presence-in">>, _attrs, _els}) -> true. encode_privacy_presence_in(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"presence-in">>, _attrs, _els}. decode_privacy_iq(__TopXMLNS, __IgnoreEls, {xmlel, <<"iq">>, _attrs, _els}) -> true. encode_privacy_iq(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"iq">>, _attrs, _els}. decode_privacy_message(__TopXMLNS, __IgnoreEls, {xmlel, <<"message">>, _attrs, _els}) -> true. encode_privacy_message(true, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:privacy">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"message">>, _attrs, _els}. decode_rosterver_feature(__TopXMLNS, __IgnoreEls, {xmlel, <<"ver">>, _attrs, _els}) -> {rosterver_feature}. encode_rosterver_feature({rosterver_feature}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"urn:xmpp:features:rosterver">>, [], __TopXMLNS), _els = [], _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"ver">>, _attrs, _els}. decode_roster_query(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> Items = decode_roster_query_els(__TopXMLNS, __IgnoreEls, _els, []), Ver = decode_roster_query_attrs(__TopXMLNS, _attrs, undefined), {roster_query, Items, Ver}. decode_roster_query_els(__TopXMLNS, __IgnoreEls, [], Items) -> lists:reverse(Items); decode_roster_query_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"item">>, _attrs, _} = _el | _els], Items) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:roster">> -> decode_roster_query_els(__TopXMLNS, __IgnoreEls, _els, [decode_roster_item(__TopXMLNS, __IgnoreEls, _el) | Items]); <<"jabber:iq:roster">> -> decode_roster_query_els(__TopXMLNS, __IgnoreEls, _els, [decode_roster_item(<<"jabber:iq:roster">>, __IgnoreEls, _el) | Items]); _ -> decode_roster_query_els(__TopXMLNS, __IgnoreEls, _els, Items) end; decode_roster_query_els(__TopXMLNS, __IgnoreEls, [_ | _els], Items) -> decode_roster_query_els(__TopXMLNS, __IgnoreEls, _els, Items). decode_roster_query_attrs(__TopXMLNS, [{<<"ver">>, _val} | _attrs], _Ver) -> decode_roster_query_attrs(__TopXMLNS, _attrs, _val); decode_roster_query_attrs(__TopXMLNS, [_ | _attrs], Ver) -> decode_roster_query_attrs(__TopXMLNS, _attrs, Ver); decode_roster_query_attrs(__TopXMLNS, [], Ver) -> decode_roster_query_attr_ver(__TopXMLNS, Ver). encode_roster_query({roster_query, Items, Ver}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:roster">>, [], __TopXMLNS), _els = lists:reverse('encode_roster_query_$items'(Items, __NewTopXMLNS, [])), _attrs = encode_roster_query_attr_ver(Ver, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. 'encode_roster_query_$items'([], __TopXMLNS, _acc) -> _acc; 'encode_roster_query_$items'([Items | _els], __TopXMLNS, _acc) -> 'encode_roster_query_$items'(_els, __TopXMLNS, [encode_roster_item(Items, __TopXMLNS) | _acc]). decode_roster_query_attr_ver(__TopXMLNS, undefined) -> undefined; decode_roster_query_attr_ver(__TopXMLNS, _val) -> _val. encode_roster_query_attr_ver(undefined, _acc) -> _acc; encode_roster_query_attr_ver(_val, _acc) -> [{<<"ver">>, _val} | _acc]. decode_roster_item(__TopXMLNS, __IgnoreEls, {xmlel, <<"item">>, _attrs, _els}) -> Groups = decode_roster_item_els(__TopXMLNS, __IgnoreEls, _els, []), {Jid, Name, Subscription, Ask} = decode_roster_item_attrs(__TopXMLNS, _attrs, undefined, undefined, undefined, undefined), {roster_item, Jid, Name, Groups, Subscription, Ask}. decode_roster_item_els(__TopXMLNS, __IgnoreEls, [], Groups) -> lists:reverse(Groups); decode_roster_item_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"group">>, _attrs, _} = _el | _els], Groups) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:roster">> -> decode_roster_item_els(__TopXMLNS, __IgnoreEls, _els, [decode_roster_group(__TopXMLNS, __IgnoreEls, _el) | Groups]); <<"jabber:iq:roster">> -> decode_roster_item_els(__TopXMLNS, __IgnoreEls, _els, [decode_roster_group(<<"jabber:iq:roster">>, __IgnoreEls, _el) | Groups]); _ -> decode_roster_item_els(__TopXMLNS, __IgnoreEls, _els, Groups) end; decode_roster_item_els(__TopXMLNS, __IgnoreEls, [_ | _els], Groups) -> decode_roster_item_els(__TopXMLNS, __IgnoreEls, _els, Groups). decode_roster_item_attrs(__TopXMLNS, [{<<"jid">>, _val} | _attrs], _Jid, Name, Subscription, Ask) -> decode_roster_item_attrs(__TopXMLNS, _attrs, _val, Name, Subscription, Ask); decode_roster_item_attrs(__TopXMLNS, [{<<"name">>, _val} | _attrs], Jid, _Name, Subscription, Ask) -> decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, _val, Subscription, Ask); decode_roster_item_attrs(__TopXMLNS, [{<<"subscription">>, _val} | _attrs], Jid, Name, _Subscription, Ask) -> decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, _val, Ask); decode_roster_item_attrs(__TopXMLNS, [{<<"ask">>, _val} | _attrs], Jid, Name, Subscription, _Ask) -> decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, Subscription, _val); decode_roster_item_attrs(__TopXMLNS, [_ | _attrs], Jid, Name, Subscription, Ask) -> decode_roster_item_attrs(__TopXMLNS, _attrs, Jid, Name, Subscription, Ask); decode_roster_item_attrs(__TopXMLNS, [], Jid, Name, Subscription, Ask) -> {decode_roster_item_attr_jid(__TopXMLNS, Jid), decode_roster_item_attr_name(__TopXMLNS, Name), decode_roster_item_attr_subscription(__TopXMLNS, Subscription), decode_roster_item_attr_ask(__TopXMLNS, Ask)}. encode_roster_item({roster_item, Jid, Name, Groups, Subscription, Ask}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:roster">>, [], __TopXMLNS), _els = lists:reverse('encode_roster_item_$groups'(Groups, __NewTopXMLNS, [])), _attrs = encode_roster_item_attr_ask(Ask, encode_roster_item_attr_subscription(Subscription, encode_roster_item_attr_name(Name, encode_roster_item_attr_jid(Jid, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS))))), {xmlel, <<"item">>, _attrs, _els}. 'encode_roster_item_$groups'([], __TopXMLNS, _acc) -> _acc; 'encode_roster_item_$groups'([Groups | _els], __TopXMLNS, _acc) -> 'encode_roster_item_$groups'(_els, __TopXMLNS, [encode_roster_group(Groups, __TopXMLNS) | _acc]). decode_roster_item_attr_jid(__TopXMLNS, undefined) -> erlang:error({xmpp_codec, {missing_attr, <<"jid">>, <<"item">>, __TopXMLNS}}); decode_roster_item_attr_jid(__TopXMLNS, _val) -> case catch dec_jid(_val) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"jid">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_roster_item_attr_jid(_val, _acc) -> [{<<"jid">>, enc_jid(_val)} | _acc]. decode_roster_item_attr_name(__TopXMLNS, undefined) -> <<>>; decode_roster_item_attr_name(__TopXMLNS, _val) -> _val. encode_roster_item_attr_name(<<>>, _acc) -> _acc; encode_roster_item_attr_name(_val, _acc) -> [{<<"name">>, _val} | _acc]. decode_roster_item_attr_subscription(__TopXMLNS, undefined) -> none; decode_roster_item_attr_subscription(__TopXMLNS, _val) -> case catch dec_enum(_val, [none, to, from, both, remove]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"subscription">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_roster_item_attr_subscription(none, _acc) -> _acc; encode_roster_item_attr_subscription(_val, _acc) -> [{<<"subscription">>, enc_enum(_val)} | _acc]. decode_roster_item_attr_ask(__TopXMLNS, undefined) -> undefined; decode_roster_item_attr_ask(__TopXMLNS, _val) -> case catch dec_enum(_val, [subscribe]) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"ask">>, <<"item">>, __TopXMLNS}}); _res -> _res end. encode_roster_item_attr_ask(undefined, _acc) -> _acc; encode_roster_item_attr_ask(_val, _acc) -> [{<<"ask">>, enc_enum(_val)} | _acc]. decode_roster_group(__TopXMLNS, __IgnoreEls, {xmlel, <<"group">>, _attrs, _els}) -> Cdata = decode_roster_group_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_roster_group_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_roster_group_cdata(__TopXMLNS, Cdata); decode_roster_group_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_roster_group_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_roster_group_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_roster_group_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_roster_group(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:roster">>, [], __TopXMLNS), _els = encode_roster_group_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"group">>, _attrs, _els}. decode_roster_group_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"group">>, __TopXMLNS}}); decode_roster_group_cdata(__TopXMLNS, _val) -> _val. encode_roster_group_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_version(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> {Ver, Os, Name} = decode_version_els(__TopXMLNS, __IgnoreEls, _els, undefined, undefined, undefined), {version, Name, Ver, Os}. decode_version_els(__TopXMLNS, __IgnoreEls, [], Ver, Os, Name) -> {Ver, Os, Name}; decode_version_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"name">>, _attrs, _} = _el | _els], Ver, Os, Name) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, decode_version_name(__TopXMLNS, __IgnoreEls, _el)); <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, decode_version_name(<<"jabber:iq:version">>, __IgnoreEls, _el)); _ -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, Name) end; decode_version_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"version">>, _attrs, _} = _el | _els], Ver, Os, Name) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, decode_version_ver(__TopXMLNS, __IgnoreEls, _el), Os, Name); <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, decode_version_ver(<<"jabber:iq:version">>, __IgnoreEls, _el), Os, Name); _ -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, Name) end; decode_version_els(__TopXMLNS, __IgnoreEls, [{xmlel, <<"os">>, _attrs, _} = _el | _els], Ver, Os, Name) -> case get_attr(<<"xmlns">>, _attrs) of <<"">> when __TopXMLNS == <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, decode_version_os(__TopXMLNS, __IgnoreEls, _el), Name); <<"jabber:iq:version">> -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, decode_version_os(<<"jabber:iq:version">>, __IgnoreEls, _el), Name); _ -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, Name) end; decode_version_els(__TopXMLNS, __IgnoreEls, [_ | _els], Ver, Os, Name) -> decode_version_els(__TopXMLNS, __IgnoreEls, _els, Ver, Os, Name). encode_version({version, Name, Ver, Os}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:version">>, [], __TopXMLNS), _els = lists:reverse('encode_version_$ver'(Ver, __NewTopXMLNS, 'encode_version_$os'(Os, __NewTopXMLNS, 'encode_version_$name'(Name, __NewTopXMLNS, [])))), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"query">>, _attrs, _els}. 'encode_version_$ver'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_version_$ver'(Ver, __TopXMLNS, _acc) -> [encode_version_ver(Ver, __TopXMLNS) | _acc]. 'encode_version_$os'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_version_$os'(Os, __TopXMLNS, _acc) -> [encode_version_os(Os, __TopXMLNS) | _acc]. 'encode_version_$name'(undefined, __TopXMLNS, _acc) -> _acc; 'encode_version_$name'(Name, __TopXMLNS, _acc) -> [encode_version_name(Name, __TopXMLNS) | _acc]. decode_version_os(__TopXMLNS, __IgnoreEls, {xmlel, <<"os">>, _attrs, _els}) -> Cdata = decode_version_os_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_version_os_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_version_os_cdata(__TopXMLNS, Cdata); decode_version_os_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_version_os_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_version_os_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_version_os_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_version_os(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:version">>, [], __TopXMLNS), _els = encode_version_os_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"os">>, _attrs, _els}. decode_version_os_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"os">>, __TopXMLNS}}); decode_version_os_cdata(__TopXMLNS, _val) -> _val. encode_version_os_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_version_ver(__TopXMLNS, __IgnoreEls, {xmlel, <<"version">>, _attrs, _els}) -> Cdata = decode_version_ver_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_version_ver_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_version_ver_cdata(__TopXMLNS, Cdata); decode_version_ver_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_version_ver_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_version_ver_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_version_ver_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_version_ver(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:version">>, [], __TopXMLNS), _els = encode_version_ver_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"version">>, _attrs, _els}. decode_version_ver_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"version">>, __TopXMLNS}}); decode_version_ver_cdata(__TopXMLNS, _val) -> _val. encode_version_ver_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_version_name(__TopXMLNS, __IgnoreEls, {xmlel, <<"name">>, _attrs, _els}) -> Cdata = decode_version_name_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Cdata. decode_version_name_els(__TopXMLNS, __IgnoreEls, [], Cdata) -> decode_version_name_cdata(__TopXMLNS, Cdata); decode_version_name_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Cdata) -> decode_version_name_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_version_name_els(__TopXMLNS, __IgnoreEls, [_ | _els], Cdata) -> decode_version_name_els(__TopXMLNS, __IgnoreEls, _els, Cdata). encode_version_name(Cdata, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:version">>, [], __TopXMLNS), _els = encode_version_name_cdata(Cdata, []), _attrs = enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS), {xmlel, <<"name">>, _attrs, _els}. decode_version_name_cdata(__TopXMLNS, <<>>) -> erlang:error({xmpp_codec, {missing_cdata, <<>>, <<"name">>, __TopXMLNS}}); decode_version_name_cdata(__TopXMLNS, _val) -> _val. encode_version_name_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc]. decode_last(__TopXMLNS, __IgnoreEls, {xmlel, <<"query">>, _attrs, _els}) -> Status = decode_last_els(__TopXMLNS, __IgnoreEls, _els, <<>>), Seconds = decode_last_attrs(__TopXMLNS, _attrs, undefined), {last, Seconds, Status}. decode_last_els(__TopXMLNS, __IgnoreEls, [], Status) -> decode_last_cdata(__TopXMLNS, Status); decode_last_els(__TopXMLNS, __IgnoreEls, [{xmlcdata, _data} | _els], Status) -> decode_last_els(__TopXMLNS, __IgnoreEls, _els, <>); decode_last_els(__TopXMLNS, __IgnoreEls, [_ | _els], Status) -> decode_last_els(__TopXMLNS, __IgnoreEls, _els, Status). decode_last_attrs(__TopXMLNS, [{<<"seconds">>, _val} | _attrs], _Seconds) -> decode_last_attrs(__TopXMLNS, _attrs, _val); decode_last_attrs(__TopXMLNS, [_ | _attrs], Seconds) -> decode_last_attrs(__TopXMLNS, _attrs, Seconds); decode_last_attrs(__TopXMLNS, [], Seconds) -> decode_last_attr_seconds(__TopXMLNS, Seconds). encode_last({last, Seconds, Status}, __TopXMLNS) -> __NewTopXMLNS = choose_top_xmlns(<<"jabber:iq:last">>, [], __TopXMLNS), _els = encode_last_cdata(Status, []), _attrs = encode_last_attr_seconds(Seconds, enc_xmlns_attrs(__NewTopXMLNS, __TopXMLNS)), {xmlel, <<"query">>, _attrs, _els}. decode_last_attr_seconds(__TopXMLNS, undefined) -> undefined; decode_last_attr_seconds(__TopXMLNS, _val) -> case catch dec_int(_val, 0, infinity) of {'EXIT', _} -> erlang:error({xmpp_codec, {bad_attr_value, <<"seconds">>, <<"query">>, __TopXMLNS}}); _res -> _res end. encode_last_attr_seconds(undefined, _acc) -> _acc; encode_last_attr_seconds(_val, _acc) -> [{<<"seconds">>, enc_int(_val)} | _acc]. decode_last_cdata(__TopXMLNS, <<>>) -> <<>>; decode_last_cdata(__TopXMLNS, _val) -> _val. encode_last_cdata(<<>>, _acc) -> _acc; encode_last_cdata(_val, _acc) -> [{xmlcdata, _val} | _acc].