From 0e93f70e386d1513c1809f38352053ee289cce14 Mon Sep 17 00:00:00 2001 From: Robert Schuh Date: Thu, 8 Apr 2021 16:33:54 +0200 Subject: [PATCH 001/105] allow shared roster group placeholder in mqtt topic --- src/acl.erl | 1 + src/mod_mqtt.erl | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/acl.erl b/src/acl.erl index 64a88269b..5db79eba9 100644 --- a/src/acl.erl +++ b/src/acl.erl @@ -25,6 +25,7 @@ -export([match_rules/4, match_acls/3]). -export([access_rules_validator/0, access_validator/0]). -export([validator/1, validators/0]). +-export([loaded_shared_roster_module/1]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]). diff --git a/src/mod_mqtt.erl b/src/mod_mqtt.erl index 24d033892..8734c778d 100644 --- a/src/mod_mqtt.erl +++ b/src/mod_mqtt.erl @@ -600,6 +600,23 @@ match([H|T1], [<<"%c">>|T2], U, S, R) -> R -> match(T1, T2, U, S, R); _ -> false end; +match([H|T1], [<<"%g">>|T2], U, S, R) -> + case jid:resourceprep(H) of + H -> + case acl:loaded_shared_roster_module(S) of + undefined -> false; + Mod -> + case Mod:get_group_opts(S, H) of + error -> false; + _ -> + case Mod:is_user_in_group({U, S}, H, S) of + true -> match(T1, T2, U, S, R); + _ -> false + end + end + end; + _ -> false + end; match([H|T1], [H|T2], U, S, R) -> match(T1, T2, U, S, R); match([], [], _, _, _) -> From b5bafca6408d72bc2d6c52dd7f6f0dcbc86fa5ec Mon Sep 17 00:00:00 2001 From: Pouriya Jahanbakhsh Date: Sat, 12 Jun 2021 20:27:30 +0430 Subject: [PATCH 002/105] ref: fix WS typos --- src/ejabberd_http_ws.erl | 16 +++++----- src/ejabberd_websocket.erl | 64 +++++++++++++++++++------------------- 2 files changed, 40 insertions(+), 40 deletions(-) diff --git a/src/ejabberd_http_ws.erl b/src/ejabberd_http_ws.erl index 911a69a58..eb2100a42 100644 --- a/src/ejabberd_http_ws.erl +++ b/src/ejabberd_http_ws.erl @@ -51,7 +51,7 @@ active = false :: boolean(), c2s_pid :: pid(), ws :: {#ws{}, pid()}, - rfc_compilant = undefined :: boolean() | undefined}). + rfc_compliant = undefined :: boolean() | undefined}). %-define(DBGFSM, true). @@ -166,7 +166,7 @@ handle_event({new_shaper, Shaper}, StateName, #state{ws = {_, WsPid}} = StateDat {next_state, StateName, StateData}. handle_sync_event({send_xml, Packet}, _From, StateName, - #state{ws = {_, WsPid}, rfc_compilant = R} = StateData) -> + #state{ws = {_, WsPid}, rfc_compliant = R} = StateData) -> Packet2 = case {case R of undefined -> true; V -> V end, Packet} of {true, {xmlstreamstart, _, Attrs}} -> Attrs2 = [{<<"xmlns">>, <<"urn:ietf:params:xml:ns:xmpp-framing">>} | @@ -215,7 +215,7 @@ handle_sync_event({send_xml, Packet}, _From, StateName, StateName end, {reply, ok, SN2, StateData}; -handle_sync_event(close, _From, StateName, #state{ws = {_, WsPid}, rfc_compilant = true} = StateData) +handle_sync_event(close, _From, StateName, #state{ws = {_, WsPid}, rfc_compliant = true} = StateData) when StateName /= stream_end_sent -> Close = #xmlel{name = <<"close">>, attrs = [{<<"xmlns">>, <<"urn:ietf:params:xml:ns:xmpp-framing">>}]}, @@ -313,7 +313,7 @@ get_human_html_xmlel() -> "client that supports it.">>}]}]}]}. -parse(#state{rfc_compilant = C} = State, Data) -> +parse(#state{rfc_compliant = C} = State, Data) -> case C of undefined -> P = fxml_stream:new(self()), @@ -321,13 +321,13 @@ parse(#state{rfc_compilant = C} = State, Data) -> fxml_stream:close(P2), case parsed_items([]) of error -> - {State#state{rfc_compilant = true}, <<"parse error">>}; + {State#state{rfc_compliant = true}, <<"parse error">>}; [] -> - {State#state{rfc_compilant = true}, <<"parse error">>}; + {State#state{rfc_compliant = true}, <<"parse error">>}; [{xmlstreamstart, <<"open">>, _} | _] -> - parse(State#state{rfc_compilant = true}, Data); + parse(State#state{rfc_compliant = true}, Data); _ -> - parse(State#state{rfc_compilant = false}, Data) + parse(State#state{rfc_compliant = false}, Data) end; true -> El = fxml_stream:parse_element(Data), diff --git a/src/ejabberd_websocket.erl b/src/ejabberd_websocket.erl index 5eb5ab1a2..5f9d284a6 100644 --- a/src/ejabberd_websocket.erl +++ b/src/ejabberd_websocket.erl @@ -187,32 +187,32 @@ find_subprotocol(Headers) -> end. -ws_loop(FrameInfo, Socket, WsHandleLoopPid, SocketMode, Shaper) -> +ws_loop(FrameInfo, Socket, WsHandleLoopPid, SockMod, Shaper) -> receive {DataType, _Socket, Data} when DataType =:= tcp orelse DataType =:= raw -> - case handle_data(DataType, FrameInfo, Data, Socket, WsHandleLoopPid, SocketMode, Shaper) of + case handle_data(DataType, FrameInfo, Data, Socket, WsHandleLoopPid, SockMod, Shaper) of {error, Error} -> ?DEBUG("TLS decode error ~p", [Error]), - websocket_close(Socket, WsHandleLoopPid, SocketMode, 1002); % protocol error + websocket_close(Socket, WsHandleLoopPid, SockMod, 1002); % protocol error {NewFrameInfo, ToSend, NewShaper} -> - lists:foreach(fun(Pkt) -> SocketMode:send(Socket, Pkt) + lists:foreach(fun(Pkt) -> SockMod:send(Socket, Pkt) end, ToSend), - ws_loop(NewFrameInfo, Socket, WsHandleLoopPid, SocketMode, NewShaper) + ws_loop(NewFrameInfo, Socket, WsHandleLoopPid, SockMod, NewShaper) end; {new_shaper, NewShaper} -> NewShaper = case NewShaper of none when Shaper /= none -> - activate(Socket, SocketMode, true), none; + activate(Socket, SockMod, true), none; _ -> NewShaper end, - ws_loop(FrameInfo, Socket, WsHandleLoopPid, SocketMode, NewShaper); + ws_loop(FrameInfo, Socket, WsHandleLoopPid, SockMod, NewShaper); {tcp_closed, _Socket} -> ?DEBUG("TCP connection was closed, exit", []), - websocket_close(Socket, WsHandleLoopPid, SocketMode, 0); + websocket_close(Socket, WsHandleLoopPid, SockMod, 0); {tcp_error, Socket, Reason} -> ?DEBUG("TCP connection error: ~ts", [inet:format_error(Reason)]), - websocket_close(Socket, WsHandleLoopPid, SocketMode, 0); + websocket_close(Socket, WsHandleLoopPid, SockMod, 0); {'DOWN', Ref, process, WsHandleLoopPid, Reason} -> Code = case Reason of normal -> @@ -224,39 +224,39 @@ ws_loop(FrameInfo, Socket, WsHandleLoopPid, SocketMode, Shaper) -> 1011 % internal error end, erlang:demonitor(Ref), - websocket_close(Socket, WsHandleLoopPid, SocketMode, Code); + websocket_close(Socket, WsHandleLoopPid, SockMod, Code); {text_with_reply, Data, Sender} -> - SocketMode:send(Socket, encode_frame(Data, 1)), + SockMod:send(Socket, encode_frame(Data, 1)), Sender ! {text_reply, self()}, ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper); + SockMod, Shaper); {data_with_reply, Data, Sender} -> - SocketMode:send(Socket, encode_frame(Data, 2)), + SockMod:send(Socket, encode_frame(Data, 2)), Sender ! {data_reply, self()}, ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper); + SockMod, Shaper); {text, Data} -> - SocketMode:send(Socket, encode_frame(Data, 1)), + SockMod:send(Socket, encode_frame(Data, 1)), ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper); + SockMod, Shaper); {data, Data} -> - SocketMode:send(Socket, encode_frame(Data, 2)), + SockMod:send(Socket, encode_frame(Data, 2)), ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper); + SockMod, Shaper); {ping, Data} -> - SocketMode:send(Socket, encode_frame(Data, 9)), + SockMod:send(Socket, encode_frame(Data, 9)), ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper); + SockMod, Shaper); shutdown -> ?DEBUG("Shutdown request received, closing websocket " "with pid ~p", [self()]), - websocket_close(Socket, WsHandleLoopPid, SocketMode, 1001); % going away + websocket_close(Socket, WsHandleLoopPid, SockMod, 1001); % going away _Ignored -> ?WARNING_MSG("Received unexpected message, ignoring: ~p", [_Ignored]), ws_loop(FrameInfo, Socket, WsHandleLoopPid, - SocketMode, Shaper) + SockMod, Shaper) end. encode_frame(Data, Opcode) -> @@ -421,7 +421,7 @@ handle_data(tcp, FrameInfo, Data, Socket, WsHandleLoopPid, fast_tls, Shaper) -> handle_data(_, FrameInfo, Data, Socket, WsHandleLoopPid, SockMod, Shaper) -> handle_data_int(FrameInfo, Data, Socket, WsHandleLoopPid, SockMod, Shaper). -handle_data_int(FrameInfo, Data, Socket, WsHandleLoopPid, SocketMode, Shaper) -> +handle_data_int(FrameInfo, Data, Socket, WsHandleLoopPid, SockMod, Shaper) -> {NewFrameInfo, Recv, Send} = process_frame(FrameInfo, Data), lists:foreach(fun (El) -> case El of @@ -434,27 +434,27 @@ handle_data_int(FrameInfo, Data, Socket, WsHandleLoopPid, SocketMode, Shaper) -> end end, Recv), - {NewFrameInfo, Send, handle_shaping(Data, Socket, SocketMode, Shaper)}. + {NewFrameInfo, Send, handle_shaping(Data, Socket, SockMod, Shaper)}. websocket_close(Socket, WsHandleLoopPid, - SocketMode, CloseCode) when CloseCode > 0 -> + SockMod, CloseCode) when CloseCode > 0 -> Frame = encode_frame(<>, 8), - SocketMode:send(Socket, Frame), - websocket_close(Socket, WsHandleLoopPid, SocketMode, 0); -websocket_close(Socket, WsHandleLoopPid, SocketMode, _CloseCode) -> + SockMod:send(Socket, Frame), + websocket_close(Socket, WsHandleLoopPid, SockMod, 0); +websocket_close(Socket, WsHandleLoopPid, SockMod, _CloseCode) -> WsHandleLoopPid ! closed, - SocketMode:close(Socket). + SockMod:close(Socket). get_origin() -> ejabberd_option:websocket_origin(). -handle_shaping(_Data, _Socket, _SocketMode, none) -> +handle_shaping(_Data, _Socket, _SockMod, none) -> none; -handle_shaping(Data, Socket, SocketMode, Shaper) -> +handle_shaping(Data, Socket, SockMod, Shaper) -> {NewShaper, Pause} = ejabberd_shaper:update(Shaper, byte_size(Data)), if Pause > 0 -> activate_after(Socket, self(), Pause); - true -> activate(Socket, SocketMode, once) + true -> activate(Socket, SockMod, once) end, NewShaper. From 2458f55837be8b6aa7599293577bc4535c8b89c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Fri, 18 Jun 2021 11:45:18 +0200 Subject: [PATCH 003/105] Update stringprep in mix --- mix.exs | 2 +- mix.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mix.exs b/mix.exs index 21c595649..74ac4bf06 100644 --- a/mix.exs +++ b/mix.exs @@ -107,7 +107,7 @@ defmodule Ejabberd.Mixfile do {:p1_pgsql, "~> 1.1"}, {:p1_utils, "~> 1.0"}, {:pkix, "~> 1.0"}, - {:stringprep, "~> 1.0"}, + {:stringprep, ">= 1.0.26", override: true}, {:stun, "~> 1.0"}, {:xmpp, "~> 1.5"}, {:yconf, "~> 1.0"}] diff --git a/mix.lock b/mix.lock index 373476a81..0472e8190 100644 --- a/mix.lock +++ b/mix.lock @@ -32,7 +32,7 @@ "p1_utils": {:hex, :p1_utils, "1.0.22", "10a70faa665d1f8f6995fa100d068b4d910ee2a0111fa3567e9d6232cbb86f21", [:rebar3], [], "hexpm", "0e49ff5586515e3c44901d6fb06b1473bda492d749f0b1705cbf9d96d4cd5a38"}, "pkix": {:hex, :pkix, "1.0.7", "a0b8c9011edeba702d7cb73fecef1eabe3ae89b3dcf4b8f33775e4f17a7a1304", [:rebar3], [], "hexpm", "104a9e0ecd9cc0e579d148a028189a6efe6420b241f3d319d8a65d898a078295"}, "sqlite3": {:hex, :sqlite3, "1.1.9", "10090161893843c9839d884855cafbb33c8ee3a2d6597443d66e6f94144dfd79", [:rebar3], [], "hexpm", "148ef74ee796efc13ffc6bb0e7f5feeb050f425e7335ff02c7415ca86819c0d0"}, - "stringprep": {:hex, :stringprep, "1.0.25", "15062f6020777a51a96488f29ce9a2d83e3195f92fdf27f25acc462dff7d8d82", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "8e0807d94a6927d1c3f8e76d584a2e3cdd9b4bcb02823eaf96629edf2a65b104"}, + "stringprep": {:hex, :stringprep, "1.0.26", "4724516cce50354216fe89336cc25b21c7a70aefb0704db7e8ad194f30e36584", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "07243626cd6a147664d3a271a352e43e6cbc5a4142a78c5741d16505736c0189"}, "stun": {:hex, :stun, "1.0.43", "5c58af3b87fde5e85552dfc085d565a8d899ef7bc0c3e97dea0ea45e3daf0a30", [:rebar3], [{:fast_tls, "1.1.12", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "6db03005a5f9931dc5c331d923cbe1c06b04f92921b47093dff8e3f0a18d7b36"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"}, "xmpp": {:hex, :xmpp, "1.5.3", "d61d8c90ffacd99bea4915c55dcee1829a053d43e0dc33b8ea66bab845cca8ed", [:rebar3], [{:ezlib, "1.0.9", [hex: :ezlib, repo: "hexpm", optional: false]}, {:fast_tls, "1.1.12", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:fast_xml, "1.1.46", [hex: :fast_xml, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stringprep, "1.0.25", [hex: :stringprep, repo: "hexpm", optional: false]}], "hexpm", "dca72f926769ed512e524b4369c7812095205f39e00b7e8b11530174a10a9d35"}, From ea97be91246204c0755a668f93de7500a6fc2757 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 21 Jun 2021 11:26:52 +0200 Subject: [PATCH 004/105] Don't cache rebar3 binaries... compiling is less than 2 minutes anyway --- .github/workflows/ci.yml | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66db110da..6b2b7b05f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -108,10 +108,7 @@ jobs: if: matrix.rebar == 3 uses: actions/cache@v2 with: - path: | - ~/.cache/rebar3/ - _build/default/ - !_build/default/*dialyzer_warnings + path: ~/.cache/rebar3/ key: ${{matrix.otp}}-${{matrix.rebar}}-${{hashFiles('rebar.config')}} - name: Compile @@ -214,9 +211,7 @@ jobs: - name: Cache Rebar3 uses: actions/cache@v2 with: - path: | - ~/.cache/rebar3/ - _build/default/lib/ + path: ~/.cache/rebar3/ key: ${{matrix.otp}}-${{matrix.rebar}}-${{hashFiles('rebar.config')}} - name: Prepare libraries run: | From 9d4c01d425a9ef31b9ed26a1e90f886752966203 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Fri, 25 Jun 2021 01:30:10 +0200 Subject: [PATCH 005/105] mod_push_keepalive: Fix 'resume_timeout' docs The default 'resume_timeout' value is 72 hours, not 72 minutes. --- src/mod_push_keepalive.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod_push_keepalive.erl b/src/mod_push_keepalive.erl index 83b89ff50..aba4fbfae 100644 --- a/src/mod_push_keepalive.erl +++ b/src/mod_push_keepalive.erl @@ -87,7 +87,7 @@ mod_opt_type(wake_on_timeout) -> econf:bool(). mod_options(_Host) -> - [{resume_timeout, timer:seconds(259200)}, + [{resume_timeout, timer:hours(72)}, {wake_on_start, false}, {wake_on_timeout, true}]. @@ -111,7 +111,7 @@ mod_doc() -> "notification is issued. Once that happened, the " "resumption timeout configured for the 'mod_stream_mgmt' " "module is restored. " - "The default value is '72' minutes.")}}, + "The default value is '72' hours.")}}, {wake_on_start, #{value => "true | false", desc => From d5adcaea61dd0007cd0dbd77fb123b62c1fda876 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 12:32:40 +0200 Subject: [PATCH 006/105] Add support for rebar3 to "make rel" --- .github/workflows/ci.yml | 3 --- Makefile.in | 6 ++++-- rebar.config | 21 +++++++++++++++++++++ rebar.config.script | 10 ++++++++++ rel/sys.config | 2 ++ rel/vm.args | 32 ++++++++++++++++++++++++++++++++ src/ejabberd.app.src.script | 4 ++++ 7 files changed, 73 insertions(+), 5 deletions(-) create mode 100644 rel/sys.config create mode 100644 rel/vm.args diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 6b2b7b05f..d498760be 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -123,10 +123,7 @@ jobs: make update make - # Right now 'make rel' works only with rebar2, not rebar3 - run: make rel - if: matrix.rebar == 2 - - run: make install -s - run: make hooks - run: make options diff --git a/Makefile.in b/Makefile.in index ee2b36e3b..2f6490d8a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -107,6 +107,7 @@ ifeq "$(IS_REBAR3)" "1" DEPSBASE=_build DEPSDIR=$(DEPSBASE)/default/lib EBINDIR=$(DEPSDIR)/ejabberd/ebin + REBARREL=as prod tar else SKIPDEPS=skip_deps=true LISTDEPS=-q list-deps @@ -115,6 +116,7 @@ else DEPSBASE=deps DEPSDIR=$(DEPSBASE) EBINDIR=ebin + REBARREL=generate endif all: deps src @@ -357,8 +359,8 @@ distclean: clean clean-rel rm -f ejabberdctl.example ejabberd.init ejabberd.service [ ! -f ../ChangeLog ] || rm -f ../ChangeLog -rel: all - $(REBAR) generate +rel: + $(REBAR) $(REBARREL) TAGS: etags *.erl diff --git a/rebar.config b/rebar.config index 046d3d921..a5eb1477f 100644 --- a/rebar.config +++ b/rebar.config @@ -172,6 +172,27 @@ {"fast_yaml", []}, {"stringprep", []}]}. +{relx, [{release, {ejabberd, {cmd, "grep {vsn, vars.config | sed 's|{vsn, \"||;s|\"}.||' | tr -d '\012'"}}, + [ejabberd, odbc]}, + {sys_config, "./rel/sys.config"}, + {vm_args, "./rel/vm.args"}, + {overlay_vars, "vars.config"}, + {extended_start_script, true}, + {overlay, [{mkdir, "var/log/ejabberd"}, + {mkdir, "var/lock"}, + {mkdir, "var/lib/ejabberd"}, + {mkdir, "etc/ejabberd"}, + {copy, "rel/files/erl", "\{\{erts_vsn\}\}/bin/erl"}, % in rebar2 this prepends erts- + {template, "ejabberdctl.template", "bin/ejabberdctl"}, + {copy, "inetrc", "etc/ejabberd/inetrc"}, + {copy, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]} + ]}. + +{profiles, [{prod, [{relx, [{mode, prod}, + {overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"}, + {copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, + {copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}]}]}]}, + {test, [{erl_opts, [nowarn_export_all]}]}]}. %% Local Variables: %% mode: erlang %% End: diff --git a/rebar.config.script b/rebar.config.script index a2e31ef4f..21f35b50c 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -339,6 +339,14 @@ fun(Deps, FDeps) -> end, Deps) end, +ProcessRelx = fun(Relx, Deps) -> + {value, {release, NameVersion, DefaultApps}, RelxTail} = lists:keytake(release, 1, Relx), + DepApps = lists:map(fun({DepName, _, _}) -> DepName; + ({DepName, _}) -> DepName + end, Deps), + [{release, NameVersion, DefaultApps ++ DepApps} | RelxTail] + end, + GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of {"true", Token} when is_list(Token) -> CONFIG1 = [{coveralls_repo_token, Token}, @@ -374,6 +382,8 @@ Rules = [ ProcessErlOpt, []}, {[xref_queries], [xref_exclusions], true, AppendList2(ProcssXrefExclusions), [], []}, + {[relx], [deps], IsRebar3, + ProcessRelx, [], []}, {[deps], [floating_deps], true, ProcessFloatingDeps, [], []}, {[deps], [gitonly_deps], IsRebar3, diff --git a/rel/sys.config b/rel/sys.config new file mode 100644 index 000000000..ff6f0f368 --- /dev/null +++ b/rel/sys.config @@ -0,0 +1,2 @@ +[{ejabberd, [{config, "etc/ejabberd/ejabberd.yml"}, + {log_path, "var/log/ejabberd/ejabberd.log"}]}]. diff --git a/rel/vm.args b/rel/vm.args new file mode 100644 index 000000000..29858b0dc --- /dev/null +++ b/rel/vm.args @@ -0,0 +1,32 @@ +## Name of the node +-sname ejabberd@localhost + +## Cookie for distributed erlang +#-setcookie ejabberd + +-mnesia dir \"var/lib/ejabberd\" + +## Heartbeat management; auto-restarts VM if it dies or becomes unresponsive +## (Disabled by default..use with caution!) +##-heart + +## Enable kernel poll and a few async threads +##+K true +##+A 5 + +## Increase number of concurrent ports/sockets +##-env ERL_MAX_PORTS 4096 + +## Tweak GC to run more often +##-env ERL_FULLSWEEP_AFTER 10 + +# +B [c | d | i] +# Option c makes Ctrl-C interrupt the current shell instead of invoking the emulator break +# handler. Option d (same as specifying +B without an extra option) disables the break handler. # Option i makes the emulator ignore any break signal. +# If option c is used with oldshell on Unix, Ctrl-C will restart the shell process rather than +# interrupt it. +# Disable the emulator break handler +# it easy to accidentally type ctrl-c when trying +# to reach for ctrl-d. ctrl-c on a live node can +# have very undesirable results +##+Bi diff --git a/src/ejabberd.app.src.script b/src/ejabberd.app.src.script index 8248d9c16..67a7a470d 100644 --- a/src/ejabberd.app.src.script +++ b/src/ejabberd.app.src.script @@ -20,10 +20,14 @@ Vars = case file:consult(filename:join([filename:dirname(SCRIPT), "..", "vars.co cache_tab, eimp, fast_tls, + fast_xml, fast_yaml, lager, + p1_acme, p1_utils, pkix, + stringprep, + yconf, xmpp]}, {mod, {ejabberd_app, []}}]}. From 21b021d91206ddaa378f36964aa54d12076ae13c Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 12:33:38 +0200 Subject: [PATCH 007/105] Set SCRIPT_DIR as done by the ejabberd script generated by "rebar3 release" --- ejabberdctl.template | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ejabberdctl.template b/ejabberdctl.template index bdc9a9189..4cab19977 100755 --- a/ejabberdctl.template +++ b/ejabberdctl.template @@ -10,7 +10,8 @@ INET_DIST_INTERFACE="" ERLANG_NODE=ejabberd@localhost # define default environment variables -SCRIPT_DIR=$(cd "${0%/*}" && pwd) +[ -z "$SCRIPT" ] && SCRIPT=$0 +SCRIPT_DIR="$(cd "$(dirname "$SCRIPT")" && pwd -P)" ERL="{{erl}}" IEX="{{bindir}}/iex" EPMD="{{epmd}}" From 0fe2aea70969ea36bd4fe40997c261e5a3e974d2 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 12:40:26 +0200 Subject: [PATCH 008/105] New "make dev" and "./ejabberdctl" (requires using rebar3) --- .gitignore | 1 + Makefile.in | 5 +++++ rebar.config | 10 ++++++++++ rebar.config.script | 6 +++++- rel/setup-dev.sh | 31 +++++++++++++++++++++++++++++++ 5 files changed, 52 insertions(+), 1 deletion(-) create mode 100755 rel/setup-dev.sh diff --git a/.gitignore b/.gitignore index cd173988c..3e0fe0d08 100644 --- a/.gitignore +++ b/.gitignore @@ -17,6 +17,7 @@ /ebin/ /ejabberd.init /ejabberd.service +/ejabberdctl /ejabberdctl.example /rel/ejabberd/ /src/eldap_filter_yecc.erl diff --git a/Makefile.in b/Makefile.in index 2f6490d8a..c5b12c27f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -362,6 +362,11 @@ distclean: clean clean-rel rel: $(REBAR) $(REBARREL) +DEV_CONFIG = _build/dev/rel/ejabberd/etc/ejabberd/ejabberd.yml + +dev $(DEV_CONFIG): + REBAR_PROFILE=dev rebar3 release + TAGS: etags *.erl diff --git a/rebar.config b/rebar.config index a5eb1477f..f443a84f3 100644 --- a/rebar.config +++ b/rebar.config @@ -192,7 +192,17 @@ {overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"}, {copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, {copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}]}]}]}, + {dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]}, + {relx, [{dev_mode, true}, + {debug_info, keep}, + {include_erts, true}, + {include_src, false}, + {overlay, [{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg.example"}, + {copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml.example"}, + {copy, "test/ejabberd_SUITE_data/ca.pem", "etc/ejabberd/"}, + {copy, "test/ejabberd_SUITE_data/cert.pem", "etc/ejabberd/"}]}]}]}, {test, [{erl_opts, [nowarn_export_all]}]}]}. + %% Local Variables: %% mode: erlang %% End: diff --git a/rebar.config.script b/rebar.config.script index 21f35b50c..9e47b70e3 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -341,10 +341,14 @@ end, ProcessRelx = fun(Relx, Deps) -> {value, {release, NameVersion, DefaultApps}, RelxTail} = lists:keytake(release, 1, Relx), + ProfileApps = case os:getenv("REBAR_PROFILE") of + "dev" -> [observer, runtime_tools, wx, debugger]; + _ -> [] + end, DepApps = lists:map(fun({DepName, _, _}) -> DepName; ({DepName, _}) -> DepName end, Deps), - [{release, NameVersion, DefaultApps ++ DepApps} | RelxTail] + [{release, NameVersion, DefaultApps ++ ProfileApps ++ DepApps} | RelxTail] end, GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh new file mode 100755 index 000000000..664a2a68d --- /dev/null +++ b/rel/setup-dev.sh @@ -0,0 +1,31 @@ +echo -n "===> Preparing dev configuration files: " + +PWD=`pwd` +REL_DIR=$PWD/_build/dev/rel/ +CON_DIR=$REL_DIR/ejabberd/etc/ejabberd/ +BIN_DIR=$REL_DIR/ejabberd/bin/ +CTLPATH=$BIN_DIR/ejabberdctl + +[ ! -f "ejabberdctl" ] \ + && echo -n "ejabberdctl " \ + && ln -s $CTLPATH ejabberdctl \ + && (cd $BIN_DIR && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=`pwd`|g" ejabberdctl) + +cd $CON_DIR + +[ ! -f "ejabberd.yml" ] \ + && echo -n "ejabberd.yml " \ + && mv ejabberd.yml.example ejabberd.yml \ + && sed -i "s|# certfiles:|certfiles:\n - $CON_DIR/cert.pem|g" ejabberd.yml \ + && sed -i "s|certfiles:|ca_file: $CON_DIR/ca.pem\ncertfiles:|g" ejabberd.yml \ + && sed -i 's|^acl:$|acl:\n admin: [user: admin]|g' ejabberd.yml \ + || rm ejabberd.yml.example + +[ ! -f "ejabberdctl.cfg" ] \ + && echo -n "ejabberdctl.cfg " \ + && mv ejabberdctl.cfg.example ejabberdctl.cfg \ + && sed -i "s|#' POLL|EJABBERD_BYPASS_WARNINGS=true\n\n#' POLL|g" ejabberdctl.cfg \ + || rm ejabberdctl.cfg.example + +echo "" +echo "===> Now you can start this ejabberd dev with: ./ejabberdctl live" From ac06161f30f5617d98cf29cf02331ae8d3f70b54 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 12:33:24 +0200 Subject: [PATCH 009/105] There are so many targets... add "make help" --- Makefile.in | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/Makefile.in b/Makefile.in index c5b12c27f..0079a805d 100644 --- a/Makefile.in +++ b/Makefile.in @@ -426,3 +426,29 @@ test: .PHONY: src edoc dialyzer Makefile TAGS clean clean-rel distclean rel \ install uninstall uninstall-binary uninstall-all translations deps test \ quicktest erlang_plt deps_plt ejabberd_plt xref hooks options + +help: + @echo "" + @echo " [all] Compile dependencies and ejabberd" + @echo " src Compile ejabberd" + @echo " deps Get dependencies" + @echo " update Update dependencies' source code" + @echo " clean Clean binary files" + @echo " distclean Clean completely the development files" + @echo "" + @echo " install Install ejabberd to /usr/local" + @echo " uninstall Uninstall ejabberd (buggy)" + @echo " uninstall-all Uninstall also configuration, logs, mnesia... (buggy)" + @echo "" + @echo " rel Build a production release" + @echo " dev Build a development release" + @echo "" + @echo " edoc Generate edoc documentation (unused)" + @echo " options Generate ejabberd_option.erl" + @echo " translations Extract translation files (requires --enable-tools)" + @echo " tags Generate tags file for text editors" + @echo "" + @echo " dialyzer Run Dialyzer static analyzer" + @echo " hooks Run hooks validator" + @echo " test Run Common Tests suite" + @echo " xref Run cross reference analysis" From d7c9809c59f3d1870acb404274d4bad6d0e1d8a6 Mon Sep 17 00:00:00 2001 From: Linus Jahn Date: Sun, 27 Jun 2021 00:50:50 +0200 Subject: [PATCH 010/105] mod_mix: Use disco identity conference/mix Probably someone has forgotten to update it here. https://xmpp.org/extensions/xep-0369.html#example-5 Fixes #2901. --- src/mod_mix.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod_mix.erl b/src/mod_mix.erl index 1c43bc8a7..dfe81af58 100644 --- a/src/mod_mix.erl +++ b/src/mod_mix.erl @@ -166,7 +166,7 @@ process_disco_info(#iq{type = get, to = #jid{luser = <<>>} = To, [ServerHost, ?MODULE, <<"">>, Lang]), Name = mod_mix_opt:name(ServerHost), Identity = #identity{category = <<"conference">>, - type = <<"text">>, + type = <<"mix">>, name = translate:translate(Lang, Name)}, Features = [?NS_DISCO_INFO, ?NS_DISCO_ITEMS, ?NS_MIX_CORE_0, ?NS_MIX_CORE_SEARCHABLE_0, From b93fc4333c0e6281f6a41a6abf3e4309b2948661 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 13:08:06 +0200 Subject: [PATCH 011/105] Let "make dev" always update SCRIPT_DIR in ejabberdctl, even if link exists --- rel/setup-dev.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh index 664a2a68d..cd0f90d9e 100755 --- a/rel/setup-dev.sh +++ b/rel/setup-dev.sh @@ -8,8 +8,9 @@ CTLPATH=$BIN_DIR/ejabberdctl [ ! -f "ejabberdctl" ] \ && echo -n "ejabberdctl " \ - && ln -s $CTLPATH ejabberdctl \ - && (cd $BIN_DIR && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=`pwd`|g" ejabberdctl) + && ln -s $CTLPATH ejabberdctl + +(cd $BIN_DIR && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=`pwd`|g" ejabberdctl) cd $CON_DIR From b5b2ad560ad8d2cd4be6a86cd8fa4ae9f84c5715 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 25 Jun 2021 16:24:08 +0200 Subject: [PATCH 012/105] Copy captcha scripts in release (#3633) --- rebar.config | 1 + 1 file changed, 1 insertion(+) diff --git a/rebar.config b/rebar.config index f443a84f3..8f520948f 100644 --- a/rebar.config +++ b/rebar.config @@ -185,6 +185,7 @@ {copy, "rel/files/erl", "\{\{erts_vsn\}\}/bin/erl"}, % in rebar2 this prepends erts- {template, "ejabberdctl.template", "bin/ejabberdctl"}, {copy, "inetrc", "etc/ejabberd/inetrc"}, + {copy, "tools/captcha*.sh", "lib/ejabberd-\{\{release_version\}\}/priv/bin/"}, {copy, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]} ]}. From 774de2bdc5f557a9a5e7375175db2e715db368f8 Mon Sep 17 00:00:00 2001 From: Badlop Date: Sun, 27 Jun 2021 17:08:21 +0200 Subject: [PATCH 013/105] Include odbc app in release only when required (#3633) --- rebar.config | 2 +- rebar.config.script | 13 ++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/rebar.config b/rebar.config index 8f520948f..9639372bb 100644 --- a/rebar.config +++ b/rebar.config @@ -173,7 +173,7 @@ {"stringprep", []}]}. {relx, [{release, {ejabberd, {cmd, "grep {vsn, vars.config | sed 's|{vsn, \"||;s|\"}.||' | tr -d '\012'"}}, - [ejabberd, odbc]}, + [ejabberd]}, {sys_config, "./rel/sys.config"}, {vm_args, "./rel/vm.args"}, {overlay_vars, "vars.config"}, diff --git a/rebar.config.script b/rebar.config.script index 9e47b70e3..efd51d6ba 100644 --- a/rebar.config.script +++ b/rebar.config.script @@ -339,6 +339,17 @@ fun(Deps, FDeps) -> end, Deps) end, + +VarsApps = case file:consult(filename:join([filename:dirname(SCRIPT),"vars.config"])) of + {ok, TermsV} -> + case proplists:get_bool(odbc, TermsV) of + true -> [odbc]; + false -> [] + end; + _-> + [] + end, + ProcessRelx = fun(Relx, Deps) -> {value, {release, NameVersion, DefaultApps}, RelxTail} = lists:keytake(release, 1, Relx), ProfileApps = case os:getenv("REBAR_PROFILE") of @@ -348,7 +359,7 @@ ProcessRelx = fun(Relx, Deps) -> DepApps = lists:map(fun({DepName, _, _}) -> DepName; ({DepName, _}) -> DepName end, Deps), - [{release, NameVersion, DefaultApps ++ ProfileApps ++ DepApps} | RelxTail] + [{release, NameVersion, DefaultApps ++ VarsApps ++ ProfileApps ++ DepApps} | RelxTail] end, GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of From 795addca7dfb9b418c7757dffcbae17127d64357 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Thu, 24 Jun 2021 15:15:13 +0200 Subject: [PATCH 014/105] Try to limit serial access when checking api permissions --- src/ejabberd_access_permissions.erl | 68 +++++++++++++++-------------- 1 file changed, 35 insertions(+), 33 deletions(-) diff --git a/src/ejabberd_access_permissions.erl b/src/ejabberd_access_permissions.erl index 2122c063f..916475df9 100644 --- a/src/ejabberd_access_permissions.erl +++ b/src/ejabberd_access_permissions.erl @@ -46,6 +46,7 @@ code_change/3]). -define(SERVER, ?MODULE). +-define(CACHE_TAB, access_permissions_cache). -record(state, {definitions = none :: none | [definition()]}). @@ -71,17 +72,45 @@ %%%=================================================================== -spec can_access(atom(), caller_info()) -> allow | deny. can_access(Cmd, CallerInfo) -> - gen_server:call(?MODULE, {can_access, Cmd, CallerInfo}). + Defs0 = show_current_definitions(), + CallerModule = maps:get(caller_module, CallerInfo, none), + Host = maps:get(caller_host, CallerInfo, global), + Tag = maps:get(tag, CallerInfo, none), + Defs = maps:get(extra_permissions, CallerInfo, []) ++ Defs0, + Res = lists:foldl( + fun({Name, _} = Def, none) -> + case matches_definition(Def, Cmd, CallerModule, Tag, Host, CallerInfo) of + true -> + ?DEBUG("Command '~p' execution allowed by rule " + "'~ts' (CallerInfo=~p)", [Cmd, Name, CallerInfo]), + allow; + _ -> + none + end; + (_, Val) -> + Val + end, none, Defs), + case Res of + allow -> allow; + _ -> + ?DEBUG("Command '~p' execution denied " + "(CallerInfo=~p)", [Cmd, CallerInfo]), + deny + end. -spec invalidate() -> ok. invalidate() -> - gen_server:cast(?MODULE, invalidate). + gen_server:cast(?MODULE, invalidate), + ets_cache:delete(?CACHE_TAB, definitions). -spec show_current_definitions() -> [definition()]. show_current_definitions() -> - gen_server:call(?MODULE, show_current_definitions). - + ets_cache:lookup(?CACHE_TAB, definitions, + fun() -> + {cache, gen_server:call(?MODULE, show_current_definitions)} + end). start_link() -> + ets_cache:new(?CACHE_TAB, [{max_size, 2}]), gen_server:start_link({local, ?SERVER}, ?MODULE, [], []). %%%=================================================================== @@ -90,38 +119,11 @@ start_link() -> -spec init([]) -> {ok, state()}. init([]) -> ejabberd_hooks:add(config_reloaded, ?MODULE, invalidate, 90), + ets_cache:new(access_permissions), {ok, #state{}}. --spec handle_call({can_access, atom(), caller_info()} | - show_current_definitions | term(), +-spec handle_call(show_current_definitions | term(), term(), state()) -> {reply, term(), state()}. -handle_call({can_access, Cmd, CallerInfo}, _From, State) -> - CallerModule = maps:get(caller_module, CallerInfo, none), - Host = maps:get(caller_host, CallerInfo, global), - Tag = maps:get(tag, CallerInfo, none), - {State2, Defs0} = get_definitions(State), - Defs = maps:get(extra_permissions, CallerInfo, []) ++ Defs0, - Res = lists:foldl( - fun({Name, _} = Def, none) -> - case matches_definition(Def, Cmd, CallerModule, Tag, Host, CallerInfo) of - true -> - ?DEBUG("Command '~p' execution allowed by rule " - "'~ts' (CallerInfo=~p)", [Cmd, Name, CallerInfo]), - allow; - _ -> - none - end; - (_, Val) -> - Val - end, none, Defs), - Res2 = case Res of - allow -> allow; - _ -> - ?DEBUG("Command '~p' execution denied " - "(CallerInfo=~p)", [Cmd, CallerInfo]), - deny - end, - {reply, Res2, State2}; handle_call(show_current_definitions, _From, State) -> {State2, Defs} = get_definitions(State), {reply, Defs, State2}; From 6e900d6a8f90d5acdc98f72a410fb1d2d75604ef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Thu, 24 Jun 2021 15:16:02 +0200 Subject: [PATCH 015/105] Add send_timeout option to listener --- src/ejabberd_listener.erl | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 135fbbf57..0e2bd2919 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -113,10 +113,11 @@ init({Port, _, udp} = EndPoint, Module, Opts, SockOpts) -> _ -> {Port, SockOpts} end, + ExtraOpts2 = lists:keydelete(socket_timeout, 1, ExtraOpts), case gen_udp:open(Port2, [binary, {active, false}, {reuseaddr, true} | - ExtraOpts]) of + ExtraOpts2]) of {ok, Socket} -> case inet:sockname(Socket) of {ok, {Addr, Port1}} -> @@ -195,7 +196,6 @@ listen_tcp(Port, SockOpts) -> {active, false}, {reuseaddr, true}, {nodelay, true}, - {send_timeout, ?TCP_SEND_TIMEOUT}, {send_timeout_close, true}, {keepalive, true} | ExtraOpts]), case Res of @@ -682,6 +682,8 @@ listen_opt_type(max_stanza_size) -> econf:pos_int(infinity); listen_opt_type(max_fsm_queue) -> econf:pos_int(); +listen_opt_type(send_timeout) -> + econf:timeout(seconds, true); listen_opt_type(shaper) -> econf:shaper(); listen_opt_type(access) -> @@ -694,6 +696,7 @@ listen_options() -> {transport, tcp}, {ip, {0,0,0,0}}, {accept_interval, 0}, + {send_timeout, 15000}, {backlog, 5}, {use_proxy_protocol, false}, {supervisor, true}]. From b669e4499c4a37716ab7235f22e6cb58d01057b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 28 Jun 2021 12:18:19 +0200 Subject: [PATCH 016/105] Fix dialyzer warning --- src/ejabberd_listener.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 0e2bd2919..987bfd423 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -683,7 +683,7 @@ listen_opt_type(max_stanza_size) -> listen_opt_type(max_fsm_queue) -> econf:pos_int(); listen_opt_type(send_timeout) -> - econf:timeout(seconds, true); + econf:timeout(second, true); listen_opt_type(shaper) -> econf:shaper(); listen_opt_type(access) -> From e3e4dae58394446189beeb782852c31f24a6976a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 28 Jun 2021 12:53:30 +0200 Subject: [PATCH 017/105] Yet another dialyzer warning fix --- src/ejabberd_listener.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 987bfd423..0b46dde2d 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -683,7 +683,7 @@ listen_opt_type(max_stanza_size) -> listen_opt_type(max_fsm_queue) -> econf:pos_int(); listen_opt_type(send_timeout) -> - econf:timeout(second, true); + econf:timeout(second, infinity); listen_opt_type(shaper) -> econf:shaper(); listen_opt_type(access) -> From bb0c6e1e024a095a37db823372eb56bfd716a356 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 1 Jul 2021 13:17:00 +0200 Subject: [PATCH 018/105] Show messages with next configuration steps when installing a module --- src/ext_mod.erl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/ext_mod.erl b/src/ext_mod.erl index 9ff53ca8c..5353019bb 100644 --- a/src/ext_mod.erl +++ b/src/ext_mod.erl @@ -638,6 +638,7 @@ install(Module, Spec, SrcDir, LibDir) -> Errors = lists:dropwhile(fun({_, ok}) -> true; (_) -> false end, Files1++Files2), + inform_module_configuration(Module, LibDir, Files1), Result = case Errors of [{F, {error, E}}|_] -> {error, {F, E}}; @@ -649,6 +650,24 @@ install(Module, Spec, SrcDir, LibDir) -> file:set_cwd(CurDir), Result. +inform_module_configuration(Module, LibDir, Files1) -> + Res = lists:filter(fun({[$c, $o, $n, $f |_], ok}) -> true; + (_) -> false + end, Files1), + case Res of + [{ConfigPath, ok}] -> + FullConfigPath = filename:join(LibDir, ConfigPath), + io:format("Module ~p has been installed and started.~n" + "It's configured in the file:~n ~s~n" + "Configure the module in that file, or remove it~n" + "and configure in your main ejabberd.yml~n", + [Module, FullConfigPath]); + [] -> + io:format("Module ~p has been installed.~n" + "Now you can configure it in your ejabberd.yml~n", + [Module]) + end. + %% -- minimalist rebar spec parser, only support git fetch_rebar_deps(SrcDir) -> From 08c2d0a83ec39f09c890e575c1494166d427deff Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 1 Jul 2021 13:57:48 +0200 Subject: [PATCH 019/105] Tell relx to include src, so that the tar will contain include/ (#3633) That's the only way to ensure that tar.gz will contain include/ of ejabberd and its dependencies, which is required to compile ejabberd-contrib modules with "ejabberdctl module_install ..." --- rebar.config | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/rebar.config b/rebar.config index 9639372bb..a125557c6 100644 --- a/rebar.config +++ b/rebar.config @@ -189,13 +189,16 @@ {copy, "rel/files/install_upgrade.escript", "bin/install_upgrade.escript"}]} ]}. -{profiles, [{prod, [{relx, [{mode, prod}, +{profiles, [{prod, [{relx, [{debug_info, strip}, + {dev_mode, false}, + {include_erts, true}, + {include_src, true}, {overlay, [{copy, "sql/*", "lib/ejabberd-\{\{release_version\}\}/priv/sql/"}, {copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg"}, {copy, "ejabberd.yml.example", "etc/ejabberd/ejabberd.yml"}]}]}]}, {dev, [{post_hooks, [{release, "rel/setup-dev.sh"}]}, - {relx, [{dev_mode, true}, - {debug_info, keep}, + {relx, [{debug_info, keep}, + {dev_mode, true}, {include_erts, true}, {include_src, false}, {overlay, [{copy, "ejabberdctl.cfg.example", "etc/ejabberd/ejabberdctl.cfg.example"}, From 509331a563e98c37c055b786ba95ce65c52b1d6d Mon Sep 17 00:00:00 2001 From: Emmet McPoland Date: Wed, 7 Jul 2021 16:44:58 +0100 Subject: [PATCH 020/105] Correctly strip only other bcc addresses i.e. bcc receiver should still be able to see their bcc address element and no other bcc address element --- src/mod_multicast.erl | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mod_multicast.erl b/src/mod_multicast.erl index 530bfecea..161d3a4c4 100644 --- a/src/mod_multicast.erl +++ b/src/mod_multicast.erl @@ -392,8 +392,9 @@ perform(From, Packet, _, {route_single, Group}) -> lists:foreach( fun(ToUser) -> + Group_others = strip_other_bcc(ToUser, Group#group.others), route_packet(From, ToUser, Packet, - Group#group.others, Group#group.addresses) + Group_others, Group#group.addresses) end, Group#group.dests); perform(From, Packet, _, {{route_multicast, JID, RLimits}, Group}) -> @@ -424,6 +425,21 @@ strip_addresses_element(Packet) -> throw(eadsele) end. +%%%------------------------- +%%% Strip third-party bcc 'addresses' +%%%------------------------- + +strip_other_bcc(#dest{jid_jid = ToUserJid}, Group_others) -> + lists:filter( + fun(#address{jid = JID, type = Type}) -> + case {JID, Type} of + {ToUserJid, bcc} -> true; + {_, bcc} -> false; + _ -> true + end + end, + Group_others). + %%%------------------------- %%% Split Addresses %%%------------------------- @@ -545,7 +561,6 @@ build_other_xml(Dests) -> case Dest#dest.type of to -> [add_delivered(XML) | R]; cc -> [add_delivered(XML) | R]; - bcc -> R; _ -> [XML | R] end end, From 7e3276f3a804e75dd87ec60eecb6069d82251aff Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 6 Jul 2021 15:30:10 +0200 Subject: [PATCH 021/105] Ignore captcha scripts copied by relx after "make dev" --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 3e0fe0d08..801f7f4e8 100644 --- a/.gitignore +++ b/.gitignore @@ -26,6 +26,7 @@ /test/*.beam /test/*.ctc /logs/ +/priv/bin/captcha*sh /priv/sql /rel/ejabberd /_build From 271a9f097d251fb76912f935f83b29bae833799b Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 7 Jul 2021 17:32:55 +0200 Subject: [PATCH 022/105] After create_room, store in DB if it's persistent (#3632) --- src/mod_muc_admin.erl | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index a595d00c3..47b28f7a8 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -696,7 +696,7 @@ create_room_with_opts(Name1, Host1, ServerHost1, CustomRoomOpts) -> lists:keysort(1, DefRoomOpts)), case mod_muc:create_room(Host, Name, RoomOpts) of ok -> - ok; + maybe_store_room(ServerHost, Host, Name, RoomOpts); {error, _} -> throw({error, "Unable to start room"}) end; @@ -705,6 +705,15 @@ create_room_with_opts(Name1, Host1, ServerHost1, CustomRoomOpts) -> end end. +maybe_store_room(ServerHost, Host, Name, RoomOpts) -> + case proplists:get_bool(persistent, RoomOpts) of + true -> + {atomic, ok} = mod_muc:store_room(ServerHost, Host, Name, RoomOpts), + ok; + false -> + ok + end. + %% Create the room only in the database. %% It is required to restart the MUC service for the room to appear. muc_create_room(ServerHost, {Name, Host, _}, DefRoomOpts) -> From 2e2667bbd7f00e465f9f58a2699069fdb2c60a4e Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 8 Jul 2021 11:57:37 +0200 Subject: [PATCH 023/105] Update documentation: mod_muc ram_db_type supports SQL since 17.04 (#3632) --- src/mod_muc.erl | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/mod_muc.erl b/src/mod_muc.erl index 0139db430..46bfd20e5 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -1386,11 +1386,10 @@ mod_doc() -> "store room information. The default is the storage defined " "by the global option 'default_db', or 'mnesia' if omitted.")}}, {ram_db_type, - #{value => "mnesia", + #{value => "mnesia | sql", desc => ?T("Define the type of volatile (in-memory) storage where the module " - "will store room information. The only available value for this " - "module is 'mnesia'.")}}, + "will store room information ('muc_online_room' and 'muc_online_users').")}}, {hibernation_timeout, #{value => "infinity | Seconds", desc => From 0de6f1c5383fef45adaf494f9db4ccf6a1b35df7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 13 Jul 2021 16:01:25 +0200 Subject: [PATCH 024/105] Use multicast routing for more packets generated by muc --- src/ejabberd_c2s.erl | 2 +- src/ejabberd_router_multicast.erl | 49 ++++++++-- src/mod_muc_room.erl | 144 +++++++++++++++++++++++------- 3 files changed, 153 insertions(+), 42 deletions(-) diff --git a/src/ejabberd_c2s.erl b/src/ejabberd_c2s.erl index ada7653b6..3218cce51 100644 --- a/src/ejabberd_c2s.erl +++ b/src/ejabberd_c2s.erl @@ -880,7 +880,7 @@ get_priority_from_presence(#presence{priority = Prio}) -> -spec route_multiple(state(), [jid()], stanza()) -> ok. route_multiple(#{lserver := LServer}, JIDs, Pkt) -> From = xmpp:get_from(Pkt), - ejabberd_router_multicast:route_multicast(From, LServer, JIDs, Pkt). + ejabberd_router_multicast:route_multicast(From, LServer, JIDs, Pkt, false). get_subscription(#jid{luser = LUser, lserver = LServer}, JID) -> {Subscription, _, _} = ejabberd_hooks:run_fold( diff --git a/src/ejabberd_router_multicast.erl b/src/ejabberd_router_multicast.erl index 0d9d6b1d4..6e0201c90 100644 --- a/src/ejabberd_router_multicast.erl +++ b/src/ejabberd_router_multicast.erl @@ -30,7 +30,7 @@ -behaviour(gen_server). %% API --export([route_multicast/4, +-export([route_multicast/5, register_route/1, unregister_route/1 ]). @@ -58,9 +58,11 @@ start_link() -> gen_server:start_link({local, ?MODULE}, ?MODULE, [], []). --spec route_multicast(jid(), binary(), [jid()], stanza()) -> ok. -route_multicast(From, Domain, Destinations, Packet) -> - case catch do_route(Domain, Destinations, xmpp:set_from(Packet, From)) of +-spec route_multicast(jid(), binary(), [jid()], stanza(), boolean()) -> ok. +route_multicast(From0, Domain0, Destinations0, Packet0, Wrapped0) -> + {From, Domain, Destinations, Packet, Wrapped} = + ejabberd_hooks:run_fold(multicast_route, {From0, Domain0, Destinations0, Packet0, Wrapped0}, []), + case catch do_route(Domain, Destinations, xmpp:set_from(Packet, From), Wrapped) of {'EXIT', Reason} -> ?ERROR_MSG("~p~nwhen processing: ~p", [Reason, {From, Domain, Destinations, Packet}]); @@ -157,7 +159,7 @@ handle_cast(Msg, State) -> %% Description: Handling all non call/cast messages %%-------------------------------------------------------------------- handle_info({route_multicast, Domain, Destinations, Packet}, State) -> - case catch do_route(Domain, Destinations, Packet) of + case catch do_route(Domain, Destinations, Packet, false) of {'EXIT', Reason} -> ?ERROR_MSG("~p~nwhen processing: ~p", [Reason, {Domain, Destinations, Packet}]); @@ -204,13 +206,41 @@ terminate(_Reason, _State) -> code_change(_OldVsn, State, _Extra) -> {ok, State}. +-spec update_to_in_wrapped(stanza(), jid()) -> stanza(). +update_to_in_wrapped(Packet, To) -> + case Packet of + #message{sub_els = [#ps_event{ + items = #ps_items{ + items = [#ps_item{ + sub_els = [Internal] + } = PSItem] + } = PSItems + } = PSEvent]} -> + Internal2 = xmpp:set_to(Internal, To), + PSItem2 = PSItem#ps_item{sub_els = Internal2}, + PSItems2 = PSItems#ps_items{items = PSItem2}, + PSEvent2 = PSEvent#ps_event{items = PSItems2}, + Packet#message{sub_els = [PSEvent2]}; + _ -> + Packet + end. + %%-------------------------------------------------------------------- %%% Internal functions %%-------------------------------------------------------------------- %% From = #jid %% Destinations = [#jid] --spec do_route(binary(), [jid()], stanza()) -> any(). -do_route(Domain, Destinations, Packet) -> +-spec do_route(binary(), [jid()], stanza(), boolean()) -> any(). +do_route(Domain, Destinations, Packet, true) -> + ?DEBUG("Route multicast:~n~ts~nDomain: ~ts~nDestinations: ~ts~n", + [xmpp:pp(Packet), Domain, + str:join([jid:encode(To) || To <- Destinations], <<", ">>)]), + lists:foreach( + fun(To) -> + Packet2 = update_to_in_wrapped(Packet, To), + ejabberd_router:route(Packet2) + end, Destinations); +do_route(Domain, Destinations, Packet, false) -> ?DEBUG("Route multicast:~n~ts~nDomain: ~ts~nDestinations: ~ts~n", [xmpp:pp(Packet), Domain, str:join([jid:encode(To) || To <- Destinations], <<", ">>)]), @@ -236,4 +266,7 @@ pick_multicast_pid(Rs) -> -spec do_route_normal([jid()], stanza()) -> any(). do_route_normal(Destinations, Packet) -> - [ejabberd_router:route(xmpp:set_to(Packet, To)) || To <- Destinations]. + lists:foreach( + fun(To) -> + ejabberd_router:route(xmpp:set_to(Packet, To)) + end, Destinations). diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 2fa08dc79..1c9710c60 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -4624,37 +4624,55 @@ store_room_no_checks(StateData, ChangesHints) -> -spec send_subscriptions_change_notifications(jid(), binary(), subscribe|unsubscribe, state()) -> ok. send_subscriptions_change_notifications(From, Nick, Type, State) -> - maps:fold(fun(_, #subscriber{nodes = Nodes, jid = JID}, _) -> - case lists:member(?NS_MUCSUB_NODES_SUBSCRIBERS, Nodes) of + {WJ, WN} = + maps:fold( + fun({WithJid, WithNick} = Res, #subscriber{nodes = Nodes, jid = JID}, _) -> + case lists:member(?NS_MUCSUB_NODES_SUBSCRIBERS, Nodes) of + true -> + case (State#state.config)#config.anonymous == false orelse + get_role(JID, State) == moderator orelse + get_default_role(get_affiliation(JID, State), State) == moderator of true -> - ShowJid = case (State#state.config)#config.anonymous == false orelse - get_role(JID, State) == moderator orelse - get_default_role(get_affiliation(JID, State), State) == moderator of - true -> true; - _ -> false - end, - Payload = case {Type, ShowJid} of - {subscribe, true} -> - #muc_subscribe{jid = From, nick = Nick}; - {subscribe, _} -> - #muc_subscribe{nick = Nick}; - {unsubscribe, true} -> - #muc_unsubscribe{jid = From, nick = Nick}; - {unsubscribe, _} -> - #muc_unsubscribe{nick = Nick} - end, - Packet = #message{ - sub_els = [#ps_event{ - items = #ps_items{ - node = ?NS_MUCSUB_NODES_SUBSCRIBERS, - items = [#ps_item{ - id = p1_rand:get_string(), - sub_els = [Payload]}]}}]}, - ejabberd_router:route(xmpp:set_from_to(Packet, State#state.jid, JID)); - false -> - ok - end - end, ok, State#state.subscribers). + {[JID | WithJid], WithNick}; + _ -> + {WithJid, [JID | WithNick]} + end; + false -> + Res + end + end, ok, State#state.subscribers), + if WJ /= [] -> + Payload1 = case Type of + subscribe -> #muc_subscribe{jid = From, nick = Nick}; + _ -> #muc_unsubscribe{jid = From, nick = Nick} + end, + Packet1 = #message{ + sub_els = [#ps_event{ + items = #ps_items{ + node = ?NS_MUCSUB_NODES_SUBSCRIBERS, + items = [#ps_item{ + id = p1_rand:get_string(), + sub_els = [Payload1]}]}}]}, + ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, + WJ, Packet1, true); + true -> ok + end, + if WN /= [] -> + Payload2 = case Type of + subscribe -> #muc_subscribe{nick = Nick}; + _ -> #muc_unsubscribe{nick = Nick} + end, + Packet2 = #message{ + sub_els = [#ps_event{ + items = #ps_items{ + node = ?NS_MUCSUB_NODES_SUBSCRIBERS, + items = [#ps_item{ + id = p1_rand:get_string(), + sub_els = [Payload2]}]}}]}, + ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, + WN, Packet2, true); + true -> ok + end. -spec send_wrapped(jid(), jid(), stanza(), binary(), state()) -> ok. send_wrapped(From, To, Packet, Node, State) -> @@ -4727,10 +4745,70 @@ wrap(From, To, Packet, Node, Id) -> -spec send_wrapped_multiple(jid(), users(), stanza(), binary(), state()) -> ok. send_wrapped_multiple(From, Users, Packet, Node, State) -> + {Dir, Wra} = maps:fold( - fun(_, #user{jid = To}, _) -> - send_wrapped(From, To, Packet, Node, State) - end, ok, Users). + fun(_, #user{jid = To, last_presence = LP}, {Direct, Wrapped} = Res) -> + IsOffline = LP == undefined, + if IsOffline -> + LBareTo = jid:tolower(jid:remove_resource(To)), + case maps:find(LBareTo, State#state.subscribers) of + {ok, #subscriber{nodes = Nodes}} -> + case lists:member(Node, Nodes) of + true -> + {Direct, [To | Wrapped]}; + _ -> + Res + end; + _ -> + Res + end; + true -> + {[To | Direct], Wrapped} + end + end, {[],[]}, Users), + case Dir of + [] -> ok; + _ -> + case Packet of + #presence{type = unavailable} -> + case xmpp:get_subtag(Packet, #muc_user{}) of + #muc_user{destroy = Destroy, + status_codes = Codes} -> + case Destroy /= undefined orelse + (lists:member(110,Codes) andalso + not lists:member(303, Codes)) of + true -> + ejabberd_router_multicast:route_multicast( + State#state.jid, State#state.server_host, Dir, + #presence{id = p1_rand:get_string(), + type = unavailable}, false); + false -> + ok + end; + _ -> + false + end; + _ -> + ok + end, + ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, + Dir, Packet, false) + end, + case Wra of + [] -> ok; + _ -> + MamEnabled = (State#state.config)#config.mam, + Id = case xmpp:get_subtag(Packet, #stanza_id{by = #jid{}}) of + #stanza_id{id = Id2} -> + Id2; + _ -> + p1_rand:get_string() + end, + NewPacket = wrap(From, State#state.jid, Packet, Node, Id), + NewPacket2 = xmpp:put_meta(NewPacket, in_muc_mam, MamEnabled), + ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, + Wra, NewPacket2, true) + end. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Detect messange stanzas that don't have meaningful content From a07029dcad76294a749d74946cae670a8cf3c12d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 13 Jul 2021 17:56:16 +0200 Subject: [PATCH 025/105] Fix previous commit to pass all tests --- src/ejabberd_router_multicast.erl | 8 ++++---- src/mod_muc_room.erl | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/ejabberd_router_multicast.erl b/src/ejabberd_router_multicast.erl index 6e0201c90..54abf671c 100644 --- a/src/ejabberd_router_multicast.erl +++ b/src/ejabberd_router_multicast.erl @@ -217,12 +217,12 @@ update_to_in_wrapped(Packet, To) -> } = PSItems } = PSEvent]} -> Internal2 = xmpp:set_to(Internal, To), - PSItem2 = PSItem#ps_item{sub_els = Internal2}, - PSItems2 = PSItems#ps_items{items = PSItem2}, + PSItem2 = PSItem#ps_item{sub_els = [Internal2]}, + PSItems2 = PSItems#ps_items{items = [PSItem2]}, PSEvent2 = PSEvent#ps_event{items = PSItems2}, - Packet#message{sub_els = [PSEvent2]}; + xmpp:set_to(Packet#message{sub_els = [PSEvent2]}, To); _ -> - Packet + xmpp:set_to(Packet, To) end. %%-------------------------------------------------------------------- diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index 1c9710c60..eb12a9470 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -4626,7 +4626,7 @@ store_room_no_checks(StateData, ChangesHints) -> send_subscriptions_change_notifications(From, Nick, Type, State) -> {WJ, WN} = maps:fold( - fun({WithJid, WithNick} = Res, #subscriber{nodes = Nodes, jid = JID}, _) -> + fun(_, #subscriber{nodes = Nodes, jid = JID}, {WithJid, WithNick} = Res) -> case lists:member(?NS_MUCSUB_NODES_SUBSCRIBERS, Nodes) of true -> case (State#state.config)#config.anonymous == false orelse @@ -4640,7 +4640,7 @@ send_subscriptions_change_notifications(From, Nick, Type, State) -> false -> Res end - end, ok, State#state.subscribers), + end, {[], []}, State#state.subscribers), if WJ /= [] -> Payload1 = case Type of subscribe -> #muc_subscribe{jid = From, nick = Nick}; @@ -4779,7 +4779,7 @@ send_wrapped_multiple(From, Users, Packet, Node, State) -> not lists:member(303, Codes)) of true -> ejabberd_router_multicast:route_multicast( - State#state.jid, State#state.server_host, Dir, + From, State#state.server_host, Dir, #presence{id = p1_rand:get_string(), type = unavailable}, false); false -> @@ -4791,7 +4791,7 @@ send_wrapped_multiple(From, Users, Packet, Node, State) -> _ -> ok end, - ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, + ejabberd_router_multicast:route_multicast(From, State#state.server_host, Dir, Packet, false) end, case Wra of @@ -4804,7 +4804,7 @@ send_wrapped_multiple(From, Users, Packet, Node, State) -> _ -> p1_rand:get_string() end, - NewPacket = wrap(From, State#state.jid, Packet, Node, Id), + NewPacket = wrap(From, undefined, Packet, Node, Id), NewPacket2 = xmpp:put_meta(NewPacket, in_muc_mam, MamEnabled), ejabberd_router_multicast:route_multicast(State#state.jid, State#state.server_host, Wra, NewPacket2, true) From 5beaf50c6799f87748ce68380fd4f2acbe773fac Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 13 Jul 2021 20:43:44 +0200 Subject: [PATCH 026/105] Fix spec: xmpp:set_from_to/3 allows undefined as second argument --- src/mod_muc_room.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index eb12a9470..fc03e50ef 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -4731,7 +4731,7 @@ send_wrapped(From, To, Packet, Node, State) -> ejabberd_router:route(xmpp:set_from_to(Packet, From, To)) end. --spec wrap(jid(), jid(), stanza(), binary(), binary()) -> message(). +-spec wrap(jid(), undefined | jid(), stanza(), binary(), binary()) -> message(). wrap(From, To, Packet, Node, Id) -> El = xmpp:set_from_to(Packet, From, To), #message{ From e22ed8081af971d5e875f6ad4a0a9714b82c67e2 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 8 Jul 2021 12:48:19 +0200 Subject: [PATCH 027/105] Provide proper error message when create_room fails with invalid_service --- src/mod_muc_admin.erl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 47b28f7a8..88ae041f9 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -700,6 +700,8 @@ create_room_with_opts(Name1, Host1, ServerHost1, CustomRoomOpts) -> {error, _} -> throw({error, "Unable to start room"}) end; + invalid_service -> + throw({error, "Invalid 'service'"}); _ -> throw({error, "Room already exists"}) end From 27c69f263cf2c193b7ce052f54bccfe0cceafcca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 14 Jul 2021 13:58:03 +0200 Subject: [PATCH 028/105] Allow multicast hook registering by host --- src/ejabberd_router_multicast.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_router_multicast.erl b/src/ejabberd_router_multicast.erl index 54abf671c..e97ccb837 100644 --- a/src/ejabberd_router_multicast.erl +++ b/src/ejabberd_router_multicast.erl @@ -39,7 +39,7 @@ %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, - terminate/2, code_change/3]). + terminate/2, code_change/3, update_to_in_wrapped/2]). -include("logger.hrl"). -include_lib("xmpp/include/xmpp.hrl"). @@ -61,7 +61,7 @@ start_link() -> -spec route_multicast(jid(), binary(), [jid()], stanza(), boolean()) -> ok. route_multicast(From0, Domain0, Destinations0, Packet0, Wrapped0) -> {From, Domain, Destinations, Packet, Wrapped} = - ejabberd_hooks:run_fold(multicast_route, {From0, Domain0, Destinations0, Packet0, Wrapped0}, []), + ejabberd_hooks:run_fold(multicast_route, Domain0, {From0, Domain0, Destinations0, Packet0, Wrapped0}, []), case catch do_route(Domain, Destinations, xmpp:set_from(Packet, From), Wrapped) of {'EXIT', Reason} -> ?ERROR_MSG("~p~nwhen processing: ~p", From 3afaacab76e271912ff1f5650b5d22e59bda9274 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 17:19:32 +0200 Subject: [PATCH 029/105] With the recent changes it seems mod_mix supports 0.14.1 (#3634) --- src/mod_mix.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod_mix.erl b/src/mod_mix.erl index dfe81af58..82b5e41a4 100644 --- a/src/mod_mix.erl +++ b/src/mod_mix.erl @@ -24,7 +24,7 @@ -module(mod_mix). -behaviour(gen_mod). -behaviour(gen_server). --protocol({xep, 369, '0.13.0'}). +-protocol({xep, 369, '0.14.1'}). %% API -export([route/1]). From e2aaca7cdd9acf0d1d1f87677df2e307b96acda0 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:07:22 +0200 Subject: [PATCH 030/105] Update mix applications list to fix error "p1_utils is listed as both..." --- mix.exs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/mix.exs b/mix.exs index 74ac4bf06..e5184fdc2 100644 --- a/mix.exs +++ b/mix.exs @@ -25,12 +25,13 @@ defmodule Ejabberd.Mixfile do def application do [mod: {:ejabberd_app, []}, - applications: [:kernel, :stdlib, :sasl, :ssl], - included_applications: [:lager, :mnesia, :inets, :p1_utils, :cache_tab, - :fast_tls, :stringprep, :fast_xml, :xmpp, :mqtree, - :stun, :fast_yaml, :esip, :jiffy, :p1_oauth2, - :eimp, :base64url, :jose, :pkix, :os_mon, :yconf, - :p1_acme, :idna] + extra_applications: [:mix], + applications: [:idna, :inets, :kernel, :sasl, :ssl, :stdlib, + :base64url, :fast_tls, :fast_xml, :fast_yaml, :jiffy, :jose, + :p1_utils, :stringprep, :stun, :yconf], + included_applications: [:lager, :mnesia, :os_mon, + :cache_tab, :eimp, :esip, :mqtree, :p1_acme, + :p1_oauth2, :pkix, :xmpp] ++ cond_apps()] end @@ -140,8 +141,7 @@ defmodule Ejabberd.Mixfile do {config(:mysql), :p1_mysql}, {config(:odbc), :odbc}, {config(:pgsql), :p1_pgsql}, - {config(:sqlite), :sqlite3}, - {config(:zlib), :ezlib}], do: + {config(:sqlite), :sqlite3}], do: app end From 94949c96178965908472c1fff9c315a5e05eba58 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:10:18 +0200 Subject: [PATCH 031/105] Sort package files --- mix.exs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index e5184fdc2..c0fb3831a 100644 --- a/mix.exs +++ b/mix.exs @@ -147,7 +147,9 @@ defmodule Ejabberd.Mixfile do defp package do [# These are the default files included in the package - files: ["lib", "src", "priv", "mix.exs", "include", "README.md", "COPYING", "rebar.config", "rebar.config.script"], + files: ["include", "lib", "priv", "src", + "COPYING", "README.md", + "mix.exs", "rebar.config", "rebar.config.script"], maintainers: ["ProcessOne"], licenses: ["GPLv2"], links: %{"Site" => "https://www.ejabberd.im", From a00a11e38a6c7078521436ca8996230904746af3 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:23:03 +0200 Subject: [PATCH 032/105] Add vars.config to package files: version and cond_deps use it --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index c0fb3831a..a7d48ea9b 100644 --- a/mix.exs +++ b/mix.exs @@ -149,7 +149,7 @@ defmodule Ejabberd.Mixfile do [# These are the default files included in the package files: ["include", "lib", "priv", "src", "COPYING", "README.md", - "mix.exs", "rebar.config", "rebar.config.script"], + "mix.exs", "rebar.config", "rebar.config.script", "vars.config"], maintainers: ["ProcessOne"], licenses: ["GPLv2"], links: %{"Site" => "https://www.ejabberd.im", From df8b0cb1a51a977622c109ff37364a9b7e2f959c Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:23:21 +0200 Subject: [PATCH 033/105] Add sql to package files (#3251) --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index a7d48ea9b..e029c911b 100644 --- a/mix.exs +++ b/mix.exs @@ -147,7 +147,7 @@ defmodule Ejabberd.Mixfile do defp package do [# These are the default files included in the package - files: ["include", "lib", "priv", "src", + files: ["include", "lib", "priv", "sql", "src", "COPYING", "README.md", "mix.exs", "rebar.config", "rebar.config.script", "vars.config"], maintainers: ["ProcessOne"], From 72e069d9ec0f6402a74781a47afc441263d8e19d Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 20:54:56 +0200 Subject: [PATCH 034/105] Get ejabberd version from vars.config --- mix.exs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index e029c911b..669401560 100644 --- a/mix.exs +++ b/mix.exs @@ -3,7 +3,7 @@ defmodule Ejabberd.Mixfile do def project do [app: :ejabberd, - version: "21.4.0", + version: version(), description: description(), elixir: "~> 1.4", elixirc_paths: ["lib"], @@ -17,6 +17,14 @@ defmodule Ejabberd.Mixfile do deps: deps()] end + def version do + case config(:vsn) do + :false -> "0.0.0" # ./configure wasn't run: vars.config not created + '0.0' -> "0.0.0" # the full git repository wasn't downloaded + vsn -> String.replace(:erlang.list_to_binary(vsn), ".0", ".") + end + end + def description do """ Robust, Ubiquitous and Massively Scalable Messaging Platform (XMPP, MQTT, SIP Server) From 8ca12d4d23854596942035a7497a827800d02294 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:25:01 +0200 Subject: [PATCH 035/105] Add support to build release with mix --- .gitignore | 1 + mix.exs | 75 +++++++++++++++++++++++++++++++++++++++++++++++++ rel/vm.args.mix | 14 +++++++++ 3 files changed, 90 insertions(+) create mode 100644 rel/vm.args.mix diff --git a/.gitignore b/.gitignore index 801f7f4e8..7433e2cf9 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,7 @@ /ejabberdctl /ejabberdctl.example /rel/ejabberd/ +/rel/overlays/ /src/eldap_filter_yecc.erl /vars.config /dialyzer/ diff --git a/mix.exs b/mix.exs index 669401560..293c749a0 100644 --- a/mix.exs +++ b/mix.exs @@ -13,6 +13,7 @@ defmodule Ejabberd.Mixfile do erlc_paths: ["asn1", "src"], # Elixir tests are starting the part of ejabberd they need aliases: [test: "test --no-start"], + releases: releases(), package: package(), deps: deps()] end @@ -180,6 +181,80 @@ defmodule Ejabberd.Mixfile do end end + defp releases do + maybe_tar = case Mix.env() do + :prod -> [:tar] + _ -> [] + end + [ + ejabberd: [ + include_executables_for: [:unix], + # applications: [runtime_tools: :permanent] + steps: [©_extra_files/1, :assemble | maybe_tar] + ] + ] + end + + defp copy_extra_files(release) do + assigns = [ + version: version(), + rootdir: config(:rootdir), + installuser: config(:installuser), + libdir: config(:libdir), + sysconfdir: config(:sysconfdir), + localstatedir: config(:localstatedir), + docdir: config(:docdir), + erl: config(:erl), + epmd: config(:epmd), + bindir: Path.join([config(:release_dir), "releases", version()]), + release_dir: config(:release_dir), + erts_vsn: "erts-#{release.erts_version}" + ] + ro = "rel/overlays" + File.rm_rf(ro) + + System.shell("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.template > ejabberdctl.example1") + Mix.Generator.copy_template("ejabberdctl.example1", "ejabberdctl.example2", assigns) + System.shell("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.example2 > ejabberdctl.example3") + System.shell("sed -e 's|ERLANG_NODE=ejabberd@localhost|ERLANG_NODE=ejabberd|g' ejabberdctl.example3 > ejabberdctl.example4") + System.shell("sed -e 's|INSTALLUSER=|ERL_OPTIONS=\"-setcookie \\$\\(cat \"\\${SCRIPT_DIR%/*}/releases/COOKIE\")\"\\nINSTALLUSER=|g' ejabberdctl.example4 > ejabberdctl.example5") + Mix.Generator.copy_template("ejabberdctl.example5", "#{ro}/bin/ejabberdctl", assigns) + File.chmod("#{ro}/bin/ejabberdctl", 0o755) + + File.rm("ejabberdctl.example1") + File.rm("ejabberdctl.example2") + File.rm("ejabberdctl.example3") + File.rm("ejabberdctl.example4") + File.rm("ejabberdctl.example5") + + suffix = case Mix.env() do + :dev -> + Mix.Generator.copy_file("test/ejabberd_SUITE_data/ca.pem", "#{ro}/etc/ejabberd/ca.pem") + Mix.Generator.copy_file("test/ejabberd_SUITE_data/cert.pem", "#{ro}/etc/ejabberd/cert.pem") + ".example" + _ -> "" + end + + Mix.Generator.copy_file("ejabberd.yml.example", "#{ro}/etc/ejabberd/ejabberd.yml#{suffix}") + Mix.Generator.copy_file("ejabberdctl.cfg.example", "#{ro}/etc/ejabberd/ejabberdctl.cfg#{suffix}") + Mix.Generator.copy_file("inetrc", "#{ro}/etc/ejabberd/inetrc") + Mix.Generator.copy_template("rel/vm.args.mix", "#{ro}/etc/ejabberd/vm.args", assigns) + + Enum.each(File.ls!("sql"), + fn x -> + Mix.Generator.copy_file("sql/#{x}", "#{ro}/lib/ejabberd-#{release.version}/priv/sql/#{x}") + end) + + Mix.Generator.create_directory("#{ro}/var/lib/ejabberd") + + case Mix.env() do + :dev -> System.shell("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh") + _ -> :ok + end + + release + end + end defmodule Mix.Tasks.Compile.Asn1 do diff --git a/rel/vm.args.mix b/rel/vm.args.mix new file mode 100644 index 000000000..711bd3189 --- /dev/null +++ b/rel/vm.args.mix @@ -0,0 +1,14 @@ +## Customize flags given to the VM: https://erlang.org/doc/man/erl.html +## -mode/-name/-sname/-setcookie are configured via env vars, do not set them here + +-boot ../releases/<%= @version %>/start_clean +-boot_var RELEASE_LIB ../lib + +## Number of dirty schedulers doing IO work (file, sockets, and others) +##+SDio 5 + +## Increase number of concurrent ports/sockets +##+Q 65536 + +## Tweak GC to run more often +##-env ERL_FULLSWEEP_AFTER 10 From f35d3045820036e11548062c706782e8364afc6c Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:28:33 +0200 Subject: [PATCH 036/105] Minor mix.exs definitions copied from the template file --- mix.exs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 293c749a0..a8783857a 100644 --- a/mix.exs +++ b/mix.exs @@ -1,4 +1,4 @@ -defmodule Ejabberd.Mixfile do +defmodule Ejabberd.MixProject do use Mix.Project def project do @@ -13,6 +13,8 @@ defmodule Ejabberd.Mixfile do erlc_paths: ["asn1", "src"], # Elixir tests are starting the part of ejabberd they need aliases: [test: "test --no-start"], + start_permanent: Mix.env() == :prod, + language: :erlang, releases: releases(), package: package(), deps: deps()] From 1fd452dca95e79f07d1147440d7b7013871f13cc Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:30:36 +0200 Subject: [PATCH 037/105] Update setup-dev.sh to work perfectly both with rebar3 and mix --- rel/setup-dev.sh | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh index cd0f90d9e..44638abc9 100755 --- a/rel/setup-dev.sh +++ b/rel/setup-dev.sh @@ -1,32 +1,34 @@ echo -n "===> Preparing dev configuration files: " -PWD=`pwd` -REL_DIR=$PWD/_build/dev/rel/ -CON_DIR=$REL_DIR/ejabberd/etc/ejabberd/ -BIN_DIR=$REL_DIR/ejabberd/bin/ +PWD_DIR=`pwd` +REL_DIR=$PWD_DIR/_build/dev/rel/ejabberd/ +CON_DIR=$REL_DIR/etc/ejabberd/ +BIN_DIR=$REL_DIR/bin/ CTLPATH=$BIN_DIR/ejabberdctl -[ ! -f "ejabberdctl" ] \ +[ -z "$REL_DIR_TEMP" ] && REL_DIR_TEMP=$REL_DIR +CON_DIR_TEMP=$REL_DIR_TEMP/etc/ejabberd/ +BIN_DIR_TEMP=$REL_DIR_TEMP/bin/ + +[ ! -e "ejabberdctl" ] \ && echo -n "ejabberdctl " \ && ln -s $CTLPATH ejabberdctl -(cd $BIN_DIR && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=`pwd`|g" ejabberdctl) +# (cd $BIN_DIR_TEMP && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=$REL_DIR|g" ejabberdctl) -cd $CON_DIR +cd $CON_DIR_TEMP -[ ! -f "ejabberd.yml" ] \ +sed -i "s|# certfiles:|certfiles:\n - $CON_DIR/cert.pem|g" ejabberd.yml.example +sed -i "s|certfiles:|ca_file: $CON_DIR/ca.pem\ncertfiles:|g" ejabberd.yml.example +sed -i 's|^acl:$|acl:\n admin: [user: admin]|g' ejabberd.yml.example +[ ! -f "$CON_DIR/ejabberd.yml" ] \ && echo -n "ejabberd.yml " \ - && mv ejabberd.yml.example ejabberd.yml \ - && sed -i "s|# certfiles:|certfiles:\n - $CON_DIR/cert.pem|g" ejabberd.yml \ - && sed -i "s|certfiles:|ca_file: $CON_DIR/ca.pem\ncertfiles:|g" ejabberd.yml \ - && sed -i 's|^acl:$|acl:\n admin: [user: admin]|g' ejabberd.yml \ - || rm ejabberd.yml.example + && mv ejabberd.yml.example ejabberd.yml -[ ! -f "ejabberdctl.cfg" ] \ +sed -i "s|#' POLL|EJABBERD_BYPASS_WARNINGS=true\n\n#' POLL|g" ejabberdctl.cfg.example +[ ! -f "$CON_DIR/ejabberdctl.cfg" ] \ && echo -n "ejabberdctl.cfg " \ - && mv ejabberdctl.cfg.example ejabberdctl.cfg \ - && sed -i "s|#' POLL|EJABBERD_BYPASS_WARNINGS=true\n\n#' POLL|g" ejabberdctl.cfg \ - || rm ejabberdctl.cfg.example + && mv ejabberdctl.cfg.example ejabberdctl.cfg echo "" echo "===> Now you can start this ejabberd dev with: ./ejabberdctl live" From 4c5641a6489d0669b4220b5ac759a4e1271af3b5 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 21:31:31 +0200 Subject: [PATCH 038/105] Add support for mix to: ./configure --enable-rebar=mix --- Makefile.in | 44 +++++++++++++++++++++++++++++++++++--------- configure.ac | 2 +- 2 files changed, 36 insertions(+), 10 deletions(-) diff --git a/Makefile.in b/Makefile.in index 0079a805d..c39195ac7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,4 +1,5 @@ REBAR = @ESCRIPT@ @rebar@ +MIX = @rebar@ INSTALL = @INSTALL@ SED = @SED@ ERL = @ERL@ @@ -97,17 +98,38 @@ ifneq ($(INSTALLGROUP),) G_USER=-g $(INSTALLGROUP) endif -IS_REBAR3:=$(shell expr `$(REBAR) --version | awk -F '[ .]' '/rebar / {print $$2}'` '>=' 3) +ifeq "$(MIX)" "mix" +IS_REBAR:=6 +else +IS_REBAR:=$(shell expr `$(REBAR) --version | awk -F '[ .]' '/rebar / {print $$2}'`) +endif -ifeq "$(IS_REBAR3)" "1" +ifeq "$(IS_REBAR)" "6" + REBAR=$(MIX) + SKIPDEPS= + LISTDEPS=deps.tree + UPDATEDEPS=deps.update + DEPSPATTERN="s/.*─ \([a-z0-9_]*\) .*/\1/p;" + DEPSBASE=_build + DEPSDIR=$(DEPSBASE)/dev/lib + GET_DEPS= deps.get + CONFIGURE_DEPS= + EBINDIR=$(DEPSDIR)/ejabberd/ebin + REBARREL=MIX_ENV=prod $(REBAR) release --overwrite + REBARDEV=MIX_ENV=dev $(REBAR) release --overwrite +else +ifeq "$(IS_REBAR)" "3" SKIPDEPS= LISTDEPS=tree UPDATEDEPS=upgrade DEPSPATTERN="s/ (.*//; /^ / s/.* \([a-z0-9_]*\).*/\1/p;" DEPSBASE=_build DEPSDIR=$(DEPSBASE)/default/lib + GET_DEPS= get-deps + CONFIGURE_DEPS=$(REBAR) configure-deps EBINDIR=$(DEPSDIR)/ejabberd/ebin - REBARREL=as prod tar + REBARREL=$(REBAR) as prod tar + REBARDEV=REBAR_PROFILE=dev $(REBAR) release else SKIPDEPS=skip_deps=true LISTDEPS=-q list-deps @@ -115,8 +137,12 @@ else DEPSPATTERN="/ TAG / s/ .*// p; / REV / s/ .*// p; / BRANCH / s/ .*// p;" DEPSBASE=deps DEPSDIR=$(DEPSBASE) + GET_DEPS= get-deps + CONFIGURE_DEPS=$(REBAR) configure-deps EBINDIR=ebin - REBARREL=generate + REBARREL=$(REBAR) generate + REBARDEV= +endif endif all: deps src @@ -127,10 +153,10 @@ $(DEPSDIR)/.got: rm -rf $(DEPSDIR)/.got rm -rf $(DEPSDIR)/.built mkdir -p $(DEPSDIR) - $(REBAR) get-deps && :> $(DEPSDIR)/.got + $(REBAR) $(GET_DEPS) && :> $(DEPSDIR)/.got $(DEPSDIR)/.built: $(DEPSDIR)/.got - $(REBAR) configure-deps + $(CONFIGURE_DEPS) $(REBAR) compile && :> $(DEPSDIR)/.built src: $(DEPSDIR)/.built @@ -360,19 +386,19 @@ distclean: clean clean-rel [ ! -f ../ChangeLog ] || rm -f ../ChangeLog rel: - $(REBAR) $(REBARREL) + $(REBARREL) DEV_CONFIG = _build/dev/rel/ejabberd/etc/ejabberd/ejabberd.yml dev $(DEV_CONFIG): - REBAR_PROFILE=dev rebar3 release + $(REBARDEV) TAGS: etags *.erl Makefile: Makefile.in -ifeq "$(IS_REBAR3)" "1" +ifeq "$(IS_REBAR)" "3" dialyzer: $(REBAR) dialyzer else diff --git a/configure.ac b/configure.ac index c08075e52..1b0500e0d 100644 --- a/configure.ac +++ b/configure.ac @@ -30,7 +30,7 @@ fi AC_ARG_WITH(rebar, AC_HELP_STRING([--with-rebar=bin], - [use rebar specified]), + [use the rebar/rebar3/mix binary specified]), [if test "$withval" = "yes" -o "$withval" = "no" -o "X$with_rebar" = "X"; then rebar="rebar" else From fcbd72f2d7fa451de8d9e2422df8e5405d3633b2 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 16 Jul 2021 09:52:47 +0200 Subject: [PATCH 039/105] Add rebar3 3.15.2 Reference: https://ferd.ca/you-ve-got-to-upgrade-rebar3.html --- rebar3 | Bin 0 -> 952373 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100755 rebar3 diff --git a/rebar3 b/rebar3 new file mode 100755 index 0000000000000000000000000000000000000000..c052f9ac6c44dbe10f6941875c7b0f39cefe106e GIT binary patch literal 952373 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%0DcIJ55e8%)ZG*NYG0_Hy@7vX|= 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%0D`7A)YUZ#>g}OnD}$_4HI18=X|jsY){f2*x&*f; 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�fP=olzOi>sI>|%h*3Uz}r&`EYW5oKs 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

`2NQK0`4$o{c~%Bl*iUnG)J#{*e=w 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

N7bTHhjMiFfNc7ptR1NddJ8D9A3v??TRp(? zhIfgs@%OA%yIn*Ktujy_ui>n8s5Se})IFe5iJ=>G`>nd~Z*)_VR{s5Z9OlxYEoMwC zoACPX%uD`vk0|zjbIe|A;izxTYmn4T`!>PpOR-;e-rDF;q6{P?5K34JNm%RYzoiOa zV(GABrh5p-eh3FYg!9ncnQeCs@KK6v8LmioBjFNfnkh_Nka>d^l%(+z`wjYyJ}NyP7AM znkVF%C&8Dw@@I?><IRSwa-}b1(QACj{2<9M(7!_x%@-uSO%bC_>3;NEzy%v+D(pNfLdFLfIeNO|2k3tBaMBF`9KmuARP?US=x z$($D){W@S9IbBdm`&{*E8wpVCD_eV+S}nrxtL>G8!gTklSN&_aGhMGd1F!7Q1ls&h zYxo7u)Hi8NWZ!>F+~6GeCL0`a6Rr0doI#tqLL)`(eE$#l%%6Fg`=6$K+xoY^#6D#G z9{>OV|Nli*cR1Dm<24d5gp7=9B=c=uE8OfoF3Jjt+ZD3q+I#P^S0W=bd*x$?YlZCW z9V*#m^X;GC^E=OT#`B!>|2g0t^J?#GhT8G=iTkcR-YhTCjOUJBK3k}KyN8mD>d-1_ zNpk5XUkxZnOr^+%G5XoE`+X({4^PPR8i{7;A6V3R~DW)BCa1|vkw~|amvIJ zS!%p%NwOK1aIiHdY$}LL{R^{_zhN~R2@obZhY#Fd2vBsj8ovslI8o@kAPtimlr<6Y z=TvDO<|(I_WotWoXWyAUnsfXPAD-Q5aiE@A0aw14>qbd0)0H4Ee$>cO=jR9%~Zus>|Lu7~Zau#gzH$5`>Sj~4{cI{4cy z4!(vb2SaGyp4zrRf$K1xGm`!4czAGJP?$KP?Th3wH`%pWDYe=3MQg=hA1?2e2~7$e zfz#!go0#4aSqk2>kgjY|+OH#AL)#nn2L8~_U{s)mC34j?eY*>dJ3LS})?F{L zyR_$im%@N4>VfY0Ysl{hk^}defnq469X-k5Zw=!lzoTu}>SB`5pQ^>Pf-;mBph=Cl z(nUYbsaSkYJohth_GhJeWkWfgwE1u9x+tZ@^Eucr76w&O*zwqHtd`mpUYXtPTj5mc z?_OBqqgR6dAbOru2dN1e{5jG$;+y%z&b#`~7QZAWENWsP?*|dP@UA>j_kDBb5DK0v zlZWiiISkc@rSth1<+S62`zw=!g3<@#qq4V??&=hwX&E))=BiPrI@;`3M6@EI!{86c z`nw5aQ*)bt23+xuE&S38dSkGb7(# z+?Cc$32AbqNcvMhJx0omxx5c(D$qVpb=%KZYBBX-U=@lCd&^9F1WLb>l}M%~X;$LoAYH1;m~)iAAZMQfN` zl-0?xkI>B5p9m^${_`8-;I$9k{Of%EH^b2fQV5Wke|Uyi#zodvSc) zIVf8s;T_T}9nwoTomKU0r1FzbzMUoFX2D@2XPvNL=%$_rv)e{i4KE9e$c8>a3bJPK{8P`%hit5>LIm8oX^ zsBv=^FzGe@tW9V0`&L?c%=6T0;V?)@S=T(e3`_0Yl1W+AOBwfjuF0y!=JxWa2~%3Eb8?>q9NL$ zA+ES_dGxdE_N^1*fhiKR#T2#a6x*j!wD^m2CHDJ%1s0ix3aL6U!(6e7-~GXBJSAbJ z7KiQ8-Hc6c+bK;9+h*i#(n&63C3#6ljN%3%9_3vJzH5&L1AV5h|5DF09uK@eX_|dB zV#e=eKDQoeG82%>-nNUWKk4@HED$I;->nq5ql@V3*?&W<8s|?Riw+M(tHg<(9~KCu z8Z8D5ouuz4;X87aZ~JtZKsdWy~Pw1{)Py%7anY*~Y-F zwl6^u%GhFBg^opX$DB=fSHN$N9{%ISD*ACxUR|~oF}kH|&KL8dTUpM=UO0y0lQPld zg8>+>ex5yi3iGYPjk0s|LVi3Zs*z9SA+5=va=}TA0_#V+YW`4uGM~`nLvh50Q*^Ia zm~a0;3z(as2yi3n&Vpeu0;-VPr(kbsHLg-3?PGH#}dkyw`n%-Mk4941r`MrXg+0FbNqM9 zs%v2e*VpRvxC2i}2J(kRI!UiLjFWL$8lv<2wxZYbkJpP6)<1twn|p?Gq^G~RbU*h( z#aG45=oA_!h1ViXk9SAvGX=XtAG!E49i3}c{m|+l;-TLgk|LY8Us$|(8n3A2Ya(%a zD%P;?gcPfw9IgEOfR(o~KIPz7)blZa@0!GI*YePD^Z09~x%=KERiv4WJnWSSJ?kNQ z2ZwRwCR*K#Bl*+o<9T@3<`T4JD`JUa`-&+m9jfGysw`~5F4K>;$0qZwfBT%SZcHnZ zsxo8FNzuxzcZ4)y8RPO`a8SXxh;0&4xo- zsZUotxAbS}*7R7o-eer%g{(Q@zH1gXvPr`_*-JZKVzF+)L#Cfko%xNPza>9+RAQ^L90=yvDH)cl;dGrOY38_q0~RIgpLD-L3z+TG6lnroQt7 zd)GbMS!icCTX*^!#+SmM>5`)2e5S)|Y1Yi1b|$9?SvsWGVCD~hP34z-z23ePS4X{5 zmie0_8@Xni?5Jz{AamH|Ftw{$3gQ0qE$2G|CF>yU1fGIfWL!zuaA*9(d>boJ(1#$1UCXJ7s&Cw{^K=aOT5s=9T|x zMkBA4jC&fJ?P0f!m4(y#x zGeF-fsx|Ri#TbYQ3jE9tqU-NnPP2U%)}ET(FqRKTd{o z)^l?FMoBoIg;g;Rt~a*p(#252e^pGVx-Pr=`G{?Qt6os`oM}+7l=IX)!oogY78z5+ zr#cTi4LZF&9h}pDyQ2TLO-c=`e+nip%XNP3L{P7#*Z)M-GHh5A(>oo>_>#@}&0C^N zm0z%F!H=AQLoXai=QwSC8sPOyiUE`A_nw9h=CCoI0xNVbbDLmvsQre5m=~7={ zesaXh3B?=0`;Qm zYN|23QU{6Vql&?$GT7!HtoKy(i7#ms%O<JqQZESRRx3Z+$1DY&31#nG(lN5FI(+P?&DKAK@xFnZ6VV zuNtJFMC2@&a`Ty5Bh0Vu&wCiQ$>dMqf`zbB-wYdfeT3oyTS9FS9^$bx;&K0vK921l zQr-Pt#8=U&?;mdxbJWiluz1RFBp&HYsmog8{wfkWdE>tkIlSOwe55Mr%JBV)K5F~b zs%-xDs(F(|&3dAHO|!&|>2(OD?Y9S7{mp!b#R8{y$|ZOM?hSq2Pofz+zc!xBznoz% z+s$6LmA1=DmbF7Im6l~Jr%|i*xcoi7a-xb688SK0C3;}?x>sMl#%^Wbl-`oCl4bP?um8s!_K zzUsJ}75?7a470bn#?Ft%#lIZ&!F`n6=98e2xofl2x)U;?d4E|c>&aQm$!7i~p9vZEoJZ_R+dO&a z@KCx_lEuyT7dj>d6N5myC#_?uq&?>WU;8_n4UG%-pq#F%A871DDp$JY2Tja(U8OtS zq&r=ub&aRk^h1v&W7(WDn8P^Yh%;(Bo3sqPBfV-h?a#SKLK0mx?{Cs^ZKjJBGRLs! z#kmOet_v9m*!+u!63$YNn$iNE{mzdH$G9#|%_ZVS?lVax0bh$1#Y!JUQf-0FE7%ue__$Q28O{17zJZs987>o@EuHnX)p(7!4g;o>tGM; zgG-1Lx(&%eUeF-q3;998kP4&v5Nd$_gF2v22n+Q<7LX;R2kAq^5Gf=Ii9sw7D+EEj5H)lU9DuhV7G!`#;0{tj zI`{z604oj>Ztdh?3CFlOI$C1j9!?lLIL6W(jS=}jLz%nT*jvCYEUnOP_O5Vy8}omS zy(ioS^Ae7+_e43lTVm|dUIPCV2j_oKO9KQH000080O)DBQeNX`wO1+t07x?c02%-Q z0CHt)crRsQX>KoaY#$abK3p3xHm-P<)v?p|6D= zi+&ivZ7yT8FlJY?$?mX==Q8aM!(7I-)nIO6-0Tjc*;M0Yv07k`?ahoH2-rpFc8tZU zHv+VCeow%>Y7Ni}e9d|^Lr()lPYueasWa8P)md## z28WvoB5H96qdc7VTv*&p$h5|jS8<^nRcC-e8xaZ@K&i<~>4d%NAiH0e#2IxEp^v(_?pyEC{V$d=u;&T2NAU959Q)xu~8H+8Pt69pUH zpn(#TUC$@hy_o@07LY_{tHC(hWT`c`7=hTx42n<`QIMflj96MqnmaJG*iC3WkZHEs zARsPQo0rLA2eQN19^A~Fm4P)GnkB#A<243n$#^tbjV)$|qcy6Yap*_f2gHm3h>eRu zNosGhw%B7-F(SaTyEZYldIro!#vwL7##|dZM+E~^F{A2QEVXD3P(FqhJ2UQo+5Qe1 z7vo-MgT$k(y0%zgkSxZTG9EGxAmd{Gpmh4lv>F+Kz$+Kl8!2#pUV^q9nnFmjq>D5} zE|imd<=H(7UAzv{Q92F$mFQgHPos086&NK{v2qt_ja*2pr(-G8u^tU3P()2v#M6|5 z#wdCN#;OWc0$~xY6M!ftNntfhyGVOUVY8aSQW$Oo6~$2T8jJ+I4z|ceIzS57tCwRb z%lY2rs80V7D^HT4jdGQ{Hz zAv_h}-DB6gNYBcJIO$2sX-q^@7~3NviP>txTa*H=Mb<_Uek9z^u< zF&y+D2kpaNbCG@r<9rcCO2pm+emTI#RZiqXzaNW3rXEHF7zak*M_n-@mvNy8X7SOvr9wP}#m4|qUr;I3 zL}1s6v!!PZ;F=qVJz+=R;koP7+8j3DyL-_B^e77lEH+WcH_X#m$M56 zyU<~~P^X;;6(EcILGZ)LL)>f*>q5064AaUm1wS1fiDtyj2PW=26%*oN;2d4Yv$#KS z4g}8O$wU;EflP7>LHH2^GMqhKZ`Ecux{g-T7s@TzL~g<2pkXl7i8OIW?2r7%h@*$yo+7V?- z4BA);l!IhV9<#)1pa4dD$O+sC&_GP4TV{KbXc}NsBxr63s%2o#+Tfs`(!@87a(FsY zT_hh;qOA<+Ts&gqcGyKxS%%6x|C63;YRR&M1LPJqFh!+Pn#*-SoKP!# zkVdHn%OtMhQWi24&18-tSKT6~mRu4{eq=Vk$ybJ!7qyBPQaDO(PYKM2ER2)+!1MqA_!v zRa4(?1w(d9C`v3bvXDNQSOn}*D%T82vMGYhXGBis7UoJiYKvn7i^~JHjL2Ll1ybEm zR22+VF@=;Qlm?q(7DSL1(Xf@s1jN%NC=P!IG0U9`%8d6??G3{yBYP0>CSxp>_8_W6 zgIQYAl_!{`IiW9v$k;`oN)G@bB`cIj{r-$3HUo0ORwNoJ7e_kQsVqK3?Ro>P%%N2( zj77CHz;T5~JV4Vqh4mAU4n{TGr_KpNRS{BgHq2uoqCV3aJj;bh*6eF_3 z)T69~E?OxUPm)=ZC=-wlFAGB#S%SL9M*nl%pn~|MBFX^n&^j5Sm{=$=p@Jj>5`D^h zF7Nn)g8~o(_8nmSCt6y}hfx=wDZ)yn(PQ8-6W}bdJs}z`ql6OSl@GtS1eEiSd;;oV zg?R9+7(yio@`neGR&OG3j&B)M0TzH82Z#-YXeo<5lXZMyk9!KrtMs^(xnoa%G=s1= zyZcWd;`;?%knoEo8pF{;ln)Pz!FkOPrE{mVs^x5768Mio$|Dvux#kR>9J(4%=VTbm zw3IZHnu5eZai~YLGR)sc1uO?VC!ZL^c0sK|bLywHUWuep>Agz9U0IHT2fVF301PtR z{B|%;dem_TLVttkZ&z6m8V+PBh2xfiZy*Ct1)bW-5g*tU4~Q`MJS8o``BG>tq60PV z4H4*ha^i!uGFZA-p_?ZGin}3ALC6VeuF^g2MQK6A(J& z4G%prFEo3UKbK%V^>MR}}Zg34f1}wid+p7DeH-sx}$4Y3!jH#*IsTPmeJz`g&rV2#=2iEOvT$)b@P*8FPjedC0L(N2e*r!R&?an_&2VC$D<{ z%lX0kJRR{92vNy6_9O@OI@5NI1zpldw=i#)Abji~?XkX_d(5fhjgRVb`Swl)YeGFC z6q{Y;7#K%}jwXVtGohK9cbbcB{q4l;aQfJM*QK*%Z)F===gyyAeEE+S+wv$lAIrMC zlp*?P#$4==`Ts_p$~TFV<&|=`i*)M6&F}nuPFyWdwKvJH z>$p3{BhnL)#gMqi>P-Zt;9PWXcN~H%7tr?){^m zTNB&iedpGE@Ei0X>g}d{NIOY8pT9RO($m@5TvnF9Q*^&QGqZv4awfKr<9`uF+I?XNaH8hjRf{D%wCwX!Qu^(DE2 zK|a=WQLp5D=A%A6+=XcO4@LY(MDhAKwf+;r=nR*IWcTc$K6piq?{g_Va9S)V9+~K0 zeZQ68vP3@aV8e$YRwGQ!N-Q0ipyw|2Z^ne6^UU+GaJ>5HuQA)|U-*`t+8UWy#+4u$ zg?{4;zZhAwyuu?Jjn`{!%Pz-u&9hI`7`G|I$I9;Li%)_8s~8}^CrTiIB$VP;|H{jsYDW`Pb7bI?uV z7tZIGHAn4mj__)3-Jwjt%*;yjx&bd%B+RvM(3DB@>fSMM@5^Wf6;2+tX=041nPXK? z_}G1D*|Z90TKLh1{r0_L{9W>cT%ITm{sZq>C%_|FsYFhF*x|EQOV_4lR!4aI!}Mnj z>Bm@sncbPhgu8g`1`+D3D_s!n&+f`fum8)|v*`wg-sj27b+-8(+hra;hWU#Ac+crF zo#yglyP4}B((1BDkJ=0f+iRV~ravX+KW& z-mhO6G~^|SV>`BxANGB$4vhzcrOva#HHYPQg~}L^)q33R_Pgni6r{Ou-PK#FUz-ZI z;&5T6A3>b{^!j}!2enVByX8Fn-j7#RE6an1OMlYu^$C1i&F@HmuCLtw4Db8kIw|XA6syA%(8a|)Q=LchUA><%dyW704SlYv(>Q(yntAoS&s8e}2 zhW~!{xA3Rlo3g|KjVX@N>(#m&+fzvEi2FOtrgv<-b3Dxpp8n?R@!sI6PSVrvELVCP zTW^oC&k@mKq+0gXL)Dyeq#r(a|98uQ;gPxTjv)J_qhxd-z=(uC^@0C|#uVO*3Oq_X7UZ9^BpfDPMPF z-b)L;8`;iip!C7*1CEq`k#-LRq^i~8ap&3o363>n*wz~qPe zcr^8Yg?u!ud;ehcGVEghl~{kQ?dfaYHCLG$&a&QF{!{m0V*JJ4*nW!VWBt;mp4ChN zb?ud2rn!1iwIx^gX19CB)gOK^vv`Wn;Bi7WUm93Exvj@wmIPf!Wf#0?7 zeExBILr!cb%KEnj53}`q;>ZwaA`-qixs|=HmTUD*dR>F2xSVA>?gKX(*5voK+iJCc zCYJAPvMh1~O&jyAKPqo`!NBD)^^Cc}>{V*JyTez%Ev&4@P|7%b>{a!bNx#~Trm4hM#AzpfA~~z2>u#48hV#*86gOLo*4a0= z*oQ*3_7$^g9FGPAb^EIHopd$zFJU3bSk7+G*FHsYW1h6m6TAAdNZwyNZnT>Yi@~(a zx;MqG>1N>`5FS(gyge#yFZ(;fCtr>{7dOyeW#zzE}&mE zHRj9A9nAK{v!17xm3?*e(cLV9&zP>YEW6SBAhX;>UNLArKF5emH#|+XPAT}?`Z+YV zM>D#q(?|SX#13qK+WW_g*duSo!de+3@g}ULm+Clij(^Pa1CAMLdWa`D()}t!Xg|lp z-1ev4&0;b&iQs!s@I1;5XV&Z7x#H1uzS#+#%*%VO?D_o?zQcqVQ8#fU`>+c%wAYw>)F07&C;mM(x}PuAbroj9Y<>e$BUEjB-iod^r;l) z-*Ybg?iCzwIjX#^+hl!lQk|Q{o(#n?{~+mm?{i7q+j(u>hkTx8+Xxt~r@iNTl~pLJ z^}8>GjIIl0TJQbhM%f;nrL{^_ytl)6g*n7x*LWOO zs{57raMaDwa{dp8t8Dt7^7aniInm_p3-ad8Mt&Rr9GcEDou{3+*J0i#l6~IJe#Uyo zN6KM7u(BQX)F1IbtZR^B@>?Fp`CM|_tlt@v-}QjqU0m8L4~tq}y42nu{{Mwc0!yH@ zUo~#Y9(~ke#l!yPuH$dGzio(BJ#A@1`pV7R?QQeo-JIkxEA^a_jaBeC?y+L?pfP$_ATDHUi?!)B(;z zr5Q**f{oAgi6(>^aDW+hfEi^RX4*1h+7fc7(;k`y5Im>gJ)>$)@}tqFy=ClfGWD0! zFo;@Y7D62ilwS{&i?ZWj0c@+Bt3H6m5#}>n>eCpAFXps3acs^T#`#ff z*@;H=*B{o2_-(4qYibcm5Z{oP{mCc3IK8lEn$DXQ#?7xI%%5|yejorvreD(ps5|D7 zXJy7t1TLoGPcp@MwWUsU(>Z7Blrlg>TjHo8smIQgts`3nM3yIZUz`HD17t z)-hD3y~@|j=_)8^oqMDJHDE3jv))33Ue_>l*7^gm&ruao5_H=;V_A#W_v_i+vpRI| zO0(LRmG3za9PR}e3Kls3PQ%VvsuIfCXsa9BcX){hv@T%E7C7n_I2KZ9+h|pbZ2zJo z^x)1Iq0IoHP1+2#=xb7LJB;Q-H#?YMQdVAZc#=zBqDcUBKORRC#QUFQ_CDvlpYVlDX?xIv4Nbsa_1! zu3n+z9Z1v-ag7^e=tWnTu}>qm4T|&|Ux8v@rSlzmsaL;7ms|5v zZ+~|yum{ZriRkuYgOfqM4t?64PeX2+oes7UF6xX=PihaiQjmYHR3!ncBdB*;PS75) ze5KxW-&EUy8dw571P1qh1#uqy28nzE2$1k2`0#s*XAXNno2yFFAh<|)^pJrB*5&ZQj!u!3bYw@bp>!ZtW>=_*clKTSFbL^o` zuf2Tk_QW`>{1;ukA1Ux!`z>Q%%6bQ2Ju<1N=IkQ{7E$lgpq{iRsrKlyKz5iVP-GAq zGl9#(HTDRqKof=06NPaTg%OdiR(=3kP-^zZHAU)P|8lfOZ*I);CMu1n1$ZeRD(B0Q}JC7#gMS^3olaMtI=&pWm;kttBLf^ zh7Bb$+|nzh$L(madxj*$0C&u=`fIML({rrno^N>NE1UBzw@o3h%=GX5wWh~Dyk|Zt z?%VNPNq>WJAAxja0#Z5){uWUF6! z;H58f$1QQwSG(g@y5mN<_i(d~AXG)#3QYO^H8*C$_yV>FJo>Bf;74QJPwClD>&c(g zqo3BZYe_p20rZZ5pzpGrWl*jfE6XKHNH6f?x63mR-MG7yKxEyUl*PZmu%+^R*s~oE zZ+E2r#$=dmYLG6u3|YhINZWnV=T{?yvwnD9O(z!w;7kw7cIZ#rm!6lJTy7 zpzB|XfM0C*quN0Gon1T0Cv44(8E>=wk=eocN$a`&f#nMh6C0x);!7VH6m;pFP4AVn zvscc5=G*({eaq;HQ`gEDK26JJ55sK_!=&{&6vn=Rcz0Pgd0f6s7m2|mKfk6^Ug(t9 zQal$m=hdX=F;C@qU;p;Hx9xi8g8VXvB36YW@IVM>!!LiN{7m2IsGk*@5vaeV$WJoy zXMt>W6b_`E5Tu+oS{VeS`~ZnVbm%oD^FyV?yJU~5PxT!-6#N|@G%~t=q~k4WEHuk6 zLYW%e@E(m`qRP3sie%Xdz+_S7nTqeCeO3LI@vfD^0w?>*)+=|%#%ZI%Bj(2SUKFL) zn(=hFGEuRyV6{69=Z1}a)ne+V#kh9v5uAG?r~Ab4y=B|#l+Ev+-KJA}P?53=Ve7d8 z<;sOPmGQv(vTR>5w41QFXTP=d=b`kuDyUnNJJaw7PK(k9C42xYVgPIUZ%n{IrpG_8 z;&S>tG$>HERlf{%$75pH-kiii)Js{a zVpq4CO~SU6>%M=S2N5_h2D)QuF}?^-f(VkVj}Q(P8wf@gN1KblDp>Q_oI^ejn#Hu) zHu^sSax}kJ9M#-bv~FoRgc(tv{II#3zvg9rj2V6LSiUXZf6jvBlizk;NS@fYlJOL2 zHtsIQtY$Co>kpDdldWtu3HbKM6(4`~;Js@Ta`M7_ghD#9#({AX%1^Wy&qLh~v zz4&y5ofYxLuflhiKULx__D1@=Z;+jE*EK2LZ=kgesb>qQ=Sl)B<`Xkmtde3`oQEIw zFeEovhpKD&S%&3i%Llvn@a-ppkd(44SrX3#naZLiC%Xvu#b^$Xwr%X#^(7sUSQ{Y`>Z=G80a6$;-65-2+ zLF`B-tf&mwSWg-v8<+&-cUWPcFiCy~JxP!yyA*fkV z92>8wsQG>YW)AFF;Nh`K!8T#`iw-dwPu=}!4nANo{HW*xgce(D4>)upICM1rG>N)$Aplu_>~Zl!FyR-Y zzA$W5%qC2OxX0LxF;RL53yetwyyc%Do0|s26#k}e?1XCUqy(U?Mf)bvMg>PZ-uGp2 zK8z-2GRlr|N~o-XZcZ4674EYM;rw+<*itgMWjLo#XKZ9hgmag4!4(SWQ8DnMGWMbx z7>aPG;>Z0xaCqDx@AWV;>3ZKZFW#v$)~Q48*f|4E0AZp-f2u>D-l207bPL5yukJvv zE}>Hw@qlc4C;fXb9T`*>wohro9bdgDPyGX_xp8=UC$-)+^Y)6}s9JBb#;f$|A9C!4 zj#c21%;eiSb&p@&k)l6}%X8$dsv`n<`>$16d0m=o#|GadP)SB+gw!e&ivI9Gx0nRN zDr^~S%f1HK+*+3n2m2aM0M+=^NBr?eJQ^52j`pvRK-dcF^{FGRpI#8bbw`PHN2Yq% z58EwInO85bsd|L5SNm&+FKA?+q+|pEi}>Vu{PB5wiUMBx9o`{zl=G=iFOA}3w%2D` z(xrkYTze8Cw(YVvM6KzkJ@3UQRqbsa;B|WtO$s>yMma=zFLJQgjnU&#FdE~hge?kg zxRP{+whp--L5DmXjf|avL4}eTCEvFzrCGH}ZX)q(qbCR|Pj|elkPl zUkkV!vV|owa?S}ya>*uH<|Y6I*so#~kgs{aKI1;l8<#z^{Z1&Gm`@S2HCnrt(zwX{ z+<9NS#MA+?-q7_Q^miPAxftaLta3tcS)^c}C~H1l+&2Y}3~tkg;Vmi|p;4=h)CAqk zCEc>2Z{_Vh`jjQItxOqN9)i3m*3658@oywJ9dTGkqr)&wZ^qg(qgsc)tT7||ESUVC zP!u_mu*@*9IpGvHRjHXLkJMH-G$cdjS=@K&P1-T8E@=?Ux8ft@Z0-33?ZGkxWXMw% zJh)7~)jE5wjdTHr@^E}*DE=M%dGm%_`FqxdxCN+&jug?2!zPJthsB`0kJiV3v?tDw z5DgL7e&R6}N$$@aR%uceaJH}{%G}8>&oW(*K^)OJU2|fl=YW6v(x03;n2p9|SySl^ zdp9GrER!tcmUbe~f?ZpKZ^mq&LtF1|R%|rk+ROZrPLCC2l84)Il{?%ylf*GIx#O}o z*11#mz)Aa{?$z!0v0LQywPW{AXU?Eb=o6&~R$?e_i3#)rVi({AXF;KmkC@UmoeYcE zP>Z0@AU1S(yI9eP$s#X!A&lkjNqyQ3YbKUeBSI68%Q1>^kZ#P#9uDBO(aB1CN#Y*q zIaX;fk91i0Tcr^bOWGcR`%>6(Q;@i6%(&?z)~=ajb!DQg>4cDJ5Y|!i?JyMahd2?^ zTLI-QB0|scJqdbonY2w&1gne$6%;9fMF<{lw2dvJbNjlf@)tblrzn4F~QG!D~{ zM=8>uDX<)MG4tREOJ_|wxhj0}1($v$saG09aInMMl#HFp%pEGGUKDf@M!(b%7c}!O zDWfjv6>&zt))5yr^DZr;E-u=11B*0-St;S>`%ov@189FZqh_(YH@0B!p5P3QtwX$3 z9_Z9D_kw#op~CA3niftXv$x!Y99$Moe3s6&Bts)8{iR8wb!WhQQgjhG{P-V_t&n{? zJoCfE*KEjeQkTrTjZRgXuMswNxAva+#+d? zzH96)MT4ff-E3wa+Y2Jk*y6wSAQGSU!t%e%WVcljxv zp6SW`?dY*rXsX^{N?c*XTqB0MyZ|HJUO>?hNTCsY@Y@gy0i`MmzPjqWaB0<7htv($ z&%eMg^3O*dUsbe9Ww2B24I)?l-}h4M&<}`&j>)EsrJX4d5HRe&D$;)s|9=D3e-|(^ zz!G2!umd;(TmhZ{FMux~@IO>^KqMdv5C@0{BmzBj5}0 zmkNXmoC=f*f(k$dM}$gX0WigHDz#ewX-vIVsN*2vSx5HH8ON!`ESxUa<#NEVK6Z@Gjz3aVX(0@ z`gh01gTdL!n8C@$L;t_H(tn0R{}+zxe;SS&kMVCk@PL3Y|E2$(Wol$;_upx*4*v^A zt<`{3LD6oPV+LlHaF94-ONtN>00BPd0%5A4gsPyV21^p41e6365ffKv01XPMpo-R< zsiLAGbsHQO5swBDuMI%3qi%Ae9Q5|N-)h;{{`A(guI8+p=iB?6-};)FnF~2ou)v#t zugA0aO?h;ZVuh1D?K^ZdHn3XyrKlv7ND$qTH3-dMK#3Xw>zAfYdO8i>Vdlvok||Co zqdrjfNk}0_C4m{~H3ei4B1O7}AX_raHB@=)o6ZYIW1CQBSQ z;BrXCLr%ArfXwI=q>`hElTCtmQSms8$1Cl^OQ+qT5oTki?qj~#zpljnxSWi*9YvBI zfKMWa&diS@J-9yn)t}A5v;473LY>YScXDzw;T)n?!=%bO%v~n#GzM- zFji$l&K^;o0Q*Mn0}5aC0bJk@!u?GV*a|q?Ln0F@&?xr6UW~md8WvKF2y7xkB`#9& zC6k32B%&NLbZ}IG7YR+Fr2`XuuA~$Z$4WpZYnmWwV46c*7bp%)LPF0g1<-q_U1UsnkLlri2sMu4FQ+7!-vb0x$s-A zHC;*|VqCplq?^9WJDP9YHrI;u2fa-lCi`T3?43pXtMysI4oYNncd4-O3<}B=MX{@| zNe0HS5D{n7f*p?xr1e`0OfjvLP=a+R5J-_&^YW2{Sc zV9Ra5(Xos==yo7*2UhV%$c;})unJsgEC#`z#>BB#Ak4r~Kn>@hHe!Yw{+gz5>B8D2 zun_E(bA_ud&-@t^d(wG)1}ms(2W**cFpz$j=WY%OtSionPaoPs4tOb33PUv7lB-6-Z8`lE5p}xY6@W z28p!=Z%k;a;HMUb#2_P)HFF zh&+h0gjyGk@QBQaAc)Y2Ra*8yBMQ7@E7*VAR=(OBL%psUX7oAItZ=XskOT+`T?k>> z@Wbpsvl+afwa5`6Tk&z?)h=@b8vJm$f7sm=H;w&tm%U(}XYAjM{T98y#uh(+;lv;W z{(A~!Lx)#TE50d9y*_ zFG5BhY4q6zD`?K_Rzc+wTZ$#Zqq5zx^h3V$#^aOYzwwqTn@L!sEL~H)xornt$BSxDEafVAsukT{ zPO|EXupWb?yEOCN@CM1__J03`b*z0AY#;Ro= z8zQ<{SHrsPS~Z)y&pE&Oa>T|B-$zrMQFw*-SNJeqvxYy!ulBkMM!stg&zmhA+ji*u z)0L;ba52B6D{Ci+&p(TwOjLOSR5)3lXraSGd~ zOdke+X|cIT@seyY&9rc*{xm2(-*&l*P0!(X}2tH)!9>#VbMb<$X^su zp$0eQQ}{zyt)x_Izgl3G2Qq}VpGgmVat_EQK`1JPV6&LYT_RcMC6~_{{B?_rPz!z> zKzPaI6G`1cuAws|vu;TvfVW|PgFOj0q3UtH@uZWM2l$C#rxK@*K$|pqM8pq2242n; zL{tU5{6TO;R;g5ImyG0~d!4VDuPe?~eNT`?UCNCBrjcKl-^FnG zgb3DhS*0N4z3<*xT?TcUj^o|wquG?3T^q-5Ew9|{Hn0h2zIM7i+cN+3FrMPoL1^>m z+osvzDSMvV_6{Y7c-|+HMYkTwhd$=g4r+qYBS=L#K0?ZEmH~)Pn z)ebrTZ(hkP6P8=ST{WEiZF>b~%+BU&U`*Dg+??J3F2q3q7K| zSv`c~!Q;PA>zXJXagKQJ3Bh+Q%I{;GLpCw!e_2oUh<)cYof_!7n4|C&Du;g-|5yy2 zH$@=?^_BSvN>FBJG&nycdh=cCBHTJxf9ITiyVM_7$Ot?qwnhwuh8-T`YY;r;_7xk zl@#54Fh3A4E-UnhHni(PCrGkeJB&eEf0Z>CSG!X2)^EH>HsEKtpNsjOm*@r6?m^&w zk}f@~t%+lnzHc~|+c=#^x{?7cms%TMf4xN$vmwlk&>~;!Aq7dxhrfFvLw#U$_L}Cm z7M2G`n#b;Ykf2}0W!#GW2{{V<3hlLDzGDVs+{69UaO~JvuI@G;2F~hnJdTft!dJi|~=pw<&2FBaB>Kn)tt0WZo-D$R3<*Mc*Yv-{mADof}qH+GK$tvY)QS?V-j2 zdZgvny;}XNhkL8Zo5lpJc!|C*TeDG>NBY#Ay$hN-D1P>fM_Qlg^)-(a_M~(AVi|k< zT&OQN;K=Om^zB_L`BB!KZ=@b{--{=5a3=mOht~E|0vd&CA;;RKLW?Me$T_GQAKjU^VV{O4V zo@plx%Du+gejo7}%U<8pf5PMI!5aJGxZZWkQCDbq_YT;ai95}I20N8I95^Ym4rsN= zbR3@HZ@g~S6?+EkkpfpthYufu>Y*cwbDE=1dA3D4{GW*|tu`8YlWyPDv?1kPe=+jO z0PL8nx7fY==WpsEpXGNOskb$1v&~DEPg@RZ&*$^Ai_>9Od4KZmNasJKvJ39wC*2;o zwQT#+N4uAM`0(t7wtI|}zEtuq^Zuy1VP_9t*x6pk>NlD<=mxlMLTo|h*S=lAF`oyX!E*9`i5 z&3wzvblU9I>zDRrH;m0_GCO6K_UI5Cjvluj$%tCou2u6g8HX-S1cO(@MNWJRjlivm zP{3W}W7GIydw%@WgLf0v&*D0YF~4>Ub~fw1VRnHr_4!`bko}B`&P6KU!uO$3f|7jNZc5CYP>d@UQyyQ+hOnGTG@{N%56w68DIx_*hSA zsdLwLuc!`+#RZZXp3Ad8fe63U<-gv%=5u3*n#sA`gF0Hxaph|e{LlN>-VpN2Uzs&G z9_V%yj@A}TN3Z{mgfu5?W{2V6y?M_zPa|K_$nzoS|2mW6_k5mgDDK2>l%@R}F;_-2 zt4>o|d|i&dAx3arpLtyf$w>` zwN}o3@VDBJVDmFONDAA=ZsMe`|D|vLX|Em0TUctGm;2x}At!kJeYMAb`g4w(X|i>2JdCBIm}3QrHG+UY$(YR z=W?~TBiojsY|x!D|FUlYk9`JdAt_nm4(N;m!e7(B53I+b{L zvWf0A-6MVHg+9ir7f05%Ms=szGzR+BEnZH2C%}!dshjupz{wxxFK=B-WGXGUVeq-x zPhD$8e}|!MMSI6$U=nNm>2M7yZ1X$GsP|arT9q``bUkx*9do^Je5HicCLJ?lmo2~1#+Zu58E8xSG)M-#ec_Wd(p!{&vLz+oyLd`0@5Kjv=^?s z+u+E1G6Ab%zLnMR{%m_a7JJiG^#l`!3@Mq((^~Y|9i9E$!{#F&HuF{98c&}5`||;7 zpR-m7*6Cr_&YQ7_yF&}_r!VoapJ5OgdG97--iiO(#TCXLI?^_$H@~?o*-wZ6)!<&A z+1R-2SnFoxi}mx1FpW9LJ6U*!(-u1qMa%n#cG@Y~g74pi3%);lt+S?gpU)uZyK~T# z@@201{9L^rzL!4tb+g=Ml6hn0Sx@}4dJf-;Ja_Y4#cw*Bom6uMsE19A$L4+UZQo2* z9c|?cm+`$YcJr|~Y^%tmO>i~8+IDqUOV@Nr|3E=&;kd7JiYQw_EVK6cu^#T@<^-kG=PZA+Sg&^b6=sHx_-#S)-TWDO zZY#IKYd5{}Hrj767=3=ROm+)5mx0xMmtm&6He0zu&_u_Vfb^mH(XnA`E>P2;lkcz| zxX$Sgcx$+)tL5LmT)b&acC;^1v*cYybyhr`PxX(ImC9%6`sA}*!T20!qiRe%?Ck7& z7XP(eYq{&FhU{w?@NBrBb7Gq!xEp_JzLR5?;O}J^GAO3$yPfK(e{vsQp8(0=(8SKm zU$3e$=RHGLTmH5&IN=ynwoHgU{7GZJth4fg2P*+s6WT^C$waOC51q$P93_j}&b9N(P zv6aWHz0J(Ochd~%VrF4|?~z(hb|>I9mRhGNjF@*^y$A7sdk|oGyr#UW-GY{3~r1)vvBxxlujx z!hCv`V9{#aQpMQKc?zFdUrH7aberi<_3$YU`_u6=6=ADKI?xO81WVnHd5+hK^AN&D z$H=M9bVwH@Iy=GEuI5_N2gs_iU3igu_cLmB{F%IS`lpxdWB*nhi-3(6hZ}Kr&#L|4 zn)2&sQXSz)AW#!{{3QEOx#Ulp`V}Qsy__D-dl?_xj@Hhh`1|%M&HlXoA zwuatofRh0f1N1A{?t#1pgqWc^MijSj(0$1}6An!H(BXZ~J6aCtxX{BrFbtXZkEJ>dx3PNF6 z?oGO5s8peGN=!2bm@G4}RJvPTl_k+u(C1MKPSo2ePAT+7pQD_m#V+-WqOMEY{jFmh z{I{RuxACv5<>Ou}T7SIqZk@HgU*I$O7DELZ{$fwSKp`khEdanm#0e3JpO2DqI65VW zl1-wYl1(050-5DV)BkndDrxC8$rC6KP_c?c9FsIiOD08;69tGsK%_t(}C?vtpiAlAImeHe-o043Qi@*YT zCYBq>jY5@ka!HaQ$hNKA8&+GCKzJ0W(`a5%q0pt2cwB{qRL7dc*QA7`3mC_w zQcWS)&QUdBp%RiHB?2Wy;HXS@dc;x~lBpjC`owaml%vd*LlU&A1ju8tI?GNDb0|=u zKRG~JVW9M+)1n}e9*GkA&PsTi5GgA*P~o7VU5>)zEzRIbw2AW)^CDPxl)?ovM1pZOfKEH3C`u-{ zsWV|-;U-Dukw2UA;#A7QK|6_pa%h^!r8^NC7iJTtSQjxDEk`pz#pZ$E6aY@2dNsO}TCR8~a3Yc<#8h!Is z|4ndNRInZrM3+yXXr!=jRgf%*QxTa^%lR56;>BsGd(oH}$1)sk5feyaFfYQO#x*e) z0xk{LV{kDPM+TC#cBJUY{VM_VK$MB0AP+$;sQBPHM?PRhrgA302vp4ENn^_ZbXdij z0~tQGGh@+o;gCScq~pW^>KDnVhzdu_)PO_IIPivs0uGL%=)f|MY7e?CNwS6&;-8W8 zK@Q~7DMDk+IEQ;mkyP<9AWX*Q{q=xkosiH+M=n25#nhyA8y-wW)xrI|NcRR$~?GBx0oFm?`r;$P9Rfe?5gU;-6N zu`%ppaU`CMIAvO-em5f$7vXC#2STB1AS)=Ifef%bxRfTLh+2-^P?j@}p~21wqT#u* z1Zyald5JfmI51%v%G{V%knBmYoN17$a4^gPJd5mqFmsFMO7i;=JJm~*khN-|*cOYF zMvi+1U)*s{(wxzOb9RA1XgpbRmqS>1cn~S*A=|SKHPVJEJbAW}NXjyy*!@8dVyiPr zHle4-131aB7$8!`Nb!w5L7g0wnC2pft_0cAe{CZd9;Ex?g~)#}Z7!~P9K`=&?HYqK z38HPBd~vdIvaxNO8{2j^w(X5=+qP}nwr#xB!>{*#zNzZz+f`H5x4LGgX8PQ74ikN> zFBqvo(BZ;tP@-={>M`4Hx-Zo4;s7IHI&n%z*woc?eq($TN$!*Yv07VeMB0LV*4P#W zIFjg4Mq2_HYyTG809ed3@{}0D64pZ{!vf?O2ANu8`HPbp2sOR=gozIrQK5erlp&@P zW-);nqLqD&N+p=7{|wGN!S4U$@MDfpngl|#gyi89vYv(7`t|*Zk%1!e55=-8#qbv+ z?D3n$U?KveIv^{P3!f1rG_Me(5vZAEpj?0ko6M3HmWH)uodS_J0Z|OrQIZ_Mo{_7S zrwJ*813t_V94?d0^jpU_$6ew?01le+4Z@X$gx{9C_SFa>Trz?!1g5|TePRke8^OA= z2kr-HcVt~e@p}a$0RvhA0)ow94y?2W!sacJ4Gaclld|*1oe+c$FfS6c^2~l0)`in&cZvz&Ga|$H!h~GdVmEM*ZELUG| zK25R_L_1{wC**Wa+*^T?eF1F^1uF`b1v}vdG!#4lJoG=CCX@@9J9i*(r$BG$J9{7VU6y)b`}|IV&sC?mOsvo zn=?@$z+ruWG?@d>2$IuQCWqvI1Quh@QgT58uQXc*x?+s|D ztG~zV6h)H7mX!Yx^a$wX`|q5X)f~E6z{{sn30)5!)E@7s-y59SKWLJBmSnA=oTYezZ2?6JBiw-Qy+^P8 zNnM~9c10BMfvei$OeX7Zoucp8a-hTV`Coa2zU(51q2zeQ1eATuu#F^n@gXVG^0xbTSsrXg;?2?~SNBEpMYN01eH?EMHu{r$xPCcl>h=hrEOg(@eg-Aia=9>^O;@IAZj2nH%lM?)<~r!bH?0 z0$tW-?x4b-g38o_y9OS)=X>CH)8+S0bHb7HHQ_N6wj}t{it$Dby4DPTq$4? zM<*WdenpXPY3?C1wM|Q#$}>%;`ka5>PLi?6q&wA!*J5mEQR5ZAz`UB9=Y4)qSBbDC zGhVzV)4ZwV+$!i(jdbV)>(l*y;y7nGpI7WOZDVAzomrU8u}Z?$3^!|YrO}kKmt;=buwlD*{P49=*#yuu+?Fo$$?UVk>ELi#?$iBlbbfpzLynhxmf(>% z3yA7!|8jagco?^NjKWS&JOFGpS$kxBzSE7ei2JBEC@N4`|02ZcRHaNnO83;jn>uOh z;t`@YNBNAfZen!s2%|A6o|64EV_Uhc&dVDi8F=7;!7ds@*5_uku;*sXA~GDAzwyKJ z{~+f7!g8bI=S_2pGLe~EXyDQ>3DLJ{`FoJ+d%<#7gD{L7?A|Na-(Q~(k|4o>F^n#u zho;yN2=>Av^dn;#IN;C2b7{K%X^*bX$79|;LB+yi7RC%H(x8dvcdMfo`pg8PJ?R7g zt)7J35mbcanW<=WN@(hqq(m9VMHe$VpRu?t#@;WaC5Yzw?Sl4GBC{jCirJwT@LN2p zo*cMi23e}0j$I^J57-k)b{dGT_m2JMD}!8tTmg~5j~uMXR3`FYI%g&w@yB%tI)Pu_ z7fQZ23mUQ+448eXT3SWuFEid(av;H4ln(uHe6>9G$esJ`J*AOfAxnkqw1Igph?J! z9|Udl0|So}@FG7;^|ZJzzV{T5lk!3vm6KAq-vq7Z?TcmamGMs2n?|+FhgXC>dsvs3 z8XppVtIItP4~Hc1ih@P65>R$KpolyVb0iaXd{p=KFPUaXpZ^>Ad2ghw0mS5 z)3K+fKeRRv9*KE486QR?l#MkfQqGR9FGD14ulAOQYv8GwS~p~+c^FhRD7NMkK6~C? zSr<>m#H|CSaaShK6~wXMlHKiTs@x%Xs(g;`TRg=0Bftv{@@J!UA*M+~uVFiI*Yi2! z7UJe|p$xzO>O1Kj&i|kb_m5O)j~e7hreMy6I&5QY5^q}H7h8bS*SDeK*G!%J$0^yU z)7v5mzE+<}kAf1u)RUyWW{MuB*kSBq-IYv@aj)#R!SB-9XPn-Et-sS#XDqt)T(0gl z7JVTg?>xBo-ZBZ9MmI&rmpTi7`MicJFdsRrq=&QECMX_mp52`oepOephy7hlYxWt| zIG3J9;_x=?XD2lDl!(i4Z7g{iJ8tIeUhb|_y}VWSD~-Eo ziy)H8=qA%B8-4|EQE!fCY!QnkhV824{7)~C_)91c*~t;D8RwC;SouwBdgE-7)0ft9 z+HUR@yt~v2ZMO6MYw4zLJjSk!>u&>%k?7tJ%{4f zy<@g>BpN1~syeaIr^u^$pp#|<$7pt+Nw|x~A zNlPTI3Re4JO?T(@8gwt2%dx29ZEreg#liSM)*Ba}Y8@6FYqZS9sdN?U3tUzS4!8a& z*8)ojH>t?bqpqdBX}pPn~x8>SJOLpH+l)5 zOZ`%*=b5mjrZG4_v-YgFZio5r$Ki060`~#ig5JdwyE5kKo%c0;qs4S|=FgDv9mMP~0z0)S^Xi8X->lqAfm$w(K@zjrPjE(Jgd>y*-n;HVp&MQ|e9P`w! z;`-mB%_zgGLGNsBgO0SfDJPD@`9^H@>rB zhU7aD#%}GL9?IM$ru!U z*6Xy4fNj+{H~KkQznL%HicMyyql?jaH}c|qRrX31SI42^O8LHHrQSvdzQ|*N?=9n@Y}F>~d;Ezm z3mq4AD%ImWxmq;&3tF4|g=l-b;GuJ{?U~d`oMve;d;0Q#$LHFDln+Haj(%y-x7Fsb z{|)o{(=+Q>`jk}<=Wn~{W;;tjGg%9pNlr}({le4@`{yZkaG4dp-BTMAt#P+#m8NFw zUx$0kRI6xq6V<^BMlzS!+oz(MMdQ^}hQ_u#RVkNEMK(^_)aPSM;yN5Q=rk%i?^9<^ zQRg>9**3{U#wWG6{(%khpPDF#;wf&T{%uh)iJ?iKXUDI0C+hGK)B8@VH*QWyhtek9 z%_r?p?G@k5&KvW&#p7H$AL1b1zq3QQDaMx-OM_`*hkOUed|In7Phl<#ZrrbKQip7B zV*^RFyOm7cizv_AYVHXiCo{#B+h01JGuFA%AIIYj}(nZ;7>UFojxQz5JtM+L#HvbXyq8C?D z{!?M5UqjH%NKK>BeuuQ1t{aHSMkjrLJ)Xowo#l^uk@z6T-P~m}whX(Di;%gC4`8G7 zfoo|(q(b<-DJDre@mOYjA#e54F&cj<#MOLO8>LP9CzUl=lz2?TXFKaHm|Y;g9O@R@ zG;@#4@_sE9R`mVc)&VfU*U#PAc;?&WN*P43^booMjCpp1& zG2W;R85O?NadFqJHYeiq)fBoL_bnG8ckPqb^rzgxRQda%O#4CdlmdAy3p~8aIEpX* z@!=qAkrhgXzSwv3^E|s(8dEgkNw2vb&$AJajrUgfoUw+fP%&nWq9yVC)HV+_n#YZn z_2WarBl$2LuWZ7!g^!v0zRPF=d%K6N>-f^Sg>S?5RsjBcgwtDHH~RgvFyw4Nwhot; z@6&dXpxv0R&HlCV@5edSb4ANsv+2`P_(xp~km|E(a@2d9Y0L3eI!YVh-NUPX?y2<0 zS47gnuIDU~QJlzwP|au)o=b{;KYv)xTU3 zEgAY{O}^f>r@OIv@es0n+sw43U(2HDZ7BRWwUC8DiH9-V^`5z)i?e3sKhY6B+6jWd z8|D4b!0|DJH0BrZvamfg8U1Sw?`SHqi7A~;$J%so%X%PRQbSacgKXPaUG6*)jLrs9!>JzaZ8nNsL*&~gLAHoqwpvqjf`V4!$5X%k_>yo2PxwFHFrOZ zQXEHZ$-#Rn@RAJD2@STw;p0#~F<tQ`HZa%B4|=EMxmkGk-oWv8;g}W zBgR?#b`y}_`E_hGI&bcnjXvt7W@td1c+pCG$RYdWRwSh%O}>48ziHw^YDMw2Ohcz5 zqv@-9nL$z&V)}MXmp%GA?yYNkn0;ThmhG()&sfVn;JTKTmtLq#m;L>88n9Kmmk#Ny zjD09oY-;7Rk4FQio%Cim99a@orJV9SZJOMDU7^G0GUb`wS2|klL-*BI4lLc}J?>l^ zvYZt^7BhivF}$}tgfB8Qy*IS|s{dIOn!aT0basLD{RprzLC2LoS`ahkyMeax z_IwX=yRW}npsjwA2$H#C>9)x3T=ta0$?p9B4@9Da4Ki7r8lOf}sFQq`ymw&9Uc4!~!D38rrJ>Wf7 z3DT*Ju07nhSo;PA0{Z?227>s09n6H0-fWF&{X8<`&FIH;2#z1nS`s&q5x4va1O3SM zi5ZGA9k`UfwBJ>*&T@{otn(@EBJDbByj zBZS}2BZNJ~Q+>p%8gQAC6H;0im`!Mnt^8bKk2iEEm~0Wn3@v>JUoudBdeMG*Eq*=6lO(|{zgv>GTE;oliseIQjmI6^ zceHGyf5!;)d8S@XjGH|g?-x!R+rNuo2^8h)qvJ`?`O&I6&`cXgH*%0H7x$ZhTXk41 z7IXkfQZDZ^ei1H@sv`PQq4-jroT1LM?4e#_F*Ke-`Ohf!AXmgQ(G z_aBtS0jkE-a#%m2*5A2mT(Y4M#i|>YXKE}^GA+ywS%3r&7FS0eF&Z^-^uq0yeb*H; z)T>!|>UH*y0OEiQ!K4M48uV{&{7ef=}PCqF&TvQe|C1z`KvyGnnq%0b~iLsvG z_f!Nol`lEv5B;>n#FF-ZQJV$wF26cER#)zu`hR$JVo5lw>8!1}hU3q%ZJu}(=s)yn-iu^Z1-WP_rX^~J@K=f6I7d%o+d6#)m77;qAvGj z@Hg2P2ivd|<1M}|)Hz>45z=ir=DIm7bZCM-hsbc?=Dk`uXepj5IcR3DYBOOog29M| zP=6KFkTiO9QF-wBRD^a7jZ^uW60bG+STlC#YriMWcE2hL68TJv5=FvZ2&dGT1Mdw~ z*y$*Fsj>Q2d*YF%!X?=0OoH$8u;juk01J%kWDSR`j=tG9uAc)cHv4?J&9@13GA|V@ zU(A0aNfxpdO87)_dsc{ILgz1ydPHII2tCu5kOco&|NcjpZKuntnENJ00m#P8Y=Hwd zd1VchiHWl=_1?_$-V{8yF@AFzKUt<(tkx`@G=p9COgHa}yt6SiM85>mkOxtIh+-HlP8RT}`ZB&#X z6WeFPbC@5|9>%h^)KYx)>M`csg}%)_M(iegILWkSeV3Zmu$Se003wlogUyH1T1+Bv zK=4Fsmqil8jU~fnoc!iC4F@u_L%fkeu-IbwsQsPeRbKF}S|Q>c-JxQ|pozPePh4gPJdcD&6t>yn!m1F1k^9 z;f&PBK5(dfc{D+yi9Ufgh;26_Eb@Deyg!Cqj03%t!znD-&NbBt-pI9{xP_ilH{BC> zl$bd1sUCS(74%J~>X=`lk7d33vx@CyR`t&0cFe0ky2~|n?aZ%mZK4+x&y#xp`_(Oc zgMHs6Ma?qx4t?yEi2AI{@?FP)_P_%D_7;2l;uL?GEB*yR;sbhr*}#T2`vw=OGG%ts z>9+=$uMPVyKPd3_%3l)87xEDh_wmEaI#904abpKo%eekOwFNQ~_!Lb$|vy`-kmk z5Agg?o?kd10uT>K{9*Rx{P6n<0o8ySKpmg~(DK9T>jv}!`hJ*wgFno^u^(>VB48RY z{Qtqg`!5v!e=+dNq<+VU(f&X`T>lpX&%sgO@xP(_R1Yns!=>S8dLnLoF38|?XvPgG z0X@V&Y&sai7*~Ykl>YlYmU>1hn5NS}TXTZR_f5gnQO zDW0Fsc)b|Hb z=dz_;j98ZS@PXR|%$DG}GEP_`ScH6)U>E#L^wfc0;v!2 zC6MpL;D;EN@!|gRyy)n))Zi7q?cdoh_mfFSqI6ZP^g*aJYc) zl>5uJit~n5-l!t?{mPIBOA3A=c++@wbJQIPR-P|B^}7fZp6S78`e2|6l8f5|76tp7k940^^SgWpwiM!Vq;2S zGHY$u*xype9k-C%NawCG>?ZCCd!p6ne(mcD7#39#S_S`PLl+04 zFiwi9nXxlK@Nl>stNj=CYBiD;)iXg-HqT$$ptq*zPi?g^L|;ihvM4c^m#sq`5L+1w zOC0avOpVSw79vWX^e|}Ev*M^#r(>APQjC;mVOtfd78xijH)I!FOA<9&1sB}u%}K%( zO!EFDRw*7AE1qoZXcjL#&e*WseKID6x{EK1;l1z7!r^WPbMFx~JK0xCT$QVgGUsth z($0qkS$FA36jsEH#}pfl$P=fM3oUX8Z4s!BqJ@Xw+BHrLRmK-rIQ)(dRY#vKRTeQj zq`Y*npH<139a%DSGXKMqprKyh0%87^64j zmz7+YMK?MKzi|(8y6Wfg6c&;@q)X90xEWKtfpOvn`pgZ<6RW@-0%wkSx2vY>1`T#O z{w5JgH#P{FX~`P-{MaqTod@m zw~Epq%9%h342h7Cj~pIk03!;{Zx0cGF~~DOK|G80$B)k~kQGi8iXRKkw_g|qYEuXw?s$d% z1ebIYG1ycs!ZZ|79?`iMHWmjPyo&s9F!?ESvfz5`0du}qF-Kg+ks4B@{~m*HOS0jx z;H?^f0gcEKgF!|(zZM2@pMw=kYZjSMLy#LtI{-kq76e5aih&fwZ%2+#YHJCLGW;hL zBSI|zsg@8cK-)KTf5p{yP%_jNa7*q8M-u9aPMCntOsF7Ki-iclDfcso44lyuW)hV` zk;iZbCX6+V?@1&kh$9||pJB!}NX2Ibs@$+#TB;ci1o=>mBEp8b>R`<2eYF(6Qn5$U zev^gD@8l*U9`SnNz~JARLeK8x%X%ev%$UcymRplD(hBAYsphC3rJ$Ev!@(pXC7_Fx zd{zY#?=&hvuoa~eaPg%{=N(szB(bbH(!XY1ccKFdQ>JR?efcH_Wh3;9Nt`KJuyTs` zDHCZ0)2oo>9sSybf)zwiK%E$Dc{QS>gW8n-mMYvTJnj`r{F()`l?GadjgkgcO*@e2 zuhLveq|H;a9qhxJI9PGCEtIr~p{?w#%(XydGlJV2!7|!tgs^j|^eaX#a9t++89~_@ zAu);+_yOtlg14{Mb-v zGxZ3SKyV~Zc7_Rmg<@YsQpJ=hIOUjiE)MO+s4J|v>q*-8mu_d}b;i6)I7?QB3n$yT zG_*(`JL5?(iUw3ORhSx^c<;67mq98FVQT7faZ0Hn|Z;hX_B zKbk`Yuq6b*03+~4aGM!~p#}dhm;yl_rd%dij6_tW?-?{eK>(kKVSqf((GnDDx>i}Q zJPuzuAVz-1h15@}6`u)EpdtKoIcyA8RAum)IY2=gUjV}ZS)Q~B*a$GZTJ9RPzyug0v=BAn*bu9)8pjd@YdTmhoS>-CHV#N_ zD?SHUosw{?91j5BIZ7LPQIcdt0R%IWz(4e^1`Z!S%E^C{LLeg`M(-qD7GDOPIGg`W zL!!+=pIAuO^25%bRB%(9{)8M7D=BX^=Hg#{v5^rIDZbAG5 zm0fuxnm$%v%l#F!n#MmdNdln=KlaLh!eR2rVpNcJn~~;$>oN^BbK8{t8<0ckf-ewb zfq#}L-q6L*Dj95*1*-R%92Kl?9J~}CQC>JvE)#k&+RhSNsabr{Dq!)&Y3fhey4Iqo zLZ_xMw~~eaz;GjDVtbmGVDOrVQjmz*E7)+8(71D{F;_jrp+3@L1y&I^I%e?pY;1cOR$dzMqEodo2$ERxj+VQZ6GZZ;%y6E6D=HeB!htls${bc!BLj z6KE6G{X7#{dn=%NT=)X;u!0~tKfq2Xd<*`;CD9q$tU}2Y(8xT_I^5zWazQ#j2>k&j z(rPUnJ|xEz;tITYj8H%f{|Oc12m!hI~gB9ED_mbK!0VXO=Kl)=gSw55+Ms{vq*W!Bm!Muqpk__ zS%GbdJG%5{w&PvU^4*zCHFly=F?~3)DhCS|j>(OVl7XB!B6~ngJBXGJc_94Aa~!t( zdrN}tgu1>5N{3vjCp4#)>)!?srf^<4-a+83JGXo}28Y6fV(%kAF~z?^#6`45gzAew zTRE2OWLFg!!50;XDDtj=oX2?v6leVjEg^VSON$N(#qE>G=e%Mv{4;$);QoZDE#kl} z#5=`=b?Y{2wU8`wE;EPY^E+fl{u4u(^m10np#m>>Ba&G7SYXsVJ=*pb>cLafXq z5A*O_JfcP!pMXOJAAGFD<1l{FyeHXYttr<4bD2#($5J{$k;12bnxPld07{un4#yIn z|DRmt|lDP`R?%yGd*p1fqYCaTnDm`NDmlGoqwa8=!PC&$(MM3 zGSpY<*R@WSf%)=4mWn={H8ef7OEu8cRmvLm<8j5aGTYE@b+x-TD7t2|O0a)h>;)KX4vW*=^ITa=gdH7Oz@fM+@NI7#!SnzkH`kdTE)+Vp@byU}r)v;B{S zDQh;^m~uXK*<(92`Zph~N>ZmSw?kL0v@8Cdjg*vwtB10~W)ec@y}}q8eI^}*&-j5l z6{Lyd`(^|OGhgD7?an86)o4Upn*q9EZ-nwl&#FjpS?ZRbKcoCnopGti>e{8-Tj%1zzV&_Vil;SKE?xZ^GWd@f zRd#6;!;aW$M)t`l*ZNXITpv>0Y1I^JQImqfGIYyei14mC4O6C6xArZQW|cdCIU+Vj zMxvbXyQA}alhcR@veOba&GN{JnD0xBRKC|7TvBHB2~wEoki=B;R0Xl}6~blF1RI((vzZcKh{ITtiyfl`V zlH;;J`-Pf)?k5pi|LVlu7g4ltrD$$AI9v=SRj-BPSZR~-ez+ewRQ_tIe~O;u>8kw{ zJ2FbBPVs(~KbGok`8!^&gQQ)YhHbyzjumC4;0yzP@2>N8IClOXiC$kVJF4E?Nbc$J z>9$?BcBv|{U;MQF&v|+SQ{7YV=zSU8y?ZmpzNFIE!+!sAe_6%G^E!T0*Vqm_QWmWV zLGrEiATiH>Z&_wqsVpuchn57M^pL;fIqe^} zi<=j!Kc8gg3#xp?a9dleZWlKS`wq^v3C=ZipS|BHve~v6iW*Y4FTOOd%g+!rwtpoO z@#(%R9GzuP6F)l|^ZIP-2t19k9@dsr&^%3kuiYMrt{PHhd*?My>e#iLz5TiXi?@B5 z*(*cGr}wDt4~?+|Qdr__F!F@j8~+e*cJ_t@grGUi+TEZ(89w zSI|}Te5+$|_W2gqe4$`?%-1e?@qDgIV_TwQ@?s#o6Lq%NOl2&7U(Q^{Li=E^X1X=$ zd0pfoV3Sd;upRH%*y4Wo*R?ro=fyB4 zp|~bl6!5(9vd7mwK%1soO!e~qh?sq)EIoALuwTvFX>Ft7{v~PS@^{<(YYXXF{C&IJ z+6oKrNy|oMyz+OJA!u{bg=-Ck&tk@s*?zxlCYSxfcymYiyUBO8+jbimAzGhkwb$AN^~YJBlA)yDeG zM0xc4XAAKMaDm0XKbVRk8U9mU-NvJiI2VIt6wm}@(CAcP24{jARG4A|PpCxm;lxOM zLJiG%&OtHeYumd`yDS`AEPnur zE+Q}`hmUQBDc*}C4lJU8AB(~qi(*C`)Jx&hm7(9|Zt_dH@|7{;HK(d;{qjLCVtSRS#OORkb6r{{~a$tnj#SGV6->brwHh)bbXq4g93%yFz#d#&}5O54*E*8seTF} zT$XXQqVo3X=j3!de7yu>3=-QUxHXG495K5t;i!=j1*=k;Fl}uD@79x;e6ANoJ)im& zdB+W)ba-P`Odm|+koD0_=6n%O$i_d(S_Lp!_Y(B&_$lV^F{E~+RPZ90^pkp&s?8a> z*qN#USv7K^GL9A*=b}@7cXN?rl57-on>8H+@P>XF2Eg3OkiS_-nuP!cex#w`Mfhkr z_-HZsXag|*#DjtygMBB=D(;PlxR8raoU#(FZkQ`82~#AS;F$F1diF-K8Tv>bV=!-a zMbv_NLmKwA8TPgAcd%(c;2C87O!h&9PhF-usA9uQHbngkGRJ=0oiWf#V2xIu_zKC{ znK_k$B4yaQ zUF*U=Xp}{&mMLai4=PQK6m5-V4-9oO4E3^h92hB7=V5?=O;Cni(5r+A$^mriK^QRP zYoONkKMZv4e39&!a9)NT5!Epf)iYXFkY9lpW4-w85>qW>j?!o;qwch-x`n040-`Ov4EJjT!olcQ8O^gDh5$dNmqE#ai*u)q4JD-+e|6Lq86kbpceeF~Cf)q#wnH zu(J7*H93$%Hw_@bT|Xv?B-IN`-qTbs%1OjP(_*S|`SoRbMaPFu#tiC}&B-uqK%Z=!VwxKV<5s9FxSyD3izXb~CX)aICs!nACZ-Qm zjt|tQfokp-RFj)>`wFjQbpbNYxhLR<%1^VM-f5)3+6W*BOY;Waej zlGU2}sMp4{@z$W>-HU32$Bi}Roz^4$kA#)Yfnndi9ojT#p+TxJgrK=E% zqVw)FOcOPk1WwB$+`pkckUn`h-^vk%c&I;lV!S=6uWnBvk8s|3Af7z%19*M{tfx~o z(088DPuxCl1pRC{^y7hTcCEyW7wiXxl;x@0>q~hJC5S^Xedx;wYL}#8jd=57SPQar zB`$e|+>TZ7JBZDTfRoL^qA6O3!<8Va;i`nEvQyg79a>s3=h1m1sTu4vAe5*r{5G$C z=v!=LgAT!ivXc^|DuulTc=$cIL#JTT|fmi)hhF?#hUnf7h2YsK^LGP1m ztI>`1+12gua853K1Fn2u`i9*Vt!c*8^RalWPvy{q>UR9miE$W^p;8EH>OA=B#%TYz zpGcv(iwwLpFNHjx(_V+-E{$KWSR|X!#ha3g+n4!W=njg}=Qqb^Hp`3CWyDUdz#Z$6 zc8S?bAmzmU18gq?eoRf1f;p^C1%)w7;jcxTu7|4NugAFEmt(}P_Xh3ya6kZ{)-fWU zxCRb~F|DjPeT};@M`FCw2tNf>xhG=0QWN@1@(Sl>X?7I-cpWKc#ALwV^3IJ? zq72kU3^2mkfh9jP#x$u6`cv*r! z8@ASPdVp1$RlIw({ZpLtq11-D{dKbe%gY=f$Jd+Z-AA4O>!ifK59$p7_67iX12jh1 zN$OL|nD;51u>Y&h$d1V2!UTvBoEIck#Lw-<*>-gHc)3_x&Ycyb2uN>AxVqOHKNkrKjX5jNj++D>Y$k8IN z@cF4zl9oOxDivj34;Po=WsiyQ6?%J~@z@muKJ{XN{1Y~|L#-`kh$ z1o{@E>#27ys)3rWlgeZXzoACnRgZ+4z9Zx=N8MHb$>X6yJU?@Vq05ntJ%2TK#y^ zo;&)$RflN!9_8#_E!TJP-VtQr%&i`0y59aHX^>z4Mzdtd=HJhKVEaqJ8(rNST{C8T zw4`faafd4bB=iu**Z58cXy5@n=@iC9U8kq6LoewNTzCgua0fh+nr=p`RWIT2c`XLj zpqp&&V{2^uc@DHqbRhDijd;%_YF!HD&1V2;)@Ak&9@?2mQdhW1u8y!^roR9L)`L_>?=xH$8uCm#LJltVP@O}vd z4@`l&zkW#)0ESTs#t0+IPXZR3Bu*_POCZx+8(lSWc7%M1Gx78eyr4%)M`$l3mP@cd zieR)TZ&_w8AKnNd9{&+vprLv#_f(-;GTGgtZNXx`Fsn$i^GL;n11XvIvCR?F91fXu zTF!BC(MAyo?U%|{$N?X-i~=lpE-cH&KPuI->`Gq2Qb$+-*UQB3A`OIloT&XB`kfv6 z&-#L`&8`i`*ydTR7wdO3CEM@7@8XG)I@(|YZN%XQ03&q=ysRUGlpk!xqVJM9&^-&r zk~x(1G?^qz$%PpgyA^!M+Ct}Pn7KoXOnQGVYk8?{utg(B#?KfyYL{a37eYX~)cr~S z4k^s`iC=g>6xCP_dqgO|(f})ARFf!BwCKtppCFm{to%F%E^s_NSSRBB$&nfC1=9Xq`)`Gq_mA)mvpwB1$q&g&j~U5B z+yuuFvgOnQOk-yRlL>O`W_C)Mp$L!+Gc;uaTyO$Xr&GomS^{(3`ep}6H#ze+tQEzxacS>TsW?Hqr)-;hIoEyI{lxW(&=k@J_OUsa7OJd5m`SwlMp7u^ju=BxhobpC5|IZuEA z(;?RJOM!wJ5Z1saC7eZWZdhfISH&kigC0mUtEB4nRK;3qQ&7aOT0jk@vLe%t-x;+2 z(9oqE5$6<;sk?F`Wmx7RD@-9z*-yh~Gg!;J!uoz72*G8W4#0DVtzw(P-@Av}WkU0&{C* z_*bQ(trvHQf1S0)_q>`RYgRHqAyDCD@&rILex{t*q&TU zNo)`{#t|A*Y6q1H4V9WEXyXLH?o^dCwKcryC!?!AS3a(K&Ip)Ns-4n8NNUOQNS0n9 z*gg~_Z3SN0>Jf1Sefx*z|7oG1<9(T5K6P`hbaO|*`-Z*P%Qh7GC0f%L*>+;XEc%VD z_l`~bwjJoX*Wx3&_hrRlT_`{q9sWVO_(qDwksZhe{B1p_6qL@doYR&K;i#KWRW$FI zmTf}w)1fC81)bZSbz#1O2y~}X6|xNjUzz}|O+wEb_jIso!+j=~M1#1&fD$Wm+sp#H zg*UoxA*0I9;qH}S_XBxS-64T^QjMNz+No?~>Gu{sSe2bx*(tuU_Dos9ay5%PlY`F# zgP&;PB!r!EQWj}CxO3JEq)c_+*Ky}wkz{)FZIZj!#^|0DpI_&tSht7oIl~dgysUE= zZ{miuulsSivLp)4F5Ak^xD=o41v*2r<{C}Y$4s7B2S;6Cs%%c?q$gp1Se%dDr?zAX zv}X0%@$|c1=RJhyzR|+r#+4qf+Qb;Hc}h<{o;4Q$#Kdb2@2SqrsoNY4e4_DjXU zPCPrA2~I4K3`mu~nKGVbm#ThCNs3MsU^2vyho-tePB)Z(>wr?y(_9@=_H^2jccQlp zRF=$9zKI1lum*2xk-YGjivG%(jRTSrFP$nT>2T8 zL)F8k@V}YHmeIqg2C3taXc@QY{&w=&7_;Srdh?dV+MF&zl8#x$7dTMOGt-$^IvljL z&`+5}30{30xbY0rdBPImUN1W2SnwIy#gXZ&tqD1{7!#yC(7CV3NmabSTd}2UVj*C~>uAbdziJrmvF11ykY~QGCSD z2@8CVxk@+FDnYPQf0V;f#RI7_M^oNJBTWvro<>D;@B*b>{z_yc_T#O1AHYUG=?|O_ zVJJqpKexZ&&5QCNrfrV~8o{j*-;ib(m5&X+k)PPC%W8k46R9qIa?X@6Rt#A-|r2Ay=D#@KV7sa zS+lGurZL_AHHpf^{5^?zUdtpDor&3B%aqUM+%$NPg}f>nxE36=W&#$cNV7t3vR}pu z!$^e9$5eMTk)w1Bw8+p^Eb%&Z`ZA?%oM~v3IX})hJjQ7n@8k{S_aCIaV{~Le`>!1* z9dyiz-LY*=G_fYOZQJI=n%K6J2`9GAiS6X%dH(PDaNhIr^x9Ruzjm#?x~g{l?(6DH z9&uWo95z7tXvZ6dOp!47bP65fB{PycfPN(&>){pp!0qbzI^?L>)G2pc%5zgMdE5ol z4nxF_IF8b|6X&hYx{>*ZU(`Cr7|;nqVzQHFz6m`Pq8b6;c+3J_XY=gxR`p*R2XB>O z`n?M1pWZ~HpnUtn9cl|(auM`v^^ z$^F#%ZR8T6S|EcHW7%D)`jFU--?F~9RSMPA@uzsB$RRM~xi)$3a+V990lFJERm}q< zv|zx>A3kOf*WINp>&)Ct=;;$j7jvb&Z*j?b^P}frJ z%qVwndQR)qELo(oVG!-kA(!?+qrI0RaL$rlDkWR`lX8OB`<}tIUNhq;kE?@#quL|; zx6H9BcDPARwc13bO|53EiAS}%sq6+MfH-oloQ0JeIWVl;`>io;EbtgljUoBYhCOGn zhYVqClGW1{CxySj=m@uBEGM7FYpAl`%$dgPmm9|JC*90qgND`=sWX=pe+kf?p}H^! z5<{S*d67N|fW`5gj&zMxKF7(~%mkXAAjyD(Xy^H{0f4 zHxsfTY#WyoZ~MM9(oc8?=&!EK+)(V^=NaSiU$i>7bd7{E`hzag;Z;Uxp%aB!4mukZ zt;TV4?KJc3^6wzqC{;YIQZ})<5p99g5$;V`F>glJKmGpaR)5sP&#e+@rDMCXj@lxZ zz@}^Jh%BhRP`tf@vJV;cGkTcpT9MaAWiGlNstj+ug4dlW;t`&;XHGX@Sd6rAOrDZ?>fkWI!NxGf~w#7S-W$T zy-c2+J>~TiGd%|K82ZTYwXlC?3J_|)f73?>{->9(=Lyml-Gj(i`UV}G(;QiD6`ImB ze%c~-Q^lwU!Sn;DWn!aXwmPizAQ}=3qAJq@C4SdU)Wn}%Yq;8!ZbV4aT%Yya(mEewM<2mp`ot~rh<#old5qguFsb|Tg8>|e!N zeoPAOUjg$j2?%^Hgj8?ZBV>vMTOr$~y)Kb5JCqVIRu{Bfn&{EA_RNAF~1$45St+_Af@`e^tEg+6RRCyV`1`2%`*`ZUICtJzc$_G^&(KeyxFQZC z0C*)-yrPxQnIjmerjb?FkYPxtk-^T1>>K^^rseui9|;fWJsIIo;C36J^S{CE|A}o+0A>KQU(xNAFD1(k-~e#=rDHh< zT>MwY@&I@SyaPT!;9okH|HxS2K?ooq2pNP1!UExa$yo3~#2^w7DTo3D0?~lzzZ5O3 zAPx{0h#kcHUr~!F==+zfMdnM^q5x6`sekEOG(kEb-7jg25y%*12C@QKgY3TKEzTe} zkQc}sGcRo6 zR|^J)r{T>)f^MB>3@e&8oi#%}B@-%CEb5vD1GnL5+^HMYwfK!_dG3L2Zlaw$k0ndl z&l9(uJx6;!n?8>o4@=+ZWk@8M+fA!Hg3`^_QJ|0@#Go6h9chOfFwT>?aaIlXOq^)j zqUfkL$f@?yl@bpN{hevu7bV&bqd6cX%d&T(f;7f{j?3s6qY{x1c@|P2io>>1#~vAT z#Dx_Ca7Wv%8BMikKpZ=-3Bffg8m=ZvQvv(3ZK z^^IDTkF4~Y3NqJ(97Z-R%HVX95|m=T{&49*KEj`D>~L~Y#l1dFvFJ*%oV}GFyE2om zUScQU3J}C#iC|*<$ISfX!~#MWq9O3vvdzpXhu>%1$U0jd_c#D z@U!M#jmX>3)h7(6M8F7(d!NMRHfI5x%T(_iW15Q%a)W~9bBWq#k z=X>^G06YlKSpbBEpj;GxB6Yg2F zgOX8R_g@ck>~%e`9z*lfFKg~<&iV%oWbGg8BljzU=!N}&0AohMS}H%tmaXsy)y+t! zG(#$6#`V$W?&zwSv^@1bhNp0&ANN zqV9`T*B|4%kF;|58~h&nqklP(RSGIZ?+-;{P7H1mTCsuMw(O6aQJEuls*Ep8{}Izr zq<1|zme@=wtWGuhI8dz!CG++se!7`V>D^E+HyvwtHnx4^x=)h zNlL;kJ+l-neRseuui8Uy6wqSTtw_|Nrmn_FUr{aP!})n^3a*{{;GsAG#?V3B#q&1o z^P}{doM>fY!8!&%qYzkS6W-2_pLsPN89G(bt$7obHMZi+<)L$lJq10rHdigkpWe;d z9qDzho{JZ%c9(slvtBt-Ekn{gsCUX?*?}Rlcwjf6^cwb9jGVZ)=GyItnh^aSZ!h&6 z7U8zP(Y2-fXxmw*!hv-=uo3)RP=9?w_VpM(H;Z$s@pG}>y&aDRdhvezD=(4g@?4=m zMVjlVz<0?0wK#eHf|UKEq+!#zXKmZ7q^&#q<$Um}yxG!j%Bu~bW??@rxtQu#W7Ch% zr;X#l^jNngB&{LW#y8vBvg7Fb`r}v*li{Ud1k*0B{7u$h@c;hId1SQ0TrTV{c?bDb zc+zTK8qsv;mS;|fb-)f-LnA@k^~|b&s14;W8Z9?0F(S8q7rC(R)<@)w`Hr7Cncc!$ zz(cz~X-s-M<%8+EaIe#i{IUWIq6j;&JRca5N%?)-B+Y=rBH#iT1>*OKE}|{P!Ke>B;?=_ zBoR{6t0%i~%^Ef`n7lr=MOCY1RgqO*B?Yee)#i$)i;G1r^J+Hd=BdvM4{jHK2l82a zrrwwZ1#_(~-gCSr`PcX#gKngjpfyE(9ejJ|$Wg+j0)&{p?>g}t0yKO|M^}$~ zlfZGVxV3>5TO_VpnfQOad%i93=m0xWINh^sRUp}H51f}g`@LiFDyDXC=24mA{qhC3 zuUp?p<&8=Qj_TV_$%!jRcYr7!D;^|GYS<%4PZa87wC)gbyoJKa-EQX%>Q>S)FtQvL&qTQ=!J^^lOn=+?X0s*Vu69+9WdmNa|jTqZ0 zh{qmOQL9SViW<31V;zmXTBrm1+Lv`Xw`@O!s^KMLpH^TUuVuz5%#D8h+DTn&7JI&M z^e*sbwJ(|&H_HfiU5)6Uy;rYg{Zt)R9OpLCw)2|yglpK~WkU#i$9b$~$(jMO1NS?4 zPvN2o65G$N{G3DojT3}>qg>cOO!rZBZ9Bp~ujKk$h-W=06qM4nxwVelireUGe6FxJ z9(>@PiO|mkaZuiBlldRu?}vPtVN)}~NO#D`oTfeVtr%InP{w5W=nq zUGKoLmJd^}5CGIcaq%~{5PFgsc<02cyrq+HzM;ld9p9~i_m_@3rST)8)5@@vVquaL}dmNRvhLz;5> zo{oJ_)AqNdWK^j-tN~7{Wfr65#%QxM7gqtr@w6^*TCq;dblW@meN7X#-%|BCQkzyT z!{sh&%>F(3)*B{$(j%5-_}=Y|_Q>Gm{oEjY?5C7(5d8U0RJQj?#(plSq&ljA=p0WE z(YLLgrWCj>h!u(~Q5bIsQgrW>F2$LzHcWO61u}`zR>UhngqG@S0@Nt-smn7A;ktzF z(5R6prOVhGr6DxA|~{D4kB`AX+k*;hQgy7Orr<)6_T2Z`cwWp;9U_%D^Et9V__c0SdjBjqL|4{ zkwertNI|{xSB*N><(VQ@VOGM;Zjl}#ul`-M)34O5Bb&f7Bv+e_R<7d`Izloj#xiRk zrm{#^S&RW88Y0zOwi%+jH2u_&qy&hD@1M7-KcYwVtm}p)SHV{9v#4BRcAZ`xCkLae zrfdj~s;@>}S%M4sg)$wnbgWA+Jc^6dmy@gjOXwM}(`k>}d8N?K*O`sgY-U4Ve~C^L z`z$~oQ_KTG$(u)mZ&DObD`ciDlCn{mF1AMxcrKiw%y^d*$;NP{+@!kl1#huSE9)=( zT=EI;|JH%G|C4BDg=hwzo?d~+mfs(>aZi@D>!1{e>H+OEh?Ztn4i+ z453DJsyBe5CmG-tv^OPB*s+`u0v`}c zlr&0-&d^6aFCuI&#?XfzijPEvQ{`z!2l zFQjlqE94c1c^ygl{ky*Oq#*08gxfO5&2i-i#Ga#p$zT^L^7->0vH!M zu6cM?c*vP~NMwOt+&{-|{3+9=eAw)-z zr02kwc@g!PMaGW}1hhqbQpJYQX6tBJfVN1uVKqqHA~a-1A?8pX3p3b4$WqlBIho2}_{X2yI>LN(4u|>Nr^j8T}c!2na=t-=H83u|23{ z%5*mU;#uM!YBVwMO;Q<#v)|_5_!h(lvfvm)Fd~c;=?cjs%@QCgl>=PH0^nir`=|#I z>CF_gf<;&`xnZ=JLK}#|>2T=90MYo9W{P~>%gaTnedZLUXmZS1uU}p&(NZNW3V#eu z@z_D7Ax9;Nz+^=cwnQ4t?FzCOwg{xga5!~;wSrX)2&|Z7xcDrZB6pU)1ZW|`iL2M4 zH(Jafqa8NuSuU&?h$NQY!ao5hUT_G&OLOhP5sXSn_!3Dp>O?v*spvHGg6(Byh0A|0 zP-YLj9JoX>edN%E+vrL^*|6kB0?}2tB5I!;^pE4kSYqPGG?L-4#Dv)Uf6Hz`i#r%P zU9Sh1=54cu3L5Z5B?{>mONY+~@u(uA>L*trZuI>&c4xs6iTLYB8%){z8{^8E{DHUf zL=CH`zfbhK9a0dPCAt^Ez`rEyWP6NNDFU+)XgGl4D%u-t%+?9y60txb!Ds31&!>ZR zclSmK<@}4{ukWfayAgJ>6SBjMlzNLd6nsTPaH-JyMJoP|l0F?a!b}QFUVw~hWDG}~ zuASKXNi8jIy1i^{UpFIUJsSdtFuYbD7>$o@zS^h%yn=%mT0wTa%jXz~QslH`2>}fX zt_cQ+3kCLN_o@^3kzaNoVcIJ{S@?I5U3H_$T7B2zRXN1ZnpiF|^WDKvhRFm@8D6SJk!JNHIeqjFjwhY#RFi>pi@2K|MQ{P`$;rX=d*HrzW zQXy&+085N4V@3SR>7X%36lG-BzE}xY+&Jp*GZ^LzTyx$i%784KW4vusR2W{qb4=pV zVA8LJ=(bsc-!NJ)&1+AW(eo3D2)7*fA0nJEm?RMdN+4v?0JiYQ0mn$)Dj#a}_Q{o} z>T(EmoH&nloq9NB;-)2IvQTFBjOtr8O2!WeR%bTT24S<}Hro8KZhslPI$>aY6n9sF zdlyn`S%3f-u0wWT-@z(?NmG90j*exgSVYz-Nv>K=$b)tJ##CgcuNT8VasXFSbDcR) zq&i@hDlv(skcEpHW?rNAZT}!zl1W%~$Mw$xv)Uc=7^JGM&+$uE4mX86}<2U}RmiDvyN9EQYyf z3DWg2ZbM0dX;PwQ9c3};RzmVoOXsPCQET_k#$ByoaY{p1Yxd6UfmZuq;;huX(NgRF zC6=KcS_H3{4*w^B*_6qY<|hy)B}kaK13!{!aRgBh{>luR7Hn`VkD%PRAE2fnLUL?U z46Uf(#?y_8FC0J&YgRh~fx()lmLfGt3BywE9VqF~#VXDH@hhl&r;c7R!O4C!7m`9x zVlud1P$t~8zsPJ~ni`1&g|;=n;VIJ;8i+0c(?iZ~pR~&*%t1|bt?e)<4nBq&iV+zG zbua1>&6AIWeuZ61(~UFYa4QV;8n%Mx$k6NpwC;29wbkRK&IVFxZi^M6{M0ap{cGw! zv5;PvJwjz}o^RvKfjB6X0^dzR-rE9M9YvZa(%Ig&fD zBR&b1MKK1Ic#zO^IzC9q6JyEX?KB)atmbpd%nF?is?pWK5UgSC)?e6NT(~ZgXZLQK zy!W`R5*4(T_Vv7YBw~Eq^?*lGzQc3V(M&Q}BUc~iLm)2QlHYGWrbdXmOS#PH6>o(2`%K(Sx77F~_5nFPRdf6dab^U~0 z<(vmeku5y}XNSD&UI#*(v+fzAHE-v1-+4Z>E_*Z@Uxg3u5v)#^a(QbbFW%`6<)&5< z_cn8w!-nyy*0884@#G~UFE71(93Iz?_x>JEI0N13r=HJqO7(KXU;q836~v02V;KGM zX*m^qU$O}ot?_PiG$p7#+v#X&{cq!at)?(5{(UMmgzB?dF8`g4M?&S$kaPWYs6g;F z_4L&9Q=rQ1a9=p}l0YZZJMy{xrSJU8ZEb7QMU&U~Y^bHWD@0DhkL!K9AYp~Wb7BUT z=q=;3;IknLJ2%_;=pps-FbBjj$X~as?b4Tk9f$q4_c!&_tJxHRQsQjoM%&zNIOf;% zlzbeG$HVhL=Do{5y{wcYv!3U%-O*zlp1w#%Yc|{RPUk)8vjq#m?$^!ilH6s2C|h2n z4S~^_=J4GG#l76fZ))bPa~OVm4o4BMd-&f4erUehZI_%BoA;m782LUdAe%+IFY#Hs17CvR_u})iK)|I{K_1u+3x((s$-GsMM2oA1jr6 zC?)s3ls`1=`Q3JNI(Q7E=G;L_7@F_$MhRG1%HzL~tR}80V%}72+se*dkj5b${X_cr zxSv}1cwP~tdOb40%GbM#a#cld~-k8#r$d&x2B0?@<0 z!e8p9!%2VhW$zi{Db+W=x)t+{IcoKdIXoILh~Az`Ie>+DvP(D8)W#{pUV(mUL9*Q` zhVpCU^<1A>VxWKd7YF@oT$JRJgY6i8qe;lC_xx*%5HTF}Id(cMgah-`v%m@OsC>%* zBUVMPVeR~?h~er9Pq}SNeBOuXSB7cH-yBP~dCg3n0F~4RO3cs0gny+D?dO5iEyKHy zn%J%M9P&v^Cyq~ay1B!LSFfjl4k7cfg1=Fw8j-~rXMuhn+lJVZZCg~Wg8FOFJ3fMj z8kHa0aj3r2(*{H_HyX@Hp^KuE4RsyAwlDI zyB@V~vA=h1(0`3{zt7Ycg^?AjS8=)mIhuXENtW_>a_6&JVI>wZo#S9_!O&tmCNYxr}Vq-!Xxx4Po{q~ZvtjDyXgR`skEea`jeVtXw!)88^ic*~6^>~S(#*LAYP|(Y5 zIJ?kIkIu=N^XzoOvq6s6V5zu^=y9BtBJ^#5*%8qu=HYnYOiW~4n8{%b z$D)=MK{{$RJ8$z=B$ua|6S1}WC_SUcL%2`S-SfN5p7P(@_H#0J)pRc)Va9z|)6+=4 z6;b)+Y6g&~?dc;)xudhGUH{m^ha1)ZGUDRk`^$xqs={W zJC0ptWIo%eQzsUZmni#}d!g~xSBP|ABlFX=-L2ew^GGi&ZmaE*b1zS?XK`}9;U=l- zWVK<2_ry$G>$B19ZOY^$`@SfoX3F|ZClL+(TwqbBqlk>=KB8z2doDrtA(2%u2IpNw z_&sbYN8{#>mep+{)z?{k-Q9Duj+tm!Bd$x};_X`#!xoY5$8GivLhktTeBPWbS1V~Z z)7g6v{e{E7Z<(964tB9XIH1LaV7+FO*DDe#PZ8?Yx%4+OhAdSD$s)HR7_p3!j!2ue zDEVwFrpl~)m!W^d(xH`v?9S)Zjxq+PeVGWRdS|1nNer#`Z;7V|H%H!g)3ak|Lkl-v z1v&ObMBd{rg|DY#M@a86kVJW%mp_`$i+4-C#N`Rr9{!~>Onh+MKZbTZm@KU_cy~Cj zemg)%F6QHDmEuy>Ywa+6tR~nKl$V#uev_Jwsps)XxOr(?;3U(7ZUGM z^)vT6E{p!5elcg4=r<>WL`~!VCAOQllR`n}(@jk7X5uO~SZcj_!ukx`)}OCFx@yyCR`Xw9*;-xm^-*B4L48f#Zlr$X{#+i?L^{y=3qGftyi90 z>$E8LEi;q$Xlc`BJXek1 zFm;T{4^MQF=*iS3MVeQoyXPpxK}$`R**9z6Md@KJR*zMFILD^-MaIf{<5-VnL0!Pt z>{ULO@cBS4%;Rjv<2Cjy``y^~U~RW?)r4`wj)U;Eu}ZDP&+G`{$jUBcecku0^xgX! z)(ff4%2r(9{a*@E`PAa`L{FP;M!n78+4nH*%lH3~$-YVo;m{t>E83azj9(a}iZ9_q zHW_G=Wu5Y5oSfsh9o;AwpF(Ws53LkeX{nD;lBMmvahsUQl@=ubVYWq5W7k7>w8Wn^ z|H&DQUyCVZ*=A-AD?Y^+)M3??1Gm&I*w!PX)C=0?SN&b&+SQUS{^MLpQnn;{wk>|P zP4ikibhb_LtIo}N!i3ty7)SaD?K61ZS;~Su#cAMTGUS3L4!oj9`K@LzK1o;FZkMVs-d8L?qs1X>H$U-xiXrw zJ@{PzLJ$^OD>?g~z=Ur`650oL${@8|0Cc`GiytajBV%5^o)C*2cy3-a&W~wmVqqx_ zY!M)~B|U<;)vDa#YlbJ;xQ!V%U(7=gmTs14aXb%WEuHnsj|Zz_^dbo zNHsBv`mlRLnAF-f|5=Q}h>*6OYhkBC{A)+3aayP`UZ^n|I~)ry{MR+EHV{|4I)=^+ zN1JeB`$jNYSRo{p_Rn8Y#NTF!L4TQpXsLr};eu#=x5iw>Tls2m%t*H2rK}fRHF43j z3Z$$jhD^m(&BH21G>025z->*`NUDr6{b98#Too19@HAzs3&WZvewe59pb_m?@5|$; zvB0*`uCRutJWT+(m~9{pY{@Wte!LMs&MIiuEyDb?63tFCD&R=sudz{vTYEw;_Tky5Z>;D*lE{Kj~JGFTS90buHbTbp4XLY_j&OS-^)(Tmn&b z=FY>h8U6S$Wzdm47%R>K-zT0Y@XO=*@OOSg?;&$PhkWfSdg&T`Op>vnWjswk!zSO> z%15gcfG`aIyib#ysUaCc%9Epx@NEuHb#2#h)%CoC1z?sM>^4>DHo#LqT&x9n#HSW=pi zp^5E@VXX5$tm8hc7?&tI{C-Hbugb{VX0j*}O1r2-%D2gaAh8Ze@o!hPNGiiNg*>(u zP(RYwL#>Rq4>%gX=yGYkVLlYZHg>ShE$C}&kZX~R=kbl_8Z0K6Se9jsE6udrf6dd@ zM$`Wx1Ez_T@`Q(bBsP452d>CaVE%0bx3_`2+d%0HV4h_9CaQp-S87dGzT*P}gW2WH zZJ>Fz{H!CTNz#tzgRLbqJ^l2{EZ&A<;7s3fSqKTAO4 z5|KhIO??zg!r7u z6C5FunUb+A05yVFI)NVKsWDyC*XjgXYfDsHx-BeimIP^}j?=IBEMn!^=4I%FNrtJA zRxNx&2~@qezgxfvvwoKk;qm6WHnsCf^E#f$RF2{$5fDDwmGBCaAbPItoH<>O7};*N zJ?TXMrR&gkT{)20>ZGO3XYpaw4h>Fa$37^fh?z%e|5Q6vXX}#AQ!ia>RqozC*)r{Y zmuGC;s+hP_J6rRmy4xJJW*`C)fF;lUVJCl9!b$k6VSw6(ssxD_d7t{q!n z`4@H5fcz41?=Yarwxl|)U;KLKLNhJaY>T<{k|NpTzhH{pKD+UURj4vPJ@Ll4(Fi>c zhS8z-vU5g9+Bmf|5W;fQ2E8ySc@4U3xd{Bs5WBwPDddbnL(#P^wH5`<8xZx7b10cL znhce3jA2F19_l8%f zWpQ9On~ldRdA{MJYenWyuX)d{x%Mz%sAQeJp%jXj@byNNvW1HnPwnEZ8Yze#o>ChZ;RHMoI(Z^a}X-BG~B}*yWkOqpQE0 ztN#E>FVTp9*K1xV2V6dqB}&lxrq8rr%6`+Ha;L*Q6Cv=15J-az>wyfL9~NZIB}%Hb zx@GIvP|zjH%$x?O$?%g^n-Gj$^&x-?5R?pE6CUXkt~w+B+b5h86om3Ayf_#yIWice zpGOc_3bc3)(@+U>R|!)w23{v{LopK=8ia|7)FKB!f08tcd;%h-g?4Y1qWwAABq{}ziIsfbYP4xdDb z>-8s`$->7y`Y2FIp2{%%t~|eV{}~&-Q=s`_ek^U34dIe}bYvc$TL8vyZp6ha&CM(Q zpB_QamsdhhmT-Xf$%xX!!wa$N0;=kt=Qloa0T_z?8`6}Nt;c{G-`KuZ{5fqxBir7H zX6$x)^$Q@4XKy$^5R+gjJN7oUPK?zF_ms;G_tc%^S8cyt;)2$m;olrXZ6nK&%lIv2 zs7|w4w~=F9;uLKEGw8hs{_Rh|@h9MX77#juuBZ->j}HQ;;Oa(nO1XkEc=+S44kb5D z$17Y77p!NW8+?&7?eGD#~Wj~#~--oGq@iL zhvTh`BvW~DSKg2V)4jEeUx!WdR-qH&@>WBNea2f%nLY#F4@jcmi9Q2NX#=u&NM`zW z?VU3A(j1gTJS1p>;F zGw(WM?pPC=&&hu6molu+GQUU7HV&h+go4KncwOf#NL@9c=H?@^CdTe< z@6m03)&BFelBOXqa$WWk(_}-NQ_e*8Z7Yfs%+9ZCv+}*Et5SsXB44@1e}Zw|kPhIj zz9joE(C!7_J$=AEeT2WY_ImmR+`m9vx(s41`)Lck#_4S*ULm-1YqvR}wmLEIPm2GW z6hEF6M|vYYofKcpj_TyaPT_@LhXdpMZAgjkNbXFc|KIlS@DH4`q1XU{K{n3U1uplt zlO}W~!O|YuHRWAN|Lm?;fJTZ`tXkjx$1fxqlVSif=}}mx6RNDWutRtEXkF$k%PS(& ziP6M}@imH>YfqYs`!A+B#L$tdjAB8DceucR&&4!Vfd z0J4L(Ao*!C@(eAE9mWqRb`KRmEPTq^q8Aa8`F4RZAwfuEoMo8A3L^f&6sH8qM#0%N zbYMuTX`|c5q<6o6E>CnITN~oF?&1hTgFEA`J0mSq>N7>J3ET`Xx=JKiLToSG(2}L)|T6@V?&upc2vcZ9%ziW~w zYTCfe;<8MxC+W%z>+I46W$+uyBT~#2Ow=n(+-oR=OHkY{65Kh=DbCjr6m*dhbnL(? z>CUu&u_Mssb2-H|4hU^^c78C2AG9I4EA_PRHVTL@ayEas7p<0MDuB(q>k_9mKbO>w zU7?Z3LH67J6KjP=-}wc6roZS~pnut`KI~LTkJBJX~|Qd|66z52tVqyZi}Lx z2VnJ>r<7(SOwTj_bbO_(@><3d>%C6ty3X%fuI{Gp;irJ3%~`d1#VTCXu+9B(^Uvqt zA1CcdxZPElTe0nZWQ1&yn2j3JRPX!4AUEE?jJ1y#(fA5C$+~vPg!LJi%aN!$hzLG> z@v0>4Z$i@_TV-77&wlgo+8O;tC%_KO_JN#Wn&osv&T&D-z}%6i{wFqJ46YQ5j z!7l-_Ujnz~Qi^fRD=6!BNYXcEE6c%RPEW)i42au0Rd)>EdOH&QWX@~{DZ6ug;tYGf z*KQRoUotOWni#1@Fx|bPy!cez3Lw1ulHa}3-N9nKKtjBOhkSrRKYi|=i4jnZ}#-|`@zV#;SoSOz{6o$(!G zf{ZVTPsH_oi>8DuPUNfA*JVsP=i~krP3sQ(teo5>P9DY>GZGm$;_)XUvybyI`ZQEy zP!!UVFRh~bvxuG{BOhNy)mi0tVC^Gp<0D*u5~aZ5(^v7yDfg~i{sD400Hw;yC-BO9 zczsT;ykbta>DBq=?+V^o(8>)l_Nj-5eiV=d+%VSNFp||Y`W017s;{1@n_5d;!Hb`< zC%J-tKL0J!xKy9vT=M(D_v|uH5cero`4;N@8iVWLa%4q++w=%~%-5(mRk0KMe0pX5 z^rLV9v29BqtviDJF`e=em+oYWt=a62mu_Yq>`Fgq>i5r2`uxil5ucxxJMFX3e-TZV z{Oa!a+?H1_|G@X$1PYy@n3uiT-84GdTCL~|eHwpYJ6exJeZAuNA0|6E`Pc3L{=|IU zn0_^Iw1oV+zAq{}3IOfDOm@648av4skDc<1$PNO~0~i1-09F7efE&R3MP}#!FO~fa z@Ex%CMP!%zFOgm8i^r}HFaQ{TvD+;H)&OUK3&0KF4)6eYebL$d0RDggKp-Fp5DW+f zgaLd3v4A*0!WXSQ8So2`_C;*}PxSvk)b`(B-1gG10)PrYC7=*c1t0mJ`gxX*u;1`K{t-3Pw7?wx=xfF#)W|JOkMe-ecMSDgOS)jb`8@+)-6 z1O|rvHC+E^oZiLR!utP99U^F>t1spnK;S|IiBiHnMU(#yk2lXl6T%mQLr!U#l7<@v z3yA+C3$cqXT+w9dlWbd}dfKq?qG454Rn&dntX9>&dah<8L$v7Hp;w{0BvAQ2nT=?* zYS;7b+w*?qmgY6}p6fJqn!_9YOmR@a^u;*bH<2HIXwP7lrPRkcq~woXG0k1NfNQul z-R$Qbzt@!ug)zWtSu<$S>~u|4KD7U7ErxKJyyT?oguaBeZwbG{2aIaSv2X9}bHRe0 z3TdY&%wdJ385uw&%w=s|*=^#ub6EDMSvh4{%hs*VxfKg%`qrOLP@B56w-;V_VkBxw z&kWK5eXr1{F<6;)6&7|kSAAJQETlC^0o>|n|dq?7g_{(O4zYRi%u1v&vQkJ;ryIR z)~VgF22L2oDnQMgAPm;9W@N|wSbfbBzF>_D&kSM^65EHntX)d1at)iXyj~7Bjmk{q zxTQr%qNH|pl%bEyK}KZ=n;P>&@wx7#sp$|~Xxc6;Vii%m0fgMC$G*gUgw za@uh%S=b3;b0TCU+TS$^mlEdFJeM0VPoQn!J=OmDQynyNZT$zxBkmTy*y%;4rK*9n z>&#+JbJNny&S&5}V(ZW$tburE(IQ~TNxDTMK6dC*2^A@s*QLFW}?ycH9lLhHp&1K4MHf};ivGs zCAR{;9D;K^3vghe56#)Jyaa#?#m7Lf1%P6I!cKP|DSrk#>%L6T+RDtoW} z3ziCh&}a;ZA`?G&5`?wmOdorS6uRSx5D*wtN8ySx`WW-{_#1O3)mbT_sm*XjmZ?gt zt}^?Xrx(5izm3-n3BKylnJ|W?Oq=Y5TkNGVZs~U&(LBTc2ZuPvk@zqThfHjCoqtQV z4i-?^&j(5+V^UP90VYU6NeSG1i|GS%dp~0k#aYzJj)_SZ)fFp@P1fqW*`nl^ z81|~rz*rY0!&6|!B#mK2&OlVMz)_{wZoAr0qHbO2^0#6 z!x<-M2|Uyik90e}Ky1hzp$d!TL{NnDVfO8h_QJDd6nY7b>IX!F``EWjx}dSA!3~>} z69U3D+FnfY*n>wXQ3TW^l%p)zv(0GkiAWtK;W3Yh2Ehe$O=aQKpqyfa9w3WEg?l(+ z@FsgnMrLNKi0>Q);eR(jGnltd$(X@q&qRUir!L~5rkL@6r5!!j0v+Veeog&fg- z=S!46z0WgcMVH*CLCt-k_V%wZqzA5&L&Jmr^jSijsf%sz!v)}j{X&9t zLmyTk>)Q@UGDkBdyH`Q$qd_D72%;<-mCTZrE|MUgF%G~-B#i)@EmHDCQ49)4qq_IB z#263lMbs}CQW%93&?Mdi%R#gcO29+A+3;&_ zXjJj!m*~hxL82U_Mo%z1;(D` z%aWLZ@*!OUm@hu{6$(}q2zaX2@ynK@BE4k8kx-6oXRL(%+W6H=19btSG4qyhsO%#P z`^03bKk=>hWj zV;*FxrjoECF&X|66USvN&Szu4tuUVF#X=%73aRs??Hx(0)C(%aO%12;`CxHd(vQW`@#c4(>!C>8>qHD`Wy%x4}|Yv!cK zf}+t%izK~UjDT@sW=FVvuW}(%(xy2mN4ipa@TNJCEM2CLzQ!*Nj-RF0N~O3^?d7M;=IS=1*JGwPCYsVYd2xGZ9!cCKqX)DYu_3eym;nG@K^2rKy%m{jOw zRD*t%V~%*Y-f)wdgh158V8vr%eo>%M#TT3vu(B$_QSRs}B1S?V&+jxvflOD5#QSDwZj#W74@Sdvhr5muFR|_&xwYe z1dPt+pQFbqA#iFUd5EEpXbnsm)tjb!%#6%HUnPR0;(+}?{Q(w;F_F(?h21B<30k9= zPKNyjng^pa^nq04!AY@iV$8Y>pUc^gDxUxC7&bhA5iyisPbiO4QL2Mmny=Kk$t}a& zfX6Dim8qn1*Fm1)aVMIA<+zM2%ywYnO#AODy5QVl0X@pE3ljc78;*@9N)-hRYE=bH z&I_nR$&Qc5>?kN3+b>!7E44ooLCq(>MU+t5aB`p-J(MszJgEt?5kCE?-v)dN_cv{r zCAiGV;9Oh=MLc?ca}y_*fX;Lw3ga(58X|fU@Et4aD5g#o-T~(J7_5}OJGuaTxIx)` z$AT|YeZneWn;;KFLrbYN6=;o5&?hN$XV-QZ%;haP-(u?J$r$*D{Fg33$P&2Y2A4y=@ z!Ve}M$S-|v2~r+6iJ-{jiH7$o@D0&wQQ!Y=en0eASSw9gSt&~3d;b0g1Yr7VqzduH z(t7C73UPMAa{M+~E{^T5hpj6^`M6VAy9_m-^MLn-7-Ym&VEjQJbNoy2SHUmX2zgLZ z5M-3R)K`lsh`l1P*LhGNmgN>wc^@l22&=*%5|om(@h|}jBVxj6PoqUO=mOL!0e<~W zILPNXh+iVB7^{p|Y^u>O32uUf(TZQjU?wq%Gcx%NC44`1t3icFu$h~%q9zE??xp;0JWUEzcmx2`^o)~ zaALPJfRjVYSp65h4rs^ew5!67jf(Ud8zGrOP4kSj@goadIdOljk!AGJ0x5iCg5bSt zb#fA+r7p#OLd?VhmLX~hlh(~N#Q{Q!iK6eYqz~I1VMJVR!`cu|bn>X-uYHu>7x?_V ze4jkj^-k>r9#WaG=GYJuzQu3vMHK&n$IIi*lJ4o7WvaWMq+2=@_Bscv(m-~}+O%0o zpqdPK9m+2Goo~;ZAQ0fjuoit2OxHH6C(!3Z>@O+r|G28D8A(T+LiSpqq|r^cP8KK;qNi*dpKI@j^scTgyhmy+TRy(nCAnml8>X+=6_Pr zF*$zKRm?g+sr4y2U)tb6{CEnZ$sHUV9$n$Gu9M;LQ+oT8BCyrr`?u76YKtw5z{ISZ z&1!D=MlR=)|9P3qm*Yv_dseRA_nzqm`1yRE=dZdWz)eARwCag(=KC5|m*X+8;#b9E zwxy3Fd}FG+IiACF=XA}s_|Ntv^*MM))0wNG=KZfKHRijEdSxRi$IL=<`s-83hc)i} z6PKIn(J#-Vl@?^5>mXmYtqo%M7`(o;JU$ z>VX!2BFm_|S}jYj*Zi9*o0y;0!3~8uFmrqb*gw}MMhN)I|5cw%o}p%Gb>pDhWbgKT zDW0(2(eS1}UD%9?=?IZK6?g?lmM84qI>r##AQ7W93U2q&%i3NHHa*ADna-X$bmr!Y zt6e^}T!_f?N9aLvu9>~AKeN%v89BK<$9>kq`8l`Dj0yczn&YStkQ67mLQzHdWGoLv2*Cgrw@n(`yUDJfc++%23?fZASg|0}@jCa-hatF+MPptk! z<3^47IX6aRt@R?TVrBJG*=pN_2p#iYoip41au*hcfQ=1YTd_~FKCM+`fY3aI7-@>E zVyh-@w)r!SC%=5{!TOtANbT~~s6ti~SKbxU(~K>TUckyDQQ%%z%y;*G6+avJ-u)9h z&&SXH(tD+Im0oU9_b21WL%FVc>dED~_EVX?JymMv5vZ~*78{wag+b( zO8uYx9PLC_U*q5VHbeEe_SBg#UY@JjdG$(^o7p$ z{=8TU6W}VjZ7G&rb30#T1qHRetjnZa@@mvrB$M26c#+ypl(MsGKoFJJh zP2OPiv|s$Ooc>eG|8HP8G&6(eVuQW(v%%(Wk8j9W@8kYpwICB+-rm;G>WR#y)A7OK zzDPAlfLF3_WyRg_o`!?ljj!Rg)T;Na&Jm8!p00cAYQaA(_kKHp2sKGvb`v-iqThJOEt&g?)xSkxd2>}40gCE4_7g4+p~Fo#_XRFi6`fW0{cVX@EXj|Gjv@KWcN0FQF%mqb5)k9};n|TZ$57~VO zKf!a){YXLjYwqdQi@%T0PR)}#?g>5Thw6O@Ko33*;1Qc`;)8eb{F1-@oLD?4BeLh=OcH~Kg&Pg?x^g; zyDjicEb|Pm)y%YOz#i-IU2*?UxI+!)nT@;RriX5E`KckEC?3Sx9q-d^2HZ(tKFc2g zs}|JdGUBq_jeDW2;smCH<^W1oj+#`u0F`VkJntQ;$wq- z-9=mPhO@TEqp1gYw&ykOy&D^EaEEt0Io{U|FVe7PAGgl?AI{oGa?f(!_u0n1mf%pb z8LIILyu*+AJ_}RFarpY(79&96JHC(`(%iSh3CM{XwB$?cao%3Oi`Q02vI{>i>Nh(f z;CAqZt-s_t*2`aDd>p1t`-`*S@=tG!Vt>{*q*XTK-saVuo=35aD9zhcSp9BxnZQW0 znNW)N&g;$J*2aj8^Yv@N-1RT4d%q3o!v|=~B zU_w(k9>ndG1+i-ATX)G|%ea`4C@`M+$^jLhNb(`Tw|vYD;F8k&KE zS6oH2Bi6vaGz!u+P0dmdXJmxbg=i_?ua(jpQVkW?ioBaiZ9$)1Q|rEHL61XclsQG; zX(kQ`ijR>UVcdonqwXgwt+)Vez>871V6z1)YWXqNb+fYY7Eva93fz)qA?XQV&=AuN zj1h@*c=lqG67K4hurH>+XZTud5*Xl7Zh{*_!%X23##4iBqYebzw@09}r<|JUoo0>> z+7p|k_OQSzP8Escdwz2~%PY*G3&pk?K<*`RRnHTQAK` z9se|)v@ic2q0z=}rg^)dy~6h;`<6&3fG|Jqlv+&jsCHJ&spq%j%5}r+lzQuwa;lSp zRL)i(A%601K6$MfalVB5%ax#RsLjSnn4H(#-D=x@&nQD52hdxzu^F{;JL~0MuB_6S zR;gZ5sg~0ryI*B|vtBCUm%d~R28<<-+RI`H$Ve25sMeJ{te8DC_BO0&=v${?TPJa- zYE~YH4@q{doIA9a-hYfI( z4pb2Jl3?ozU^OgTRc?JEY#<=T(bbEi)2eH(FWgJOSsBWG6t?FN=n3aDyWO z&op9;8aqZF@Q+-LLKSv=YS2bBxJm$aH*Uxaf&xy0ug~ zsT+(SI_>+7s-^y@t1zbk)lHh>jWuZD>Hs|^j4hh(z1N6GbT?vj>Je!6V5L~Lq(PK( zT7CVM*1u~J0lSm#qT1`V7S^TnV+`TZ zhVl%*5E;&yP_Pibn3$lnt2@(rrua1wL-u6)lm@>YjoycvRVhdhz=b zi2;>gIAPO@>)(9v_$NtBp4w|Gn%Yp(TWaG;S7&Tg@ek~-Gx4^QRdqk(K7Uk}q8v$z zsfELQ>>oEfq%ta!MQ+9j)DlQXf68+DS~-y3wdzeV6;myyz47`t0nN`>x*zuc(! zy3Ru+m(MM_&^22^Wlv!=pCA|Lzc*MYl`XaO|12Nq9%#Hr_`zgU7Y!GwkYt;U()bgw zJ{^1s)peydZMAU_jjav#HHdbXV~rA*+6s16`YSLx_U6u&gshULar@tDi1%qSAL`}m z3uV&FQ5b7d{x0sNq2EoxF5P6rT6d4itKLeG@`QKBQIA*Cnza>1wKg!_uejRq$v9J> zUr&#aUsp{lUIYWphY7LwTZjJE*`{T?W$x9iO;U2+{-p}lgY%I4rB=;nwy)Y9+^hMsjp;o@ zvMeL3Y;eT_d`^QDdB^czCVAN=y7?N@M~3MGc=k^vq#@8VAZW(fLNqwmU+_tCgR9s( zm&)KZmTQlvO!O5^<&0mk-}?&{WEq4Jx8l1KJr-ryhU@pz*dsM<%yp{^%k74cqWg)n zerL=sI;LHAL+hXo2Ca<-NnHu{IQ>?^ZON?U3QyVJ3#J(o%$y`FAT=r*d-*}#BwRg( zIM2*eoU%@IIYh*qkg{F?Wadd;52fXrY841;C>)ZyG&Bx`sq`Q!>+9i;b~R0QDM>8$ zPrZs&U#Rn_!L~Y8*UWMM-A<`v`2iOOgmHR=2?D}|0K?C_QKCqKwbxNST%WYqiEq| z?ahJ`1Es93s1j$kGU>!y`WJu53{M#fmnG9x#wSn3ma5851aSvN;^2tYWBr69qv5Mk zNg--e+vo5BL)U$m*pY>ILRS-NxDUHkuZ626oYgf8mq zKlh^qh+^Wl0+V?DCe7Ofh;2@z(%^!=C9Ge;ezgB$jy`24YjlCV(|kTzp0BMM<$-P* z%A!ccxuBakzF2A#DwfDCwMmJ0qy|WAt(+e!6xSRS6qg(nEkQSuxR*(jwMiTIpvhTB z_sISPBAWw}8Cvv>&&jv~qFrf>&r89hxd&tA$`Du(=ax|CmdWgc6N^g2XT|&`o73!o zGQ%WBOlM>RWgPq7vL-jN*1enC_`acPZ)m^rz@JJpJgCsXXcJyznAZ#d6K@eD5FYUr z+jJS5ZqK|H^_FEcATQ<6{3#$WXKt;DchCF*%r92ZD;5%%jpj&Cv3DZTKZ_0KCx`UP zW!%4e4C_EtKOU;=cVB>sz5$HR+_gW$a225+tw7?I(jwZcJ6nI+*vqXw zf%U{Ae#%2G@H5K&?gjnyh9+va4zrZUZ`ykGDiTkuCUUVdn&)%%M6uyUx?$ts8Ie=)JO86aJCFVB6f~o6z^DCUue&`xTgnJ{#Urs zqaytyW=aHRLj-1uBIXdssXu*{xV;T!Kq^Y#fV_~ace%>ejnGvvnX0rwGzEF@yt|t zgZr?f`;p8Sk$yBJe~~=Z(AN2->A7!GOBHkgK8o;92HDGV=tlI7kCi4Jun6XiFhwP9 zXrPg&Qx2+@V5Jk!uoRJ9s#y=k+n>}I&x{pET>L%%dbH@!{$g(N()9#zQC9E>;*ZfW z!qV80eNva;Hy81aDh*X^dIpK|U`_s%-o>7T?~HVKS2=jDD3|J&75%GB1_|XIRC=Y} zC_okHuYIE&iprR#Eo;3s*4T9E$dmvvnUePFYeZ{<&2*8ikf0~W6~h&bH|io=aIsIQvP`q0^qZ>NsX*<&^7kV9t@|7xhUs1!0b z;Fj*hqY?R9@LAUqL-Gy-bI(!?!;y;bbDGt2TKzhjq(X(KVAM8?Zw6Rh3rTrGY#?mf zr!*`R_#H=1B1GcCEng<($XxAu{R?{02DEPA+5|C?rHCellG#Dj_AJ)Lf$s?dqmZVT z&V+kG2-Yu*AyMYO^rXErtV*@=HxsY>PEyl;dznPT<=W|ujb33ppz^<(_>6;{aYXG= z`x@pTquDtxjK%#|_6Vj@^(a;;GT~&Y%w00$WGU{~@AFi&sepkawJdHKbAm!Hp`595 z_M{9JLKOWLTIzjFNJ;ciVEE_{7i^)ql8&ViA;Rf1sZ>IBZ*yX(uDi!;?oS=Uk^C&f zIoV)$>-UIcs~sgD^xp-1P!1b7vD+xjD~?{T3&i0)P=wxWgx)b7TUBKi44XCiAL6{( zzy{Eu8OhFSNfTXZs(&Z6Mh1<72PV@|6JiYH7nu|ndW6_H(pFq@GV`Lc^L^;W*%^CO z4F+P8J+4nd=?3k~^?>DdGRC&oTZ^2$iQzfc#N0&WJCc@3DMb|g)$5`-Y?4*cQ-<&C%w^TI2?_)+ zLsrj;vr+PY7dP0T-T_%%KdM7aU_^?Txq3@9E)f|DqUDCTZ z=M>f7%3%$zGPR6_s@;BdznAZs#wv`TB5mm=;pjYBR$zO0)TBnFue4-ub?t>8`(w6g zNoMyhfC<^OR6d|zmMmv0qUdI0M;B*qTl1PB0reM4fB z0Qql3>_32*5kLoE4zTzJ#B2d}00)2*z#icCjfr^zy#6~H76pj@M#GZ7k+A>ZV1?7bA@DK1o1@hlCVZo`OsbB!pfT?c{**QQjpbyXrX!}OYEI}mx|3YK`jR5t{rh9D-jV)Ud$U)y11LG)HN`#2I{HsKtEy1Ax9| zlEVzEH_j@I)6390vAMmkozsE~oN-!i5zu{v;HoQQWQM&^s@DD3ZG8rW&;r7xM7B)J;CNgg zikVxENqk#XQv=b3-4nYv_}bQG@0D?NO%dD*fUF12U{dzQon$e_0?0Lr#A|!%xS%YzO_dmtu)Ub$XH=4DX0VOwqEC|3jEI0#-HPr6 z-6w8LjWiy0#YM7lM-OzIj@(V{7{>>RLkU;11D?AR?y4k9D>p3S56rJY{4yxEoi0nu z8bneWqXToAozgVNWmXy^ajj31^nKhYH-BlU>zGx0QGbONluyOu%-3h$3)tQ~;sNyYC)?AMK6fp5@SqK6WLpPNL+81w0M} z<2H<6YDkz3BOR`LV_xB~s9c;|j-;R@&g-TO8pqU*M-Ld7^sCbfOHO>b(K53VZ5vT3 zIVXOpBrVm^C{{xrenhF`?6W>UjC#iT1`|5rE}|Zh^fk~fbqPz8aCKb1J%(sD30YPa zwM(hp44-gi?9i{Puq6M5W-^Mh@Xd`TtV#%B%;Uhb{ZIlBKNBpqKopg{(VZB|PAK8g zMsruvY6gk~rSV`)7(xDW7oSy$Tb?*&_^E_@|##XS@st(q>>{COyh3u zetfctrW>Y4bw$QdM|OvVK-598pgQ`d&EAKkR(~IEwatcBz?IYD0MSh(stO9^Hq}kP zj~a$NSai9l9i#+gM_^8cvnzx*itBWChxq&e7YDPz(%`?UlKPMYXr|s7+JoEdif-i1 zI{kMRpZArE88uOK{35aR88KB}q)zTdTl1coyqpkA=jV3aS2Z%Fx1Ve=Yvgnh?DjN7l6yJHY1pV_LKL1zebGB5xHOT4;uNo2`5 z81VhNvVq@1FZ*=2C+9?l(iqEn+#`3a5;l{ zgrXGd0~zpw#1FI{VrSha!{CS(b7w^axrM_QT19b7+G|h^Y^_`RdljgSg%J2U4%Fj) zVs5?CihZe4h`>%Wp@Csl90!Pj;+b-EQ;ebezATrlQXepErH3$(!T}(mMfo>tFX7=3 zjh%FzX5e)mJ(Pw0*d+lL=Q4Hp%#>LLQg^%5-b_@RHb4>V3)|ISa#7i-+wo;#q+*l{ zBB@*PzW@3Z$5&`ZExU6E8wWo98%Z`8X$I{R*uSQDsAC^oOF6Y0j~(gM=KpmH6(!r5 z=tapt{nWNtSywA`-*89n_hsBgY*6 zlb9R?Q8JOe&5noghKbv4%(su7p=^X2T}unfuC<&X*-H+;4nCXb;F!e`jTtM}c5UDvDz~lsHu%~W zL4OEP9kTOKzwnp<1_Tg;2pfF`7rT`Xt_>!E6LRN50GA*)F{Mt9IYqxXyePPH{#Ow> z*v&l4K=7%T-*xB9u#TIe&Z?pCOP+wu^Am4mCq?*}J#nww?e9nv7jK@hKEk6Jgnx{( z^g>^V|24(w-*zfy!9YMLzQxRm|JNz5@8F!GVr#w0_~Y|h-_dqDv2k?!nTb(De+$`S z@kg4UW@r`Zi3p*zSmJhQ;#Y5y=}-4*b~7QHv+E8XzL#vd*u8Gne?Ak(o_98_0{~u| z4$yy0jJymGfekX+j5O15aM)#dU8Wc=R0zIA7HH$}U}^oN!&;0TpiQDgV3>%mGh|IL zQeaj!Ew*av*{pl^6X=3gUOzqp@@8o6OR%3 zJbXj!I(Ct|8<-o-ovSv2H!^c;wAsZHDhD%X)@XAQB8Sq1kV#aab2g~QGjwfGZqxe&6iy3_N5;y++f}rD;cRE>`~_W+>&3H^Q8JlqouFegL-%dN$VET zOPh5-j;R%d)h4wB$isKcbUgaX8S}J>mIEC}ny)mSV`!=#5mTFWcucto=9j>zi`ZfU zR(a3D`-9&u40jl{X=X`cwI2&7>@aHRCC~K2W)9(jZQ|Pw9rz;;VGv@@XlzNk=tbfS zLKJ(1tUO7z$y2YTkUNyJncer^^!;oDota`BcA?M^QM}PAs>f7|KOgi#D|wx;gcvFs zn>z?IVbYq90bBuP2xao8r5rGlVufZ^WQKz33xii;uYqG9YNHREk8VyGxY^7`Dr$!_ zC9{2d(gbC_vpc&w^2wJK9qogGmZ?1ay$D?wd+<;s?n|IgmF`E%0ulnz%Q|*`v16z# zbRq4lj(Tg`^{WINB6Fdi5<`4eIKM!>b+^7q3>Il4#b)h6bBJ8inxod;TnQe1gxb)3 zK;%7*9lCXpu^VZ3m^iT@`u>LzrTSFNYwdR$9DkSp?Bn>qedD=W+PGNS>08*_TkAVm zn&8DU*$pwmi@N6=h(FKCg(AhvX)>dYFD)w&uVC~`1WNGm`BgZ)5#qlRge|(rdnQhI zfa*w%{UACtQZJ}^PipMkd~$j|6es!A zuC{6jmA^S{K!2UjZzBM5dcPq3*YtDVEy+(#Ei%mP z9Y}pIw93;-Pbn%$(Nd02$jH%7OwBe?&yLH?go~q4t;{VcAAtQ2Q3h$WkXz8MFX78l$;AC%X>g;SQ_n(me*!+Oinuw=myAODV*6l(Q%~xsmEq6k3 zX?*yYwChTNi{so$2=i-?KxB8{24yOV7OfIl%JA?GQPr<3m~&bn^osTz`OR?_~-D1e9gpBwRYygCD73%`~}};u}3+%ciWKHVz3>C&?fZN zQl;pppF&i{?{L%aICy=RZ`tkt5Akrb)&G7XPA=#X0|;PD@DN|MM)K;vM8IA8 z({8AKL}@f$QaeWqd z_+5tY-2GL1A&skgY_z3_qdy|2Y9*%;%#5_9hO_uTbR9dmdyfBf8bSvu)u*mzx2NY*z+uxP#f%gy6`BL}N z(y&s}29^IquMuzHHgEl|2;{rh;Qv2V=xpp{>EI$Nw+S1l@WW@fZtXH(;j{wjN2lbg zLFjtc9+fWTI2?XOKk$XO0s^j!g@>nU5zx2eOm9zEA(jLpx7p7ZdN+e$ldw|-Ohj%B z3Fv6|7*X9)Ax2mr3L{h3;E8K|5=MYTukjuOilE^C%TuKw)UHxD4(_Z1I{rqO}Els zaJUXCWaWFrNApo&?hwytjoU{{(hd=Zy9Y zqIe`^A$k-FuGj1CqNZ%$r!{42!=xaWTxh#)ikQE{1iS3xke0)5P8)Z0N^j zls>jC?I56vgb=}2(j0g@VJSG;K5y-WIFpIY;OX)?8;PY!X@4CJ13xHn#ax>cztQm4@0}RtqyOb>`ta(fQX%2(NHqm2{Kf#XK zm-$w=O_53pNsgQR8S}xIt`keKZ$Gpz02aNDSqwlBu?Q!0Ba#tQ__UG$tqfhsM-+e0 zXRaC8B5IE3Ne=K}3AlRyxV3w<^zpp93FMI#E<4-dw{JL1wZ8>FJfdgBO$DWNt%Z*$ zx$Tny3Ocaha*8|`XDBGV;08hiKGFVq;J3+5MBS0#?#(fb#An|8?yoj@vtr$j5_4SI z15fDYVwEWufs@2>5BHGE6s2NA_V=eTcKTw%Jo;qLs)F{wVe3w_%ycNVaVVobV3{#u z{v&Dv%l_A4lyROm!q%nJRib^DIV?X@Exz-Jqa*a1%zD#CcGU0B}0l%Yb7I zDV9oX_I_6dautaxUn?7k7-ogq4m}Xo=5fFPFLBNFnP5vlnvLB?ev!&%{Hi2seqNMC zLs)}ze`p`d1T(LJamMLzsbAbObj~9!*YLcPZL!a`Cp#L2H#;ABo~z6R5SK2& zm&NdMV!t0yh-Qq#wnAKA>s`9!X&adI4(eg_=-WJtnth}pQkVSI3|{@v)QV;w-;_va zJq(8zv_7(1bi<91g52R1b4~M+9GqB4@zkc+Q^qQewVv8i8bzLYH^LQFo`qz~-`PCX zpe>#@oZnwa-}|H+HEKuh<~5Z1@Zwe>*I&Yc_zAl>32xc^)VOq(Ig~>cr3$CE9M%*0 z)SCrJCz?G0Z^pfZ%p-ZPlKHQUhBrcp9NhwT($BR{52`b7+Gret8hSA4Rl4aP9k9{| zlhJ($SJ#78z`t_9kIyHSyX0WQV`}W@ES8>iMwc}8u;-C6hYWjKbSC%tpAe%FE}Q?B zd8+s-z~aYV&B4**)zhtw7YvU?p7adKo9#}Y{!+Xf*^UiJBg5!Vd@SESKRY>m{JLfs z%L{~_?P~0-aPF2}m&xArFpH)c+KRTj{;9%c?bY?L9{Mf?J3!pSp@Xi97&J=~W@k8# z#lUhqS^&wg>CraNo`zMXQ18Z6*#@Hu`J>25Tw%yE^fQy9-<75BTH?kgMqzpCs~Y zLwWl~Z%jw@ZFFg2`lW=NBe{h<2{+gDr3xpynOHsB;%Wfp`&qfbu0B9~Xv}gFbp}kvoFB}azYekNlWjnP--us7lYE?EUSNTDuxfYiGD!r+Fevezf zzP?9I&KnXa-wPV^iY}liaDmRQuIQK@oQRU;uF-H3)D@gnC<_KE7&vMy2F|o^SF3z1 zUXYiUH8=b^Io54~VvBryANP+eMSyXtpkUD{RQT=^OtBqKBWMtrS4qw^g^!=KMz;r- zu2?h(gIP=lcg!*#yv7X>@@Q;D{6u^mKeW&HSibEnVU6$^VIWDPI1vwNbchKdnGlK_ zm1pV%>u3~;wm+E9bCJA19tvC)RJZ`rabsiW34mFFHC$YoK~4uv;*g)gl0Bf-Pb<@* z+^Kx0xvuh|y6$r~aa(OYf>AqMZtjdYoq1s=UM&t_yZwOvMrTd9UILmX7Vu>F%G2ah z>?q=6><@8!l5EwNHyg1o_tXHA7$0l?&T``r;Bhboi~I^h4Z*GWd0BMz8fSgm=%y9ZE_Ty(-n(lz?N-Fjo~9CKYwCwG-0JI^6KOIi zGxDV?*GjWRkjD-I(LRavTTxtGVzB(79uSPcb2sZ8@@QBXmIpOP!FbS#ipDIAW_>;` zYVj@&bkjpQWDg6|!CwLDk-{V%@X zYwX0k(i91N5yjh7%2tdJ(Z$icSCOMdPb*>{-9bF}!M>LHAkp-iLfDKqck3eoliWu< z$MweN(|nv#O;9}d9V6t6T+8av{Di@g8v}pu_N98do3pg|DxPmo|BpjsERC*wh7m_d z#z08|Ppj~fjCwL9LkQ~Ed8>0YyG-|_;8}wyiAnh%b5i3^U$~yPxD!Qzg3HSt9Yb4R zeo`gc`uWQnJ%@z@6qiiS@M;O7tO5?J^ofPq8u#Ky~&W*~9Vsl{*kEILL zRJH-EfI>WRhHoew9s{mG z7X!Ee3V8=GjpkY}Ie>ye>qCL4d9Z=_Hp_MmR+Mx5_-+0=d2~NljUqF-4Al@e$)y))(zX z&?QQZMY7moCOJi{Pz?Pg|3pN@3Wtd7cVc;E2_aoa;c&wrXBr3%A0n@nADlhhvxbn8 zCkCqOvKl=t+EOelFzk%xDiY!=2K_sEUbZTfvr6$iti=6%$$Gu+55>(PFyOJ7*5OS`9<&vfN|!p2tC?L7Nf;=kw97wxCtb z0_Hj4!$|qh409v_mR8-GiysXa)fQZ2J2@NloXq~ZAXVKxE!&&Xy6pv)w=ZV`7so%( z=Tz(hdtJ5|X}~a^34Mz5nV3ar8DU3Uo9cB?WZ3Ywd-ctX+zt{C6zlR3RE6Y9=vl!+ zhGqFLlB+;RQCPy!6rHG35Efn;y^D@Ppvv=Htn~fROpH=fZ z+}fQmi`S&l>C!i_>Ob>NSwcH`XZld*Oh1`P&CJzghtVh&=D zi1_UI$7>|0~dbHmU~6(wikA}%LP*QS*}}WrWXDg>0$$K5L26 z+nrlyX(G7RxCq2+7^>khe;OF+k_)O4UX9bRb!gzRv4Hn8xL{fQ=E%P+bah`S_^cUu zp+7gYdVc$x0)G6AblkzXKo#d8#=b#2Qmp{I_lXWcjt zKYM;ceMSbUzPO!kD96FkC3mS2(rTbRL2aUNbh@<5w(!#G#;vNm9noI29F~4|xOII1 zUESZU$~aI`kD!lSM$D)Se@IT>9W7;d^IK;68ar^k^=k>RIUNli`l(m*aa4kvFCq?= zewLP;L|k{(e|9)$X&>ntJ1nw<1)VeZ$y%y0B&zpdf>b&j^nvL_>!O?GU9D@Ep z*0wh=G}A6xoCveKB9-1*=@U%r)RxneEyScnn zXGVYbi-^+yz-z+u_keTiR!7rwiZDOv6Y0V|1mov@d+2IXHkT)z1QYx0vl4E^T!M;l zlY2)VEzEXEZ8oeJ4@Dd9Nw*8jHKYP{0j46E43 zBFhj?Y)zK3Gq8{CHsI;+rJt)w7@XjMq2Ty%5~mZG|26$lA`M7F$FE1>5gYIc0=lbm zV&{kXI++cj4Rp?>CFSboRqGposHzbYNq}RK>=6`y6j-XWI&u(Le^Lx)f%0JQ2@COT zh(ZDMw=7M>I+3|@xep5ACA$5jgoD0~5H|dC|2pk063JhW0hh_4KrLQ)c3+{A+CBsJ ztc{s%vuXS-jp}GN|L9+o?FmSB$UL1TQx(I|=DG)41b64bbh#F$qm$Kid(xU}6Ny%m zfUR<{6p;^s<1>F%b<5j69-kBi?R?1U5b2Y7SdQKn_`oiB69M?JzPPSCGS;xQJ$7eb zwIV#NT*#1QG`Z7S643RYH3Pl@ifG(WrhX{+CcWDhyba_$s_q9y4JJDtX-{k;HGw8_ zi~s^&(y>?^rxR!upO)Bsu$6j*P9U~+`-@2XAhk%+=MUb0!iG+P%dmifB*N_9^!Zs% zVxmX{1zJLz1&4Z6IuY|bNuBLSx#H^RSsh?xE@S2tV*+0!C7|2YYH`AGpuo|!MBK1O!jdOnQ-yO5{qZ>l>XP!}loyV2NtBQA>edh^;{G?v&Z$|juuIa%wr$(C zZQHhO+qP}nwrv}AP={099dq$rbi~X**cWfaUMpATlev3~(kNcH?7VY?`Q?@v*0d!@ z6D%}VI<%Q7T_-rO@DtVxarcC=INgc*|IHqJPDDdF6#FCW%&B4iFoM} zoejAwC!q06*|eGDpR(aVCwM94vTvyBw7HJs!(M~_Mq37S^tA*!y^-l>f(ez^R}ucV z6c)!#E4BT(TZX8RbmJsiI2AK?s+=J-YG8edfRf+ke`@B?#Vw?P0ZAI&ur>n_CIBoN z8hcBu5Gs8;>P}&A#k7F=~#{ z2v8KG+Bh(PLV&i8@H8ol@tRHPq?4ba)`;m`#fjc`-GDzc)CgGiSJ`+IiU^!2+fhjOR|)805nY- z9M3j1!*=oxOUdt1Tsa&e>aV^;0PhgyC5f!vHW`b|eYs`W`~qxWHRt*$j`HIAL@KdP zy}v@ZeUa!-T(I|QH+kXiyy@gKf4x9U`llnuiXH9c-_}n#_SvE9!(JBB$v@BNt!~Md zUCSorf!B-Bok5l=t}>VWk(O^}khSj_aWPpplyDD%6~Zj%3?foN61n^JogXIrNr22( zJhDaiKNs)48F-E}VY>LM6r1{<+SG_cK{8Z}|H{)l#^=9S>aYKYrnu0F-S4b)t_<6P zgNMg9r@P~LPB$Wm7Q>+!E=379IvL$4Fy}A9hD&DDK4p03EL2u%b&(JZW_TJD2z1Ewc770MP&tQ8_Id2B@qemkmVRt4>t&Wf)bOZvo_f}9{6%>PGG}PokUjAl^9ft)3 z{yS5oCwaxFtSvU;t;+>ZOQ#GrG4=B*t*b5CKE2t#TDIhepshdoxH$G>gti0nYpV}m zUG^1X1zy&uGi-RjZKzQ(_pHK(iEbrLGkl^GSg^A~G?74O_j8KkefevbHHTu~+3!cw zra6xd@I9FDZhzi`ZOyL1_-Fxz02#Pob2OmhL&0s1y*H$d8)Z)aG$QiYED5<0K!`hI z-v@&Cyg9cW;Xv?gGGk|c4nv2hd=1o?wDq5b$RaODg&|cF$HfroNP*;xXf+`Wr=?ybD8F3urd()@2I+DZ zE<&T6CQ5{7JCG)m5-lU1>M?K>aKcUb!kGAMI+)X3ntc1m_7DKUQvf)9qrwlE1y&M%@{w1GudR?2S#4=wD~t)!wY( zkndxCD`LB&W=#*mIhERh!9GETe$HwV}KE_Xz`;_K*P zwC%=z__&@nLxQD*RS6Q1<+|-LKay*LG>;9xI?u;RVPTI3SWeqM*`T(AihAWJ>oa8T zUb#rsO2Y*y6!i*>QnHJ zK?{zY1Rt*BMn=|3K2#`H1FN)IPA+`S{3CHwvLYA5>)xdq3~j1jXpAn!oPJMrrLyhP zdiFFFdTwuT)0qgEQ5M^nICAmgNcNtLKjFc^b{J(m1nE)K z5ub=+aCIs<;)6G^3fqAOw_bvgTvFE|DFyA57hVp>NWe|0{){U@B=;jyK2d~XuE+SY zUZ=vGz*yFX-I0h%J3)jppBoSRJu}@X?y}hbS4NSu5y}9M)m*wX<|a_lpIv;&HtTx- zx{7TOb-zI^rZOmliBWXow?@~2VF|9XMlITgt2rANette4j2wJUdW*DFPt0$E|K zW4{;au@3W1ChX$^V7B^N()d<;>!Yu2JgpYL%?LzDIg1Aazkkd7yWMF{%Zj=Q(`=AC zLmym7&>YUYUcWy~ZYe`WYSNtS1xAx^BepZEQXsWHSd`!@A};K)Fvl%i zWa@)9`tjbxXwyh*VIZNlfvyS=G~f`QKx?yikls03c4zkhXkQ|jcVjrtg-W(tRjSA-Xvy};KvjxSK(-vDt1AZE*uyy;(Hqp zt3ayrjG!nhPr@WrS%+A!JlE~F36Zf>HMvh)|A1(BOExrQ@axpa71S7P?Lpu`bJHjJ z9rAUpH-YPb&|l5BYH(yu{J(fETrNR!cUHL0QK{z90gCEAe?ZR$hS zK;vluI{N{p{=zw|J6@>I)>EIju=KIYxf~SbDV@Kr4EAn;0(8ga9E1L2pjl)zJOYob zWDTvL#N1{!pUa+;Uy#OX64$5unb4FTuWv-&COLlgi5dS=+qhBjt%58RbnY zf-7tGODS&eW}=g&*IIc`Lc%>52g9ncSBVd)+oR2?-(x#FxlRfXMrJtGIfBo;l{`s0 z)rVzrq)d6Ny20Dl_f&s091^BZ;sGvU>zx4dlE@8aqia4f!+*`l%n^N4 zrY>!`Q2PjoULo?Q8-M6f>{v%&AgL}@sc5^mMy#tzq;IHlJ3i4i)KghZ zqvU&Y*;E)|TYkksReh(lZ{9U=82+&KodR!Hi?Ol?s9Q|Sc8*{??zE*wvFU8aIIzw1 zmN57OlbVLS;_aM4-{;$;KdFUSTJVD(b{}*mR=t2ryw1(_Oh+#-E=tx@{DprP&GXBx zGB%cQf~!m4F4UIOhIYH6$r>&U&~6`r#Ko>;^?f4a*C$xs6Re-d@9<<^>TOS-oPSIM zpKHEj6jguu^tdV}`|N{2i}D8!y4FBJ)M<(Jkzsn&?TvI%H$8=Fa35B@cVX$l$=SF@ z(EGi%>9>YhN_n^TN`|;H+uM*cMa7>7-Di9WA&sU*qBiw(D}Fc|G1j+V+;X`DG=IBGV58v0vfT+o!S&?UD`mB6>$L;mS*Wz)gE!GL3BxTXhk5qwfYEY z5C3J3U>{K+Pa~3hxcZacK4{L}L`~Q|Ndp0|2=h@1Macd|%p4|oH};icm*_0zYLbp> z2&*|RJX2;qT%7!Ku);k~zp`f!(|5Tdvd{kF4?){~nLPhV+WWYb<}H7l$+vN~6LG=i z24=+9eLb<&VmYP1oN8TzK&NkMh0I#S>p+GA7a6%#ZUHf39+|!!gg>z3|Bkh&Q39BzI)> z=@wAS5GdqU8h`R?2fpOCej^}C=`}RAt*lg&CfqLjaDkeSoBo#Vej;UzWEN+A*}f{( zXgY1{j+HR-Q~JV*mMpeBWKj$la+m8b-eGFdg>R;Oty1lHujT @AP?cH@@>5d6>U zGyY77&K3&zFouZ0anvDF6t3ndHfv6yu>En%-aRG3`gJb{{RBNvey!yG{LI+Q)D1YY zu1#q=V6o?=?{F?R2G@$WibcWnDrU^~3QpwCZ@{F*dEW})O67Hg{W0gqnBQ3GH6?bJ z+_5@{!Jxv7ggs0&?J0k(v;WOD3dq7bHmtf1JIU` zN98oe3D<^kZ$JyHH@f*8miyHG9K(0(w%_Lb1KmP$`n(JeHYlFI>%AAQ59bqneeFUm zb?)Bbf-cC_ZJ$ND0{Q2|K0?}6$w*SMG(ssGKjbFKfIb&OGt(^gG4K{v)`T=?4LX+x zC9>#!K)Ykuk7|RP^*|^3i)lmCt$qrYBTv7CWm7Xntb&Mr-P~n<%z6Li?E5TQMhhbi zc(U+#<;o??G!59-fh)awPVmN~%^&9i4h?N4M2n>DEM-=y^rpuJD^DuOHC<~sE_~oJ zl|n*X8aSsc>5e_@652p@E#7GEveTn1QnTr_jdxkW3LFcM4NJ3U_Z{{>4W$|W1gx&G z00061Or;e64~EkJo9w#L+;!gWK=fbN4>S%({~S|7dXtUiah&g}=5EYQJl+vbDYisv z(ohDFR%lwiKDEF110a!5oNHYUmpkW4h8Xe#`W!Yw_o7ZNMe}OJh#5Z`W@0{~t4k`? zFzG~@)+p^{F+#0==Tm+oQZv#zV~k0WD~*Va7?sbIdMQQ}OUtH7BvuIN>RYEqkdCF0 z>YY@|jH5l|PNY;G^`r}XsnC*AoYEO9)2EyUwATzo@h^%Y4c4!`&oEvGbsQd7&y>Dw zNw*%op-6wAk_f}Rfsw9NZB8@WVSP;)G>M5)U1QQZSTB@FWAa4U3<9wIXfk%Z0O!m}i5nlWZvQfU5Exqw3q0d4af1-C-wU1dzVN=DtPC3#vK_-C%{zN~zG z`Qqu1(bjowv42nB&EtmR{(PNZPKf@>GPTnMksp9SoiwE#dH{@aYI{TjM<6dd<_6i} zTRHv@6XfIXgZ$yknu-(aau?J&&(AUACD*h}5qpyj?k3VZfgb6BRJwK}#Y@!13yPH0 z2z$mT1}bXii6My1fvr{#7D3F=1InNeLI^BpPQ2J)p+qYO287{oSQ#kg(;Vy2Y^?( zJnEV7T*_+Ofs3Sg^1X;!Jpn zDId!_W&}YC0YvaN+R36zNEzVu`43Jo?H6@He_Q?(k9Owdw%(_p#&qaxzZvJ)ewu28*`O+-HGf|E#t%-qMA_1kTc?zgfkww=-{UuC89bu5M1A z{vCt=Y_p@-nf zgP=j>>oFAqG#~{5hc^E|)~})O%IWY#Fst!JIa75<&hR#oGUgj8fa4!$-3X$(G_XTt znOP5T4Sq?;tJJ1zhkle zgzk*p?Z{AL!b12G-}l$;HlGVILfgB)KtVF1;}FnDacCpJ-&6&oK|ya218O$g>p*qH zsId{!e0K^h*Z;l*HIXWQPemuqGX5q~>l}iSE3H0wk|aQ`5@Mt`>_Qp%D3PX%cGd6s z!u9z4WR(scv)u)&-J+{Pvg?7OjS@DbmaCCC6ylH7p)+|ck;co`I>>E-SDf7^r?e}s zzVNu*Dw5-c;)8@X6dW(qTX33Lwy?jgA8}`VH7b&K9y9W4E7l|9uM1muR&TanP9L=5 zQ>yl*7VAwgplJ{GOM!u~jxeVgE$|V(bT0wTFF<)3_U&f4wT&rQE?8h)kdQO9s{Gpv zjs$jCT{z67VfZaBDBCW3Y#6bKhaOS(1-PEv{y3C5vcR4mYTN8jQI@dA$k+g7NX#h? zE{}2E^tsn8Z*@a1hKT))1|XS4A^+@II8+)Z*7 zKc!iebG#n#alJ(69V#aV857nH!L&vTAx-{u{|}B_-F$srKRBy1XR^cXUT;*I0wS^Q zw7(Hu9L8(ZZ+g+CUd4sfU>+U9#?oJc1mSh`yF%R%3-YFk))d2qS_4c?iv@o{eF0JX z{6@lnt<`kuFxh2v_PW#u((MgGqPa2q8f7OZA!y?7ejD{i7=O}3+(o#CggZpTLPHiP zeHhS&?q2$0(cG`AtouLHtzL?dsC_WPDpsZxYXTPv!{O^EeBlUZ;|X{%IvqvuN%^=c zuve(|m$qFFYm4kKAUPZ<|I!-h3enXB@E5xWneVu-J~q!WE7xDk9MN?!UiT}a;Lp@t74GPNZBun)Umbp6=l`UJt@?7vAy)$hT%35`zC*)o*V_t^3I6chr#2L*r zMlf^80Og4(TTLnDj+l08IQls9^T?@ov_6hbMaqZ!GvJ+k*K*~FyWhjN^T{zU=*p&R z5=rHElZU%*-1pic>Dv?+s1jgEf9qgB4i-Ipm%59ZT0!`@ZmCnRT2(-B)n(Fxq`AYi zlk3?&l`(S56p0DQlA~|cUgWkXk6&q$vo$^|(4N0e9=~{W*4Dm-)*AmfM?RxLVF(t1 zSQ4@BL=AW?nyxX_t}2HXg*tlIQ^%uCqP@u(fX0mEIX|I^rAI#2x$x93FkIRxa4^1U zhC+5(C^1B5xyKGohLeKYBT6iE;wn8pY z&*lpmO!cLFu9v`2DzCJ7^?^t&w60!^D8i7HOZ4f3b zf&u-Djsgm>`R_IroprBa!8^u1!t^U}8rL=wG5J%9Dhm?v{gtSMxp%OOjn^fVtPX=8 z!WBHN7tJj0hPCqV7?5Y}O#a4!iO8V0EpD_BDd{FH0bDxbj7?^9{A|o%kxV8s&!TY6 z%ES?}ANik`zwys?JNkXZ7|c6ts}r%sSjx0uD7VYQylhq!gJFThG$_zYL=VJ|9H zb~Rq%a4z6jlu7d&tNZw+ri=2YcpEBCYNc`P>=9Czm;Hsx&tF(__lf(Xb{9TIuHs+? zYs{dj0^WZsn*jr7xdod8+iBi0|Nh1ajnr?W`U7E|^R&@zRf_{FN(CacCF)TyQKn7p zBTtf>ULxw@103n;b`s1kiG@djv(QZmJzv`e#^$z*nZ4x8y!7o{^;pKQ3>6-*gp_5a7}_AjyD zf@$rH#rgE_WlC27(}8)rSKkTiq1Fo{t&fhG;@qo_a?)S`I%Ae_N(L9=+_mewOFtjo z>dfKK#H{RI*}Zt@eGkPU7srDa^2FiKlsv`k$_Ne5D1omp1 zaqvi@LX5#4-^?q3T>(0TI11<-BrzPcKK$iG?W#Y|pvg_jq?k zKBAmlb$tT9TBAohb1DnRP1)$v^xSQy3m|*mN+eqh;(>_3Hsn|9#T!kuDzyQz?Y);e z0_UxD9l0erei-3Y0>nooVkPDEOlc9%T2}LeJvjwaJ^uihv&2x2i zkK!;97~_T_a={}2^yH$eHeozbge%H6-t&N;(Y>%g7@X@vIF9Tz4|~B6Hmr8`T{f<@ zModUC(P_0C9A_G{;@HIS6jOEz)E2|`!V>Te%xv&>Uj4XrM^_EcNSHof)CvRTgGIc<|Gutn{+azNTK@SL?77~N zjGmAZQVJZP%0Q4mq~Sn`jjV6_u6s_l{gZNdR0L{`0Xb`_2JrzX5?WXskApy`UxSww z7TqKLxi2o<7h5h=O5tpa3^3y#o&d0zkhAh{gqrN z*uoY3cSz|harL8ybTAeP(|`e8FqgIxsUu8?uK1+1wuBMho%_;^SQT*_-%i9xmo`3K#h zLaFaTr22+dj45C09IaYHU4KjTCQ1fMnz*)XCY%>N;sXMpFgp(sERTFj1AmkcV!JD( zRvFVLL^W+}^N7=8NdZ3|bnW6wJ3{oD`!qQLz`T^oZVxjXrL15CG|U4*!4&XpAs_*GlHa0f8(It!D9R=k z-3voXhk~aJs~?^|HH#i{mr)^QTF1dn9{my5i8*ieDzUKXgCBdouU(<(p7z*3#1&?^ z3(7P{!>53%MAN)L)mspgi?qWmpw*8XsNHB9#$*<7J2Amn=G1svZh+xA=#_I!&!@=1 zn-3^7DZp07RRz_cMKrV+F(^db!SfNQ3eui*1tpLGa9VKE7vRwFZD2IH=Z{ zx(u{~#+Ykk7DZsi4k#>L0AG~s8`2xwf#Dd63(+KZ5^+^U93~|e?5JBW!aOdN>u&AY zUF%vlU`)I}&>mi-8eHkEciWC|Ze9DJ_Q*pcSv94ez|v^M^Z4U8-08PpbPB~hI^`#Ud?NGZ zv77X}r*e0n${OtZHzM0C8v02e`a?e=F2SMCu9N(t zHtF4gAEU8gzCfUJ|@D#)emO0Kc$Vz3;7)f)vs5u1C9rnu5$x2ehn{Dg6xbp-DB1 z`6gO6Dmlv%I11ICadyb&Q?f~iP)HIAhx$G(sH(M=_`Ft#01FDM)(FL7v4MJoo@f|y zWlSCk^fF!4art?7DCh5DFZK|(bpe1v#*uwLdbmv##O3Wt`ZF+@+ZD%tR?c)j%$4{| z{X04HAb9%VrylgFOVRP6U2o3V0#CUkBigV7%FwroE?=9o)`rOR%A^d^rfpQ!4?^o} zZ_US^#pyj~wO&PlEHcB0V4zX9Z-^a&(Np4YNpMKNPv{&%zi%eUR<15ffxH9>>&rPyn+cD#%pk0u!@}&*yF188pjCGl~AbQ~zKVE^6K98Ze{Vy{ucZk>`oS%&bEFw`~KcW8Y3rFnO)6fepzWZ(sx=}zSF)(d|U0}!lpvqL`B zWAZ-@{%@LR_1+JGjd;-UAS~6ch0wKp%G$q;jKkFWm?un_@4Z`tr72_GWE#cZH|j`S zxjqrhpm)a7(}mp|(X=LI_k4mrj!WM>CC$M)=H!NqO|ItCFAJVS(%kzW)FJocf38NW z8oSEd90>mN`h{5X$uO=TI%O^voqr7Cl)$#09C{r?XpwN+P7+T5h9CR)>u9F&{{~#| z4zI#T($=bV_kX8|a1lJj+}8J18!EwGO%|erITiXFzrkJ_ zN2BF4Oe#0YXQ}Qq_@Im(!>K-~E^}@ZA8w8o9))t2auT!3BgG|5k1WLm-wo}R6Z0k- z`HeIgF~1l~6K6SAZT2fyoGDhn`7g!qVv@0>3nf!HawRc<%}#hymc7uxB!V*7)_#ZT zE;BLnLiDf|KP-PYYD|S-Y4HDbxo62L@H2i|GyD_RQ)*SW{}SRl;zfS}s6*^Me8>7X zT1UdPXkOjFX=Gqsyt0f%a|Kv;@`2L>Vu(ZI+BrEI^nvT@%3`q!<9tO#|3Y<4!evC+ zOg|n&Hgk#B03SR)co2>gZEJys*laMu%xV&ut%FW9$YCY9n9B#M%7X7H#&2EBk@1)K z3+yJa4>jN`D@JeS+1q>kqh+RP{>lk3N(Y6-u-I#{12>ynq_Ktu;sd3p^hxc#)0umD z6B>V1rgEe}(WX~!jm|q#P%z; z1;l%xUn4-AFAN^KGS-(A=W7@8AVcG`APl^iPCaZNvPlioA&pNe3o$)VAZm3_e`!c(Oq{;wQl9$p5sR9`YkhZ5nHa zN~#ZP@2OInZh-m4s>h=#pVp}DdL2}(QHM@*y_rW6u#~jxP*d&DEl_MHE|WBpt`FC1 zCabmv{vSKa$Mg|JThrzQDteuPS08Z6xmlUtV1*gux2DW}rv{`#9}xM zUj;ec9?*5a8&vMEAx4men#rG&0?2brB|8Xk}~ z+L(3E8fBS`Np2ZOBj2;kEtazu7(tJBj36&binqvwq9UM&QO>v`CQz{j`3KIV(ulq% zXF`UBoD@?yn0LMt;QWQAYccG+#*>y9g0{#JmNb5_tpz9fTS|=^c&B{=9qdap;Oc6h z@IG_`Eb@rsRB7v(0R6D?m@Ns%TAa|Ui6VD3J~3FEwA-TLEcifZsBmkk^kBF{YY~kA zXBDbtN1@=Vt11CLR$s0IFDhTZl>`-I%A_PgYkL+<6$R91ltk8?hSfU#lRR!P3!PY7 z0&SaPQZ$WYl-ZAJA9*r-**5`tvrMmd*G{*!xF8Cin}vg>TB;NhJvcq< zR#Y3Kh)4*lP!>dHvM;fo>Wn+Q>Nb&$uDB!`kT6u42x`~H zy%p{Z6w(es&ky`H&<4+@pysNUSJ$JrtapTf;-CXZ%|@<+b(96{=;5a9a1&$yO0biC zW1cba>8Shlw1>fwZUipJ7OA0NgWTlwTe0MAz=cMOy`o7Fh(+l2!{w6d#o&7uS>hb( zNJ4K%A3MBIH!E^>K*>y|D0kt=C`U>7x4xqj0KtiGyty@`7?tlrU*>Y3;?+_uxuJAz#dG+&CFi`M}-c&ncXqQqWo ze?46bt7dhn{hm54TE>am1#U!_maC9uk99nksvBH@T9;1#J+P~vt?r6G{3-_;g^vLFy`~oA^cfR|Xy!<0c7QF65 z1_mg#!C}TT+~fmU49}Fa@H2{?W||>~4}MWDGU3i*hEF1%pXggJrVqF9a0(a%ULYDn z2azr@2bmQFB2N}7gCPnTK{R773iga7@j`L)5J$w0IK*6QK3fOmGFJzI3J7Jt(1?W? z1+m{D;w~@lHXWzEJ3hqVBS-hSL8JsLR1Tooyr~9k zo*$*YvUQ54L_Q4Qlwj?06e9&JItQ)9{*v)67UZofn8$>qRKe!kyR<~0GH-=f8C;8e z&|U{;$GFqG;x(v0x+n@F;SrInden@zESZEJ+*GLPWlJS^Py~|*WJQ1i3j;7q_(LXw zQ0}j={oEvxVW@<s6mkYOB@ViqnJPsn@E%`%7hjH3P&qaIN+l~5 zM|i}(v?Zr#Dql^Q95g2hn@s;)7(vs@vZbXghdGacc|p9bBLK=VNK1EUKLZn843C?{ z6%)z&K}*7}F#dEYG8;(M`O8LVSZ=sMt?pVP(=$8=B({w5=*fOJ=TrVjlAeA z;2ota=)m^UBk=NP8rfPRZ|icqXvDmsm~sFKy~OP4ZZTJum3vVwD9nM;wQ12>+oJB%UOSB)R@gVa^RMApnd z+Ew|rtI_H;M>}ftx!VZjnA!;X@@=4ZxY7Scq#9nV4lU;S-hr%3 zQ$-T`?1R6>vw*#a2~CCi2Ydf=dM1>sR*JBI(brOg#ne0?Bc(~nCkejrmYyrcOel2faFt`*+7)<*io3` z8|xKTJb8#9=L4N|1p|QfN1@$b>Wo z8O#X$n>8WoYx%#-#=t7}en1J_x3+i6QtB~+u7Zd4lC6-ECo@va9rgJ%Lck!}Aa*iwI3t?udph0BGg}VL?_FayHb=p?bhm0qT&_t6$tD+sf z)j9>|mNUx;rX?i6V3C@yvSlwrEg=2NC!5P7m+nEjK%<#J=EZE@P-e;GozLx~O_hT- zUTQq0SaHepMiKxiBj7(z?*e}j?La6|2{wHXssZGeZ6E;MIVVZ7dm14N%b)!t6$UV8 zL?MuR9P?`exqHw_L$bpw=c^_WiItTD&Wz=mvd~DdHkpR7cjinPXA-y!OAa*aB{^IU|EdX-&@6*6B#wq8zlyMKqI4uaWoMOnbcwMWIVNF7>D| z&_w0rX7VySo25OHOmALldPubSik(rGL!oxH(#y6hlpkzL3xS$-P~$xeRdm8|P*NfI%9}Bi%&Io~H^7KUvhM z33e@EW+Z8sVRKb^ayBP9#Fs{+2(?h6C4L|~8uVCF&Xp1q(l4yz@gj0Q%}_lT$s}vA zR3;g|bjcyqib=2Y-P{MN*Q&LlQAiC#ywF1C*=PF4=0?5?9?d200o%UDu9#@H1W+#P z#53ZzwULWHf%S%%K$X_kNDgn?YpU6Cq(c!)Sbc%A@q;`s^S%J_+fV|`vQwi*;a{Oh zXnkx=y_>E;>GQ0uztS0JP>J~nS$gzd9f7UYNZ@jkbWF%2D-*)#-hmmjOHIw2t6JzR zi`}XZaDm*JZ643nZojD#6ef}yL#Ku@sUQY(UR3FaT{Tkj=i}Bmfs{yNS9?3HZ%p}N z`uahkzL%2+$7IP;+*#1O=%g@H7n`Vh@_unzL~=({%{wGoN?)DyiWneJpzn^5D^T3! zqJ@0DBKuB2^(opFYmVUyJG-JnrH0S3mw*GSjq{}H?I8_pN}9x=L^Nj;Uk4O;dGH|u zRT8H38Dl{da~(?+lZW_e$|XAyXo`ANdpl(`iBy*opSrO;#dcOA^ReuRU!b7M<8=a$ zulvu(-_cKZ+MAoSW9XHz5EMFpV=7JeKua^z)YxHT$^Dj`W2)j8(z6#*K zv8w_Psjp1cb?iPxbm+6+xNyGWEjP}|%tJ4Gyn1$ZnCm4GCrI4|#UL&3R!fqDs%q zLR3nIg;I(Dg%w|OzB9XiM`$1|KOI;h}3QUeN$Yhdu0@eN}?93BG)jnrjy-*WCD%}(P$8jh?Y@j^`{-V?S8*0z`;@ItqR9XXy1PMD^>p{xxw&s=U}}0ra5B%t z7rt%qV}`34+V~e?=qFjf03o-Fi_W{P())HXoy;>cJ8Du6{zCm?R0+%>hVv&YNs%n` z`(yKh9ohtqfdRTNL48-v266rV@cgl+{=Kez(H2@dzvL77iH!_`EqFoG>;tAHw~KR` zd&VMxl~X7fl9`YJF2IIY@73&fz*hB=eX-6C8_zdfvkJ`JG{h3nnn4_anylSajo0}` zv|bUqZZ1}p{>U>%>$G!T_C2G%ffrIb*07tSIaX?KCLsxX-K&LqtB<7g{&Dgywy1-aoA=^ftb^5n&y3DJYvxm0R`Gk(QGI4SvC+>g5cZr=M(ZmcZp7b zj}N`8YiO=Af%;JT-5SbJC->I?+wo|O2c73SCy0J+Hr2}ihOL`qg1ypfslJGHkw`%f z_ocX0e=!TpwdZQIPaTz`)sdCkLi> zawsqpvT_#Y9h%?RpG_oqJv$7%mHP$y&s8^7M%9EfdfNZ_`Fm0QnHfqgh+Qb#!m3-JIL+d%Kf( z6izvH!xSS(^zqq$>w6j1*Gtvv%`!hiMQ0yyEovHy(d!9#OgGk;Oc5VYof}zA{KPOP zIvt8}_8WeN=;N#UVY8_lhto6RG(<-9LmwQ%;Z|Yzc(-0?f5&&H`S}E&L?8`}iA|wc z@XkZm8SGpIMpF_bgHfkp#FTQ#&LlnAgl)&@8sbAO@R-Xy!&0Ff0ekv$H2nUOooLnL8B~ z)z!&U-RU~#eDK}uJC6zsW9h{q!HCYY%DE3W{Ar^EDM8q@&!nN_VSsa$-@V~GV^yht zeQUWCgJAqPfxhDZP2v(NX&RvSHk-Yfl_w5_-3LZ!fBS8NHPCJ_k%dzEh!mSI&$zES z8hpgHc19hHoNbl>l@qG3JRW3kOfg|4JRgkbM7(Dwz6>Cr;5dn=sUmhxH9jse=iG&LJEfim@o>i>M$I73FGjhuAHE(iZhW+ zM}r~@$nioU*sO~)3Sl)%&}i6x4)*0ZB&dRSjj3v zoC{QOFOsq{mgMywOt^W2yduLZl+YvxryD~#pdd)BD41Q)Y&b5x>#i?r*2jjm^q1sN zB6pSN8fzY(V(tC`RzeQF20=X4ib*{1nRyRX4=k&ty~C8?!l7|Ay^Z~3)va^kdfaj< zE`nCTFDYKTZ+N%x*n}d;lQYy5AQLL3RKrlfq~$xCM6~0cWKdh*Dx;o;(?S{CF)s-cPak#dQcBOew*j9hCD6RWi)JWU<5@5O zkS2R6jyJRSMGgl8k*@fgl1n}i+j5OR<$4+FaU63Q&$;vCG&y%Xynh^Uc!j81oup5t zh*2k(hpgFAP2Ri#huK@w-1?znm&-dPOje%rj`=i6D9o6>W3Q+sF#cJo@Ms?8xXSr! z;zjKixvcROK)xo<@7}172?3|vv}wGis&II1c#Gk%^N zw&zG-!fZCd2dfum7brEAueqso$%^9rSQ19i1;0OSeLvsnY{?4z;(T?={`3kr$wQ68 zS72QV1GB4k3wBB}>jX#DQjQbS-#G(lPaG4fR-zfucsC24XCgI8b-lBw;7X$D@vHqfT(+UA2*l{%0L zzQuCbdL?o>rpLM_3#TjiKIc97asYRcm!p}{7rLFQcuTJ|>7=X4mED3PtxZ9E_8DxS z(AcNF)no1~*l){F-p>iV7QoWr*4L5)f%ly$9*QH(_hWCac?8);tPt5Xi=!8rHXEy5 zo>@#?0SJM9=`&)wkkV!}?~sni0@)}vTWaLTHM|Kq33g#CJi-U@Z z41x^RLI|Qd_9`Zq=04_{_ISeWI?*JiDlE3c9)hgWJ!%>(ZclThANR!DTjxpf=S@#M z3ao%^%fjF>-Wvp)%33(n=1|65?LJtNPs_&goE1;4=Nh{!+Z-XdXwWWLTha#peLaj- z+!fCrwu+qolcrTYHA=*F)!=-%sh6RiP1)PJ`uqqMWh-}Oi7H{U-P4LUWz_{-@JTBZ zvvasSpgtCRQIen^eMf9ID3vZCuWl=ygfiCefFW8bbXaPsVBvDE0K;x<-0Em~q;^KG zj^<5`v}YQnK}(+pzc+kATH~h-%{Jj9{7NI6w`vkM=meSHiI4n&Q0U^GDQVf#}S809qBUJLN`=CU5pm6KdS#01* z`p;m!(%wl%oa@q$E9--1EV0z|yYE8q14AKQKLp$|P2@7JIHZ)=)3BGUE+lt6dj&x> zOd*(4Gs!m|E_c~U9#fjONvH2mO_I*^$kb~L8QG?Fx7YXz7ir-j{8lmqy|AXg^%o&m z_if<32x{BsgckclmA$s|rS5TNZl?s8bFt5{!UOgTG;QZfcuGEF{Cu?jfR^LBEmqxP zTIf8xOd|J+k-2YW2_1D=OAj|zMgwv#rX+`i+kJa z7rk#7dbQ{G-?$IM2lYZ$|L{apzW@Nt|H~Jaz0?0h1Wv2lIAO9Oe$Uj(&q%jhwMlKo z<#e!+u$z#w;@W4;=nD=J@ZS;Wkl?T$F6{37ajt#ECX-?O#k)3Y;nw_dd0mJKF*_F} z9Er{}p*z&-xXjLPhZOCS(t*ogprgRX~vL1Mv7Sq(p5~O8sAmpW~LVOkaQQ&ax^gy85gmyhm(oeH!|aEERk~CG?E` z>T>-|Se3?%aBjmQ@)@en$9Omk@sf#cyrX0}@z@ax;i24zJ)ilu!nm)p( z??%gV{`UIK(gr?$YvZzOE~E`A${wiPfO02!pTI@^)(dIoIWXN-4+LVW2=5_E=OlT# zOlCutkOb8S4zZG}hQ;Az5_yY?Yi{Ye^0QuAGnkIgekEtp?sJ zryJ*|w8h=Gxuv6pE{JNKgl|Rnbt8On?EUz*JjY$;0~@1Ns^$B#;E-w_IPCk{Cbkfj z-cfz;<(RGCE+1c#Jm&1P1}#^0Z@JnPVpN3F(oT&l(Q4yxAW!8RBk?L9RS?Ht(i%LE z1g)b$J z%y0`^F?zBM)Ho%-EpH-Lp??ygy-4;K)a4`RTb~vsX+W!b`vuO@GKb>4}D%icAdp}y* zubk!jS;Cz3;|e?k1o(tbJ6unloC*(W@ORT6wuSzl;mN^EBGBgHB}JB%oDpopI{g4* zd;)6khe5W9(wbR3RXZ=jo|gEYF8AbY5{9n{eJ3@OJO9<%b0GELnTF+f{RWRrRyl_a)ZjiF`DpSoojC;+it%n zO;f@uKAl;NbnLEuLHy@WfE6Zdf~SA4rpW&Xn#jq+Nzcg6*3`mGCZ0!bh#ofdHcJc+Q9HgP;o5Y+Bz8J5=`#$_goQ~LC^1@K?4N1(?F!** zd%H3%;W*84$jlDz{6|kopzd7Ag1lNuMcAz%?N;EZx7CBJP70@f5;3PN5=$S+lo3l? ztM2#lFZ`bvuPM(4Re=(I2Z^&$28WB)GU8ume@twoc^iMkmA7{9bA5L}1^yP;MqCj= zz+s;}A!Mzu2!LU(e!6pV=g!h^Z+33_fc)nJ!$&@I<@y)4I{%L@`hSB*{bO4hIGQ=x zD9zjcVnFnsRimDes*IN><`?8HCJ2d4R<(c@hZKpmqca~h4 zyP3M4ntA$oR9Tj;DN<*MplV}-O^n6G9c$D%ei!9emR!oPN_h=X#@e293U7mbyo!{TAPvk0$)AjDuDsiTw!|ds zx8_L5_GT8SruMAmq-;~Jjww{YN^>PuEfTQG>S7nUs*{X)fK-ye*r-EqSz@=6kPwKJ z+)04WHc#8rKm}S3qC@e??0_42WId!4IYg5ws#d#9ve<~Q?G8h`6&R@8dki%q#AvX# z;LN3|9pOu1TYVU&>E`hIp=F|Rtzvz&5S&l23$Z*|geRO-+8f@scKz_-?AC~-LtEtN z<^@RuKY3JIw4=OD(_?S5O;lf?cLk{>o!{IKjuw9Iu`$%WbQqIoP{x8nVoU-MX<19J zv`1d7RHS)_&A^pWy&A2@#qvONLRpkj%A2caHb}`!CtJJO1m_OD%u_l3w$E@(ltxJB zTl^;a;_Bdt{@#T(r5Q&h*#<(lFSvv>(n*2v4QCY><43$d$fkLQc5op({{A~3lij~h zVAej}Q*|fn1bKuy!%d5Vc00uROQ}<6EvNppj3j`N083}1Y+(b%UP~kDrY7La0$Qds z60BUZ1Sr9ER#NTFZvu7rR6XJiRilXKClRvg$Y#%LvS;u|-kzRU4opSdFZQzi?CZZd zXhftARu2dOfJY(#fbL(hIyqVExtcgyn0n}$y4cd0`~zsw{nt4QTQd{Kf3#a$XIeuO z1DmQgH{~Rm7uu{ju7J6s(4DA9N+98iN5XD!$Y4-G7?nsuk$77Ce~nN^n3E9ajF8u# zT)#~6&kjfb>WkLw`wGWN?rwT>jo0;h<4g0)W%~My<_nHcQYHZK653I+p~K>r{7)_u z{BH|k1?S@n7Q%;xbAxfU4SOQ88b z3Kj&$!_&$x`O*hx;%(tTIl0^h^v{9X%G!h8?RpIGlYwsixtx8NrOs?ss$;tB{jQPt zxk?@x201=>vV$r|!2BEJ|MB*b&@uRlV=oLuzW^wrf-MDcGWq1YmH)Al0s6KFErx(S zJc)C?72{wZOc=61%Jsih_~um(H5J8Vw`#-M8Xm_JJ^r;9?cd4n-XA#b)3t{Ifw2Jg z7n;aX0OI4d5b_`FotxYNc2)Q%pZG zqD>8PkBb%)4>%tmY77Um2Tc4d4argV$I~)9}wPA5+ ziyC)waCUZfb!NWDa9MJ3T$;ziU2y=8frq((^IM8z!^T`;LP15wz(xaC#n^4xi#;~* z{!Tu8YxJ`4;0J`q%%g}E#5pp2U}5d(<-Yo@@_(y|mK@*2jXVJ}gkOmB+-d{82KbKg zfe=IX?dBiz{K|2hLZp8Ec-7t=UQ`l-I16PWc`c0dtCowtzZ+eK?6m@#Z}x{o-MfJn z^8&gK_sZ)sI5-6mBZs0P2my^ zp`E@p{#fG4LAh~@EC!x;I zRGAaM8E~-HJ`T?}%JI>aNx5*;BuT@AQil@K8 zS>^_-kNl(Ej=Qn=kZD@+>qckfKGVr@Ww+d7WB$hm=-AX0RPd*@)Qa$3TTrw;dvZyz`_DOOyYpf>EM_U}fs@)U{tt{JQ z7R?Glb*K|AO47z_*mx}rInq`E6y)~f6VCmI$uN|s^O&fun98Dl=w%-Kdh&IRQrLL4 zyvxii+s4=%&&w(h?0evjmuLhr6WAVTPDJ{M{b0fr$&G2KQZb(>n|UC|-+( zMs{c@9h_mI+1eYlFD`KD%uaGa7IQivZYt4ibXJ49>Pu^}lzy6g-j^dy20crjo-86$lMdy^r~;1v<>*WxD@L^9Ys#*_Rhl0 zT<*?c+ZdW890nOJ(T&^fqmy0sZ2l3P$9bn|4>*2t-{SdQ6FTbPb^`fPICfLD6b?}> zHi@pefb$FLN}do-r82cqk}=;DetW$9rGWp*acO;sBxBdk%~KZ9+1=ynUc3$e*qYgA z*~yGGsWrr@6fA`HtYxNm^&-;`FHD%ffDPTRXrjgH2vvi#isj`Df3OAc5b~qGCsJY zhdvwoxP0?^FH$<{UX+u{;GA1cx{OPIJZ_(XCIgwfvAZ{6Am`dE;Sm?88ysu6)aK#R ztF_m1z22l(B?9mg3Q2^29k-P*^DG+XWifhVc&nAtXGnlgG!bZz@?Tc#?t!oD+iAU^ z+=ww zv=_whmV7*>32}joznV5ONOB<*D-KlK6^?`S&yftK0Z zbos@J*?-DLJUm=eK2%MzkjK@pBIKkkm5@;xvXSr9fxtCYDt%-l=d?H?>l7MJ=K2Cizw$TUy38eLyZ zta?J;h_%wV>!PJV_xjBcl`(Z{T4ggo_y8u)8JcXalFyUzkRhclkMo;wsepo)z*L3;=qyooPg>hZkIFw z`=j*_r|MUY$of>c+3ii_;YR*r@Qr1EY|})XzF}Z@myLgD66E2eaO32VjzFXs#k=S| z52jt#oC6~lU3R#5XrjX08}!a@YVGGU@7N@Abs3}%3b_F17xR`u;#* zM^FkeFYhC&lw2gE?>k2yIoz*P*pYWfXIl%3cQk1T=5C^8_P$8X#GwS!_}NpTXG$uP z6;;iG;`5roM9mGitLo-mKkAhqjYmF}EK4&3uA#z5b*7pc`F%bxu@@ytg<0KHPuSE> zJG;`(>r8L9|;|+@{TlocU!d96Hag-5?)DC)WC0!eDZt}oyWHK zEcbDYLsxK-XT-rQmT}9v=fWs%Gcsrc=(ms8BVj*LNMs*#PnOV4*-5Miaq7Hz!E2WW ztp0v!^slh_t~d$)>zEVG;QTZQiIFEhl!Y|HOu`XHxG{p9!$Keiy6W1BPL~x67n-JA znJn4fp-`#7CvE4tx;K_I{~0Wk6@)xex9U~k+DJqJP4&_qrTDFzM1&||Ef{>x3G2Rx zk^Em7!48+*R=s1Q3dHM`zwtmvu9XRzWd0Rvf=#Km_|wFTn<3I~eJw|_n5_54-(PBJ z6G3{le8OT#wT!N*X77wEUYT7Uq_fm#H2u_>k5ISre1D04v1=abJKa*XO@-#$VphIw z;tq~!w*LJkQ<~bUBg&eJ(hCm%-cDaKS81Kn#6W4@<-OCYdu^xaouuGr!m_w`n7#dR?YKg_lN*8KnTXWIJb2%URhhyZdesq&o@CFHjZ~?2eNk) zONw{-M7y}f)s8mFz9y5h#{B#)wLZ5sHz9Gjx}yuEdvvFinXA`inQF_?*?6FHyE66^ z?|>CQr#W4kitF^iabB9F#)v1!QB(5aOWd~pd^0|ZjhYk-Z#KwxQ#**#Rv)ubzkc|F! zv2~&^QrFSZ7xb7$OI+d-E{4*?VS|KzIAS}<@-9^<|ICM%_1w@$#qyAXGIL36N>d81 zh`zPcSjBpcstKJb zd~`!zk2|#9CtotJ(_MG$cO*?X#gbtl-G77seTgDwrUm0rp=y6YZyTd^%5<^xp&Db$ z<9m5-CsDK@@AA8psw-tfNmIZS3$14OQb^(*^c)=!VJxCO!|yAOZAd-PsdTY- zhImqt57DGuVJ7t4kB}e}vrC@gyAlK=k;9$Hm6mq!HYchYl~oIGHQ0*bs;4zA{o*~h zpbz`i^^vPvLvmV+_#z`k*;+~K!!j`sgXOb`@k3HJv}>kpCEyFW7e@w@RK<(K;UYkVPOV@-tqS)jM9SywVR7ajX3XQ z&;WgAh_3#{ne;)a*+veO3Qb1JHV?{UIsA!SnKdiO5Vpd#rnsCXGtQ4@L=*Rc0Z7*8hS;oxj(UlC3Ey7?O@V27E(orZgz$_e64Jjfm~ON z+4Je#K6gz}NIWD*$y3W$B}h3Yc1tG( z_PDL>j%GcSc=pgGamBlC0n2kQB5*E5FDg)Rwj^|$47c*zGH0p2mCX14G+|j-hHJd( z?*fC;&WTdF!o62yUJlv)Z#xOSNhe$;N&4!}chIg_OE3cb3P`2vJoknd`FDC2x15|J zyayXNIX<)cd$H@Xqu;!w)CoxEzmO9C<;!9ZJ8MYe(8{x-;hCO9`NdN%lsV0taGd$O z=5~+Lp>!viyG~))``>syrvPg4=x^}kHE;W8++|+9^da^xgk*3 z*A4Cj$(nY&J87%(&xEFT`zPfI*4N9?JpI;D8F$qz z0wdg&fos^=C4j?XFk^}fepIxXJ`|%rzY39clDxCw-O*(0%$PXZUsB!tyO&R`%XH#V zw3Yu%FK7e}Tz+j(Kpb~DAAK0ZREm+Fnup0y5T8VP)BT|?Y9!Z81;C4t$lOZtY7P~2 zE9F9dw$6`>O35AWxWW?k{g`IlAL6bUdT0|$;uXBHL~+-0)7@vMvQ%r%bf&FtnD;)> zex9s(2?v@CDuXEx+=urk{;6o!c`FTj5Q)U03uL#u*uZHVj@O&-ZIv&|@k#H%eXOwl zP;2y*81Y0bzCtaIi)^RJJ52(b?{|E=~rO#{4n10OXNIw$b|CbkP5A6OTI--qs3A~ zQ1~xmVb|3MnDFZH%14|5=Cep1lImedkrVtViMuJ~;Opf5=ZR=>MJ^|RxZFp{MJ?Lf zW^!W%E^8gBgY(1``yF3kqTys}p0AcrVw>r8#EA?Zue@ihTd!pwZaydT4?Gmq7QmZo z^WaF|Vrm^0*H?h<+PxybuOG~b4!L{oVwq%8IHz0YfU+-|JuzW6}CEDH9%3NJdzsdIKP`!gzsNJ z?pYSv-!ldXzuBylb=Hbe43B51Y%jZ}cy&76{`o-WsY=CtSCZyA-_Dyj>79>T3Qlm; z95)5D$X#S0qxd=c!R=qOerOH7@7`$aB<8F-R+ukLHyDCy@LfmH zdb-_SveN`1p99`J)sQGo8N4kgarO`(mg zrApgLM+k@=Dry`^`znH=;4o5kp?8y@s-4vvB79ur%2xuL9H&jgnH*R)r)OEPq+Q}l zPoq(o8#^GzV0cZcyM0K0i?>Lz5S7H2Sk$R4%mJgfkvuyo$e>kjb`*iBj!Aep$mt5U z<(=&f(AgFh`jBPH6eRHwuc>Bx8sO>bsMwdl2o~WkR3dpyy`1VLyU3CaN8Mx zCb9}LsadVW#-u4$m{e^QBR2W95(tV<`>B0?dE;Aqoe*&ZbY0TsJXO`qG>#s+WhD0g zC0t15d$I*{+*X5uS>9tR0E_lXGXMf`I)Z3{&X;_3@Gvd7m24wA2nn|TE!$V)Zmu>sOUk|Np`^P zw{Lr$^J$RA`#E};EfqbBwfC|z4B$QU?DJ7z(O6b2Rzu^kC(IxWTJ%bZ#B(b(~oo->owgHTm4kGO5nQAZx-Dzjl}eYwei=Lj}t%^OqUo1rYXmSWF-^xPcO7gSg){wi4Ylsj$Xf8CYz zO>Ce(a}`zEC--VRoMQnin#1Ni7E9vMmEVcqv$y=`K`7e#NZa~+QvB|E79k>x?9UA^ za&(fpW)$w}?cZR!gx~3O4sSFnZaQiB9VTBHuOp>o9&mS4jvbYpLE(1)+y{2hCyY5OYQj;B$*kLqTBr{V%ri%{82gCjB;=6 zREOoZft&Z>PXnKwI=cZ?fQ_X-c(z|w)4B3*?DU!}Ubj>U{Fzht78*6!te7tO%0^n@ z$mKFv(SS`?Q=$crG1S(Qs!^p{*Za`)o$R4Naw3C4Ex*-|kSLoLpH$0X^i(VL_AiW* zbJVnZ&-H;iYdlRFtY!&`TbC^&z1eC-KmB7Sj=gL^E+L$LdwcfVG$P>&qGb3em8mlu zvPn2&Kb|Dc*vpEviQzV8ym9pyrqZH|F59<^{O4U8CJ}^Z>L-4kG~}j9y!`xU_Fem; zEnDFfn78V+}aKpjk>xI|uca6ARWiqt>CWT++T z;xFjHM+2#s9R0Y1o}HM_d_m9fm?!9Esvk4;{ph>5|IgDx0P znI^A#%nd3Q7tp<{kdi*gb7JGSrrNDUgVCB4F00`0F^Y_CoRU~Q0c)zWq|2tBrazN` z5i(S?Alt|7{DG2L$`XJ5oO)O6Gmy2vx=b+lfS&7%g<^7}d1AqKo zY56!lo(?Xp&7n7b&z6&X8#$AK9Gi<*$T+jo{RGtot!vqD4Tbjuf61Vqz-`APPN@_e zTo#gMBla`)^dzaKF%x0iJkG1xtgeXKl5wJ2ccuX&!`RDJJcpz#efTEHv^Pi9&xt>) zn=n=fag;Vv%a_%Tbj*QW{DixtFYEA0@1`{DnCYXkuKB24SyhmyW~ivO>X%V@dXBvO9p%C3z8F_x{bgci5U)PA^U1PAD?>VM zsOCj_U`57JUe*6tJB2!MxQ~QDyf;x|G{#VUW@L5GM$B9J0I%#j{YtSt;oxwhc<_KyFFy09%3Cghb+ZZ$nFma7GnLs?8n}y48om zZDO-B+$CA}7@14=*@k38_CURcqEIQ^h2#5M28V2eqG1kDVY&w|(Fd3-+Z&?#WK5{T zkAxz3N9S3{&+hEgQYrE7UbM=hbp@wp?Oz0ubS>TwS`kYY9|{!6n{OIN5HAe2#~iQm zA^kyo8>~=-mUB0vkBWPyv_ucS+XySmLBOFjgTM+2igW&h<3po6>R=j$!`b3U(dOSr zZ;&9Qz+Xv&3}zq=%r}&a46U&~Foz~Sr5Q%GXr;Sj%M$Is=NV&WlSuO#&PQfuX02Yz z#kY_GH()CDLFxuP|6Y#Pr}4*MWXs$I`y36RJt>h^LTF8O6a_#u7hjoTL54pkDS9;{8L?VEkX|Cb^hU^CBr3BvTVF((&*d}63khKprn?B!I z8(QKCm>I*W<&qXca<(2ZO=8ZFfT?6iZY&TE|2!{)D-ciW-$t27f1#mME09d48U@4S z^=&4wTf9wn2CBAv9r2k@{vM3Y3;WErsqAlu#D$1Czh2ACNL4t4o%0EJDs7Fm+2-{Y zL@^7cJ6fQOA1>u?xqR3AcPjkz1M~<2^SM_R86dc5&+A@boz&gMS+b22BE((!mL~YX zun@JW5hv_|8^jqW5qOz4#T%2NldaDKsRt(=Y20J%jO6lVyk7E){S3x+ltgD35CF^G z6O(O#N5>hYJbY(6cyr}AjR?DWsC`J46FWMlC(#>~qOycZ^#@r`tMCg|R>RvC#;C%? zjz!*$U7QKHq%j!Y17xt}!(U|x(-ZjLwQ1&%lCww6L(u#P3RPIuLOrT$L=q{gxKGBh zPqu!X1kGMf>Ia?3_cxJ9b1mSDhRY#iJw>wS1f}!@#S9d+ZsdDCM*n!eu9)G3LUvk7 zT1oyjT`mJ$48$d1bcZE6BeqxEV-4GV9wt!fx;E3{} zic;;8QNQdMv@T*1%n;LYs)%WZebfZ(WDFAh=mtBg-Zi$+O*XvQ>0CXNqNsQ*y=nR` z9|T<+J{daWcMr5#-m+Dqu^(DdFD1|REyc))h6OD*jMIL${Ze*_wONR^yXv39X-p>r zg%;BSdMarY^025#>gNK&(YCd#Tn*z|9P2wl)R2cdgM5&6F?(W-Q4%LO1_xKD_akIH zoYdFTz06k=(gQjngVgODA8C!cp&hVj2LB6lr+v5u=?Zdb_%n3kUl6R7G>ozQ5t+*`MjLdQ z+-`eIRLyEOE3;9+s8+XJ#ec=*vQ!jY zLg(mWYir_2=Vs?O>AkzMP*+v)fx$RPbU{#R+p|4A<5VoPgaZyyui4;}PR+jYY$a;FVS z=M}ll9U0!J5Y(Jf1WnlUQ30#Ui7?6V_Cq(`%eG=^jTP3IFx8(r$*Q@8v!1z$wY`a>)BlpoxVb4S zZ9m)KC(8p9_JrhE&*~E{EteKhQf{bw2KZ9S}U? z6H`;$Fy{K@kUa+V1vuNE43K|>@lKDh1K@4$y5QchC37Y#CS-%3IPmzby*Xb2UUyOE z&>{LCg8Z!w2ckR*KqAKnkOl;dFM{Bc;|t4AtIBVy*5Q&s0wmXf70COM@sVVK zfP|3vF$D1d#1o2r{nW^k{8XSEh|vBC;}vJX%Pv2srvuyy{2KUy*rHGnPJl5)NFT`f z@VrpK7&YR%ec}>@i`eNTa0FT@bK0pa{B&Uaa0L%|1>bk!JqD?tX|bSu_d(pBNF}Ok z`sPjgr%ifxXi?~G@RWRgM0`}xDXA0zSXTdpKUu|)yvx;mQb=Bsoe{r}=0qXatyt(m z%VY<3CHms|G@ikhUw(|&`KFO!m9#?3=?0Bw8>m6N`Z$Qd0D8kxpBKyp*;oM@U2~!~vRRD~o4zgSkNdUB5(FUq6yoIb>J`o+s3WEnUKpsE{ zO7U%bZ1FD$6dy%!f>N-9UnDXiKp3^(u#|UbMpF=8XwES)Lk_ML01Q|Omd{*7AEKv! zeY6$?Mul1;_7}$|0+Iy&=a9L;^W_Zt;$wg7-Il7s@+gVG4@d-U;d2W4zFj83`kMFp8b*L_8*X0Id=Xp8G;%JI3;IpwN&O)_*t$e8}VrKYc6q987USgU=4GwX9<;mSoO304vMqWl)cukHt8_##fg~yr##?gR#W)2_(+E+$@5WW)_xDDTNe;1)6DyuOXD%kXcL(x;9Efr$ z5T!N-&=oo+U@qxy7|hUEa4;~CKA#b(Z4QtwA6+U|Ho!;5HcQV(tr^;cQE#i-6F zm;U2coZ9dH4wesuEx^v^T_*-=(LM|Y{$aq7Z`+^GP6vw{2R>K8kYm7W7WHi5$k+?; zzxK;T$2)(D%h>m;Jw`tYffF+NRuKMPjr=x?A&Zf7D**tSBb%z43YxYwUhdlJt$Zj;UF*jI|}$ zC$gvaQrH;gzHA)ryS1sjd=XNV+lkTq`D_$vM(4T`lcw;$lFW(N~ z>=~QWr8|&=2xxi1(=vl&%@ra{Cs}si1ENPA@Dsf_jSpNKR_IvP8J#Xn%-h-_hW8%N zi>CI4(6XedE*BoxlK!yfG5rq%aRfg?e=B~2G*7}+*s6Fe#CrrvzE)MXZ21d`i}vAM zkxV+rrUasn(e-oq3E=LQ7d6{Q+5P~YJ!w+yy-sM;9D#H_&_&=jO|*2($^&7JVFM*^ z>LT0LV27Kld(i@u4e;-h&e zUr}Bsz?pCxo9s#4HPw*D5y!hmo`S`^dU4EBa{(*cj*oP&lQa#7T>RbV))@9dze(>~ zNqW)TwU2#Y=2I}iXWnv4oFDPlNoG%G<#a$D#Xq)ft_w{o<&cJMVkXPnP#8c=zDokK z@SX8N_kZ8S72U+eVX>~xUx68jA19?&VT1?Dm^Sje?l9;0vp!M2g%iWj1CwT4t5k~w zR=kx!*tSOJS)z4SLPxvz$Uv0;e#fW%_qri3-?QrgT#qe3rR!zljTqGYBid!j+?idw z@?qsg=nIo};`G~)C5_9VrcK&Qw>32Zu!IS&?iE*hty6{;qk9*M|5(#t#^*{DFa5x&RKjMdi3eN6C$ zH*7ifB$)17ZT5Dh8HbJ4l61?*j*@iLysbB$N;CC`#c69085$M}6=${MWmX#5*h0kR z-Pk<3Pc?1sBY415ad0uQa5g4Bfizyn7LYc0n~#-ntL41Vn7C3!zWU|Regm<~g}Q9L zLG&rh&o5dIvQ{j$-0_ZX1W{Fr*m6lUe|Ot1WZ?fsNrvdMWKajgQbvlyb_r~`+cCca z0hx3rGyA5Wf7p{)4L$%w1IX_|FI!|)4qp&i+*EA|detxr4@Z!!TvNOEI?i`|$Z*VD zG6lD1!SU8ZRbMD*=r+OR89mvpL{;V39kZAuGfU__m?h}z@$f7rINaI!-jq4j6IJxJ zl3AEvT;Z-3s=D=fIbT(yA;U{U+oi~_ViFa!63fRggo|RQHfj6y%^Oey^nd2_2d~#P z-ItFCw;DhnhR-SHzW@+KtxX{oGUsR0v}H~n16`qYj-G$uiDIukv5U_8fz}A-h8^TJ zJ}O5Z&k0+hyyLqHs1CIdqwKyGmt+ew52}{Y-<_dkQH0m1z`PvW<>%TWDgSOo=pxXWiYv&LoS`=N; zwr$(C-M?+yw)xw(Z5zLB+qP}n=}IbtWRgi<)tkS1gIl-GS$nTHptD8n)*?lcN@QK# zJEfv@F8LWQH|mq(+C!@xv70CL@HUyGDIozseZ>gR882d*QMOeomE1za4^qApOc#+v zcH@8x5y63#PDPt+wA?c7u|`n^VJ@@Gn8C{u%_i<=gb3ghF1U#DxEq3PfQtSoe>#CD z046#%J#(z<4GWqfwlyr8o!+{flP46D*U_&}<{K?yk*Cq3iD_t>DF)^i80PNzlGO)* z4%rH9;}3nvnU70uOU|dexdlJr8m;~(t1%-cDy81R>w^vI_&9%udc^49w*+DkW0a~%dufh zYUSD_Cdz!AlVw=QjA7HUCTw(??d--eQr~72@z$;QPi8tbDv^pWciVp^7Y?yT53kqi zyCaT{xT5g=q~j{65huix6ycAj>ud*AriU)4%R)2N_lERthnwc&E{0#VpKAr9_gT=c z-yi*GcQuH7E>k1h2`Avd4GqU1+d{W@b{Ca+N|}M-4jH=6vRq$R!gn))a1W z=S4T}?x8upX&z7Q<~#>tdb$sW{txp!6a3I0=b>Jx+40<=4QjBhAbX1B>gjyLM1yeW*mctT`vai7t=C5}qSBO~f*LQj@%6dId!u+$qhjg-%~NU>ITfK> z^smG!<(u{~Mna89wGL&iAiQ-m+ZiFLhE+gL5#&i46Zkz3ZOB`FUdmc^vKRvCgB#EL zagqt1x=H6A2!SNe`%Jb|gNX)TH|GnrUpFA_lXLFjz~dDHM^u^d`uI&yUi8hZ#$3c3 zR^B%{w@yG4#e~Uk6!=YD(h@V&pc*}y#aZaJsgs#-`_K{7B7CdylU>Vns!+8VTjzX@ zGvnWrO*L^36Qv5##c@BsX=OLRa<+NO_bJkCXhYhQ?}C9DZYmHd-R3TJN#DBs1BvR- zSWPLJu~5*8x%Pk&Eyv%{=~cVke6@=r8lDC%-#FI6@&ss%SS`xc1{hmF=!<6c1>W%Y z5C#56YL+@nz}mf{5Dd5uSz6~wU^JKIDS(ft$133_4(B`Xs*<*x#oBXLR?IJG3m7tG zvA6YLJE6=!HHxok*c8Ii!H44}G^Sha$XqrB&A5C|CNKg~o^U|W6JjA3wK^t17WFmw zYYIDhlX8^ZCISlHFgn|ay3$O7!_mBfIbJOZNf;+mN@@t=Z+WAJ9C75X6c1xWCr1n8 z52I4#EY9Yn@-0rF19ngiPDYBIh==YeCh^uPF?7m*qwJ-;ig==jH!SM!>v)*k3p;SfO;69ZOu_ z)ynVr-gb0`dEwR^Rp*Svp-CRZH&jXrfw_?icI#ThC5QKTLu;_^xJoAK>48CWmIGfNa(e8} zf}k$G7+ATwmAnyFT#koMh)?Z{%ee~_4O_&%7hW!bU5!&Rb`P~Wzo5s4K8rD2gofa+sCejUBu=-%LHV00; zX#^qG-OL}idhO^_^3BWNl{)clXa$GSWWUo^*26a&N=KF}5RCb3NQ1^3(*}~K98|Bp zopv^L0c<;BrAH0L!mY>)5(~ST#W~3>nqd%g0Y~fonv}z==4O4^a{yHoUXCTAs>nGi zxpD65Y5uh6Ta8k}Tm|?(z==37jd-bvy(Bxu>dW+z@J%n88GAI~`mR`V3?(Xs*p!_>QT)ro!H^L0I( zB-&*6BYPSXOk#BAt{}diyyr+k6)$TwmRu*{wWn*HuUyf-+~MC7#AOO=M(3(_$U7(# zBJB#VMz^KxW)wVk2gSPBFkv!Y=>b&viEPVvbib9UW;uy7&rMK@8)H8?UO?4aAF1Pn zNvCF}629-`>$^qoNj@+|7AHuYF6Qy3k@`fcj^oWGp6_)9%5#%FDOq8Vxtcj%vDY(J0 zTpIbzV>=a@QSuGGFqag^6v&R2oaqKRHHZ{-ZipKboamRu?3*EwD+Gs(M{RT(OPzJY zJ2i^oUt=;v)A5OyZ+#qfsAeh=8q|@MO4?m7_Wjl{+?IX)@<^)+=2S(0)sjaE#H$^M zT;|LeY=}N||L8r~*BBq*#-C&1?HhWf9~=Gzb7|zmdkw&1u72l`jLhPrY9T@#4Fuxl z>9pJ=vlre0Da3tv2_wQ+|3T;x$3EJ+9Re0DZ0Sm+*uwVcPGJP)O94WyiD%oqLZ!C& z3jSaLqh#62;mthv)Y-Cb>)R<)#28`LwFdoXA_4_zT3>p9YG;0{My3a|I}I&}mZ~DD zE)6~Yjj|-Zg53t~ZcA3-3%zvqH*1HJ&kLzY(~GoyD2mFee4*nZWV8THrdvYp?>*!9 zAd&7rA=cm?yT*D72f~_fVv#}X3A6Y8=G6=T07Fvv?6rJ(}{Jf%d)gzyF=^a=JHnjN57HtH_9;j#rD$R9akzjUBWsk?Q9b6BF{&cdrtZ&X3 z2GAiCS#hs+gw6=YjVy%A%uXRXY!RRBis%j=$@v=Vu(pcsAo-Mqa?o!SjWLI@W+Z#X zCy&Mg<)NJ7;3&_Aa-Xq2;dk;k(tvVX&8Sd}u4}2$0KC{xB;T&+TPJ|}|nW!v& zv@mKQA$Y3Cj?}7%G96tuk=%_R|1QlKio6XxA-bAID{jEQW$gm-bexc47VQll0jL?G zLEjcf&+>$o!$5Ptq7$XTKt|)__;lDQsUkR_I4q{j~Q4#wWn& zF?MsMx55W3Fk-A-FW3dAv&cGDz0M8!cHQ}BG@MuXLY}QNd?tE%Bi*&3Dv~4ZJ+0N1 zEE0fnyUcR)sNqX3^J* z3yM?-HZ7gCQ}W!Me^QFYTHmT>5iivPWRF zxI0K&=6Wj=C@WpBz4yHKF9!3jN(2@5XG#R;dvy)$A`I3_RjI|Wq+FX%0`w{gS%fym zl^LcZ{G@JxxS!3du`bK@(%yZh=V-ds$Xcg7sD$`;2WM_;S0A5X31T%{S}v|2V3?~C zTSL4pR#}zp9v0+>&>t(8|B80y#!DA`=UyyIGS+|WVQbS|3K<+SIbMQ0Ch{&*LH1pE zP}-vQqpGP)#?DQQuu28)_=LM|Iyrn>>{(nZ=cc3jWJaQ>#o7Kgo@YZcy`>XoPS^Sm z25l;kkg?m)w*7xBCA6!K0&W>*rchI%$_eVqpi{n}UX?}tK) z5gn{^@f#NjCjwW@m`&-AOGOmxs`-q>mI5{C_z{RANmiRQrA;InJlsEH1ZtXH%qX-=Rn^TQ;X*1 zP~YDMpVGo>nU?d`rgH^^)H!KDz10wF5Z6$PL*D;ILh^VkW)ouhPJ}?d^#0`a&}MS# zdkM@#gwIc=pU&;E-?G{MMi61M62{$YUMbgU1nfEwNc5U&NfRSv(0W&G! zh!_bKXl+a{Aa&k1&Ddif!?k4K+5B8rf*gSUl(YW|@|eUXw|v+DHg2V9`kX*@P`iH= zzAxW~pCB)G%+wvhNy2IIlwNIdK8HrRrx$0a)5D=iG$UfQINkG;eR`&_`6#6rNp3H- zb2&0O*tOb1;brT+43Ip#n(FLJCs*h3|5T7ZmSJvq0#{X(T3qS0-(z8z0#1QU$ zu98NwV-tyrkc=&qs?*YK_;brf>YVM(}05fN$L$=Zo!mQYH6wM zJ{>*(kD4yl!y)uGbItxqU{ywW48-g*iQy9pOYvW5ZIF3}k5}L}LHi%uAO&T$?<$6W znd?*n^&KUF9zFE788`mb53FpWtmRRW)h?_h?sgtE+e!%||QRxNae{0G->O}Aj-={YqFIdTakZ-pLDbfQr#y7tt zJTEe}o2G=RHIbSgU`QX6-_CcxZ9w^?ku|DkCKL4oAr9GO{~hWz@NXII1!;l3={A{= zl~Sp2j$%Bk;Y`RMAEqH|-C^Ol3~kt0pdc#0LmfGgdZK&Btr4vB-s`sy1d@OR#&;m? z7j&Q--0)tP49WO$dpGCUqYqzel79F+!R1hF5eT-AZ?pMB9mh6Y zL&&gd%CH={@xZ?+4W5>IHCn%$E&RYZhV|yu&qb^`43xD%0j=bfaHGDWJy1lbiUPMC z1`S)x&%iPhMaAEd+3tzDv7Glck!?uAU{h0b*&AGkU92P;2N(6qN^@pzPUKwMe$aLp zDR@7o=a>!JHOShXfVq10CssxK?T4E-%-5X{x3Z=+HL=Rqv>ce=De6rjpEa_BP=!q6s5>N5cXONFFsl^zY42;yp$J`9|YedVcdjB*gI zL4Wi4c3ll;sk35p(7h_&fnS+Fv#l0>TflJXQPiJ^X=mjd<)yKX&jRIxp}jRg*m6C_ zd5ed62%~BTOrvY(Er_rsca-%FP#A#BqI_*m^~s|+2+w^P4D^uwhwLF=SLRC8@<8+; z+Um+Ep3Du*`esfAb;6Kn7-~`L1jkJ2oF-8`AT1P{eu!hLc+8M!8JeE-IGl*2lzk}U zqIkqW)fPl<=5FOHT{fN7#1FP{%2?jSpJRZhroruZR`unO+>|>>kxeoIrGEi8g60>w zb}zBkO%U^19`#D8iuBekJbs#F4vu#LWabC`&ja!V+$_k)KIAFz6Fa{=2eCBV%s9o3 zY=^U^+8^B>%Cs86iOkA7bl?7%pH|Ie8oVSQepiUwlHsH`Fa7ch#$)D)#|(3Bb%~7a ziW7Q1$4NfO>8+9c=O39kI~~Bn-n>Xd=G-x8{*|_0^8&2VDJX_8V=H&JFdOxzFdt`} z-4pbFb0>k-1hlkP0FlQBAZdN$Js$_du%kkLr?!$#P(>?7CD99WE>EqArfk8w66QVS zQndLFB)Cn$OO6_PE^Q~a!uoH6vtM*g` zC$~@61@?0vhduxT=Z49i=ZYc7X>dYFtaFmf@H=|6kPbSFKA34H$l#R;J>)3rFcEwP zZ5hCP!K|D?VSp#o0vGwRlGLjHEtFS^f-f_hZ&jn2W_xZNGYBVOAkMc6J13YB(f~6CRx8K8U_q&K%Ez^uuJXg>|+XKJ*d|w`t{MIP28I1KY!7 z=M)dK9kX5iYqk~7#%6NV$^&#ye8O$w^?1K#$Aqqi1GKj z91)jI4R#$#-WYmXiu&j*w5uZ!`4_4N0{OMf_(zE)gC{d_oLLXV-?X8uVA5#UNJzkz zSH>+`AL$mf3+yJ<$>OFT@KYChod3qEihiM;|9*aZsR2-a-(Rc>1riMs9TEo;6_OB= z7?KE*9Fhu>5|RRv@fWn>gye!0_yw(`AY}kd{{K-c7u)}d2>tR_|C2fL>_Of%`R&op zg8=|w{Qcbj8@JLku{E+Y{$;rS3pnah^-xA$!O9ℑ?b5F3|r&07P^i2r{9F!Xf~u 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 oTerznu Date: Fri, 16 Jul 2021 11:19:51 +0200 Subject: [PATCH 040/105] Add support to build release with back to old Elixir 1.10.3 However, to build a release with OTP 24 requires Elixir 1.11.4 or higher --- .gitignore | 1 + mix.exs | 28 +++++++++++++++++++++++----- 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 7433e2cf9..e233877df 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ /Makefile /config.log /config.status +/config/releases.exs /configure /aclocal.m4 /*.cache diff --git a/mix.exs b/mix.exs index a8783857a..1539e6d24 100644 --- a/mix.exs +++ b/mix.exs @@ -215,11 +215,29 @@ defmodule Ejabberd.MixProject do ro = "rel/overlays" File.rm_rf(ro) - System.shell("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.template > ejabberdctl.example1") + # Elixir lower than 1.12.0 don't have System.shell + execute = fn(command) -> + case function_exported?(System, :shell, 1) do + true -> + System.shell(command) + false -> + :os.cmd(to_charlist(command)) + end + end + + # Mix/Elixir lower than 1.11.0 use config/releases.exs instead of runtime.exs + case Version.match?(System.version, ">= 1.11.0") do + true -> + :ok + false -> + execute.("cp config/runtime.exs config/releases.exs") + end + + execute.("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.template > ejabberdctl.example1") Mix.Generator.copy_template("ejabberdctl.example1", "ejabberdctl.example2", assigns) - System.shell("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.example2 > ejabberdctl.example3") - System.shell("sed -e 's|ERLANG_NODE=ejabberd@localhost|ERLANG_NODE=ejabberd|g' ejabberdctl.example3 > ejabberdctl.example4") - System.shell("sed -e 's|INSTALLUSER=|ERL_OPTIONS=\"-setcookie \\$\\(cat \"\\${SCRIPT_DIR%/*}/releases/COOKIE\")\"\\nINSTALLUSER=|g' ejabberdctl.example4 > ejabberdctl.example5") + execute.("sed -e 's|{{\\(\[_a-z\]*\\)}}|<%= @\\1 %>|g' ejabberdctl.example2 > ejabberdctl.example3") + execute.("sed -e 's|ERLANG_NODE=ejabberd@localhost|ERLANG_NODE=ejabberd|g' ejabberdctl.example3 > ejabberdctl.example4") + execute.("sed -e 's|INSTALLUSER=|ERL_OPTIONS=\"-setcookie \\$\\(cat \"\\${SCRIPT_DIR%/*}/releases/COOKIE\")\"\\nINSTALLUSER=|g' ejabberdctl.example4 > ejabberdctl.example5") Mix.Generator.copy_template("ejabberdctl.example5", "#{ro}/bin/ejabberdctl", assigns) File.chmod("#{ro}/bin/ejabberdctl", 0o755) @@ -250,7 +268,7 @@ defmodule Ejabberd.MixProject do Mix.Generator.create_directory("#{ro}/var/lib/ejabberd") case Mix.env() do - :dev -> System.shell("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh") + :dev -> execute.("REL_DIR_TEMP=$PWD/rel/overlays/ rel/setup-dev.sh") _ -> :ok end From e14cd5dd17e83131b3b2242d313cb8a69f627bce Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 16 Jul 2021 10:10:12 +0200 Subject: [PATCH 041/105] Mention in README.md the updated --with-rebar and "make dev" --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 35b15920b..1662fc05c 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,7 @@ To compile ejabberd you need: - PAM library. Optional. For Pluggable Authentication Modules (PAM). - ImageMagick's Convert program and Ghostscript fonts. Optional. For CAPTCHA challenges. + - Elixir ≥ 1.10.3. Optional. Alternative to build ejabberd If your system splits packages in libraries and development headers, you must install the development packages also. @@ -155,9 +156,25 @@ start and stop ejabberd. For example: ejabberdctl start -For detailed information please refer to the ejabberd Installation and -Operation Guide available online and in the `doc` directory of the source -tarball. +For detailed information please refer to the +[ejabberd Documentation](https://docs.ejabberd.im) + + +### 3. Use ejabberd locally + +Alternatively, you can setup ejabberd without installing in your system: + + ./configure --with-rebar=./rebar3 + make dev + +Or, if you have Elixir available and plan to develop Elixir code: + + ./configure --with-rebar=mix + make dev + +Check the full list of targets: + + make help Development From e0c9a6308dcf29a611f5b06675167953ee3ce398 Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 13 Jul 2021 23:45:17 +0200 Subject: [PATCH 042/105] erlang:phash is deprecated in OTP 24, let's use phash2 --- src/ejabberd_router.erl | 6 +++--- src/ejabberd_s2s.erl | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ejabberd_router.erl b/src/ejabberd_router.erl index 4939ae1e8..492beb6d3 100644 --- a/src/ejabberd_router.erl +++ b/src/ejabberd_router.erl @@ -424,15 +424,15 @@ balancing_route(From, To, Packet, Rs) -> Value = erlang:system_time(), case [R || R <- Rs, node(R#route.pid) == node()] of [] -> - R = lists:nth(erlang:phash(Value, length(Rs)), Rs), + R = lists:nth(erlang:phash2(Value, length(Rs))+1, Rs), do_route(Packet, R); LRs -> - R = lists:nth(erlang:phash(Value, length(LRs)), LRs), + R = lists:nth(erlang:phash2(Value, length(LRs))+1, LRs), do_route(Packet, R) end; Value -> SRs = lists:ukeysort(#route.local_hint, Rs), - R = lists:nth(erlang:phash(Value, length(SRs)), SRs), + R = lists:nth(erlang:phash2(Value, length(SRs))+1, SRs), do_route(Packet, R) end. diff --git a/src/ejabberd_s2s.erl b/src/ejabberd_s2s.erl index 21c799c6c..8057c9a35 100644 --- a/src/ejabberd_s2s.erl +++ b/src/ejabberd_s2s.erl @@ -429,8 +429,8 @@ choose_pid(From, Pids) -> Ps -> Ps end, Pid = - lists:nth(erlang:phash(jid:remove_resource(From), - length(Pids1)), + lists:nth(erlang:phash2(jid:remove_resource(From), + length(Pids1))+1, Pids1), ?DEBUG("Using ejabberd_s2s_out ~p~n", [Pid]), Pid. From 91763bbc611884c9e115b9f5dddde63f1d2c0dbc Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 20:52:50 +0200 Subject: [PATCH 043/105] As Mix config now must be evaluated at runtime, rename to runtime.exs --- config/config.exs | 10 ---------- config/runtime.exs | 12 ++++++++++++ 2 files changed, 12 insertions(+), 10 deletions(-) delete mode 100644 config/config.exs create mode 100644 config/runtime.exs diff --git a/config/config.exs b/config/config.exs deleted file mode 100644 index ef479a4db..000000000 --- a/config/config.exs +++ /dev/null @@ -1,10 +0,0 @@ -use Mix.Config - -# This is standard path in the context of ejabberd release -config :ejabberd, - file: "config/ejabberd.yml", - log_path: 'log/ejabberd.log' - -# Customize Mnesia directory: -config :mnesia, - dir: 'database/' diff --git a/config/runtime.exs b/config/runtime.exs new file mode 100644 index 000000000..050eae8b0 --- /dev/null +++ b/config/runtime.exs @@ -0,0 +1,12 @@ +import Config + +rootpath = System.get_env("RELEASE_ROOT", "") + +# This is standard path in the context of ejabberd release +config :ejabberd, + file: Path.join(rootpath, "etc/ejabberd/ejabberd.yml"), + log_path: Path.join(rootpath, 'var/log/ejabberd/ejabberd.log') + +# Customize Mnesia directory: +config :mnesia, + dir: Path.join(rootpath, 'var/lib/ejabberd/') From 937e1c2e373e360fe47e455886d186492248f31f Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 15 Jul 2021 01:29:35 +0200 Subject: [PATCH 044/105] Add workaround so rebar2 can use Elixir 1.12.0 Notice that Elixir 1.12.0 requires Erlang/OTP 21 or higher BTW, this workaround works only with rebar2... unfortunately rebar3 doesn't compile the elixir files from lib/ --- Makefile.in | 14 +++++++++++++- lib/elixir.app.src | 11 +++++++++++ lib/rebar.config | 21 +++++++++++++++++++++ rebar.config | 2 +- 4 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 lib/elixir.app.src create mode 100644 lib/rebar.config diff --git a/Makefile.in b/Makefile.in index c39195ac7..ac8c0b453 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,6 +130,7 @@ ifeq "$(IS_REBAR)" "3" EBINDIR=$(DEPSDIR)/ejabberd/ebin REBARREL=$(REBAR) as prod tar REBARDEV=REBAR_PROFILE=dev $(REBAR) release + ELIXIR_WARNING="\033[32m===>\033[00m If you get \033[1;91mDependency failure: source for elixir...\033[00m, please run \033[4;37mmake\033[00m again" else SKIPDEPS=skip_deps=true LISTDEPS=-q list-deps @@ -142,12 +143,23 @@ else EBINDIR=ebin REBARREL=$(REBAR) generate REBARDEV= + ELIXIR_WARNING="\033[32m===>\033[00m If you get \033[1;91mERROR: Dependency dir .../elixir failed...\033[00m, please run \033[4;37mmake\033[00m again" endif endif all: deps src -deps: $(DEPSDIR)/.got +deps: elixir-rebar $(DEPSDIR)/.got + +elixir-rebar: + @[ @elixir@ = true ] \ + && ( [ ! -d $(DEPSDIR)/elixir/ ] \ + && echo $(ELIXIR_WARNING) \ + || ( [ ! -f $(DEPSDIR)/elixir/rebar.config ] \ + && { mkdir $(DEPSDIR)/elixir/src ; \ + cp lib/elixir.app.src $(DEPSDIR)/elixir/src/ ; \ + cp lib/rebar.config $(DEPSDIR)/elixir/ ; } \ + || true ) ) || true $(DEPSDIR)/.got: rm -rf $(DEPSDIR)/.got diff --git a/lib/elixir.app.src b/lib/elixir.app.src new file mode 100644 index 000000000..b53cbdefc --- /dev/null +++ b/lib/elixir.app.src @@ -0,0 +1,11 @@ +{application, elixir, +[{description, "elixir"}, + {vsn, "1.12.0"}, + {modules, [ + elixir + ]}, + {registered, [elixir_config, elixir_code_server]}, + {applications, [kernel,stdlib,compiler]}, + {mod, {elixir,[]}}, + {env, [{ansi_enabled, false}]} +]}. diff --git a/lib/rebar.config b/lib/rebar.config new file mode 100644 index 000000000..9154464fa --- /dev/null +++ b/lib/rebar.config @@ -0,0 +1,21 @@ +%% Using Elixir as a Rebar dependency + +%% This configuration file only exists so Elixir can be used +%% as a Rebar dependency, the same happens for the file +%% src/elixir.app.src. + +%% In practice, Elixir is structured as OTP where many applications +%% are placed in the lib directory. Since this structure is not +%% supported by default by Rebar, after adding Elixir as a dependency +%% you need to explicitly add it to lib_dirs: +%% +%% {lib_dirs, [ +%% "deps/elixir/lib" +%% ]}. +%% + +%% Run "make" as the proper compilation step +{post_hooks, [{compile, "make compile"}]}. + +%% This prevents rebar_elixir_plugin from recompiling Elixir +{ex_opts, [{src_dirs, [".PHONY"]}]}. diff --git a/rebar.config b/rebar.config index a125557c6..7d8d57998 100644 --- a/rebar.config +++ b/rebar.config @@ -24,7 +24,7 @@ {if_var_true, tools, {ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}}, {if_var_true, elixir, - {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.4.4"}}}}, + {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.12.0"}}}}, {if_var_true, pam, {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.10"}}}}, {if_var_true, redis, From c04b6b29084d464b35c223c4969e8e1d8bc55443 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 19 Jul 2021 17:22:20 +0200 Subject: [PATCH 045/105] Update CHANGELOG.md with 21.04 and 21.01 (#3646) --- CHANGELOG.md | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 75 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 878aef870..b83caab1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,81 @@ +# Version 21.04 + +API Commands: +- `add_rosteritem/...`: Add argument guards to roster commands +- `get_user_subscriptions`: New command for MUC/Sub +- `remove_mam_for_user_with_peer`: Fix when removing room archive +- `send_message`: Fix bug introduced in ejabberd 21.01 +- `set_vcard`: Return modules errors + +Build and setup: +- Allow ejabberd to be compatible as a dependency for an Erlang project using rebar3 +- CAPTCHA: New question/answer-based CAPTCHA script +- `--enable-lua`: new configure option for luerl instead of --enable-tools +- Remove support for HiPE, it was experimental and Erlang/OTP 24 removes it +- Update `sql_query` record to handle the Erlang/OTP 24 compiler reports +- Updated dependencies to fix Dialyzer warnings + +Miscellaneous: +- CAPTCHA: Update `FORM_TYPE` from captcha to register +- LDAP: fix eldap certificate verification +- MySQL: Fix for "specified key was too long" +- Translations: updated the Esperanto, Greek, and Japanese translations +- Websocket: Fix PONG responses + +Modules: +- `mod_block_strangers`: If stanza is type error, allow it passing +- `mod_caps`: Don't request roster when not needed +- `mod_caps`: Skip reading roster in one more case +- `mod_mam`: Remove `queryid` from MAM fin element +- `mod_mqtt`: When deregistering XMPP account, close its MQTT sessions +- `mod_muc`: Take in account subscriber's affiliation when checking access to moderated room +- `mod_muc`: Use monitors to track online and hard-killed rooms +- `mod_muc`: When occupant is banned, remove his subscriptions too +- `mod_privacy`: Make fetching roster lazy +- `mod_pubsub`: Don't fail on PEP unsubscribe +- `mod_pubsub`: Fix `gen_pubsub_node:get_state` return value +- `mod_vcard`: Obtain and provide photo type in vCard LDAP + +# Version 21.01 + +Miscellaneous changes: +- `log_rotate_size` option: Fix handling of ‘infinity’ value +- `mod_time`: Fix invalid timezone +- Auth JWT: New `check_decoded_jwt` hook runs the default JWT verifier +- MUC: Allow non-occupant non-subscribed service admin send private MUC message +- MUC: New `max_password` and `max_captcha_whitelist` options +- OAuth: New `oauth_cache_rest_failure_life_time` option +- PEP: Skip reading pep nodes that we know won’t be requested due to caps +- SQL: Add sql script to migrate mysql from old schema to new +- SQL: Don’t use REPLACE for upsert when there are “-” fields. +- Shared Rosters LDAP: Add multi-domain support (and flexibility) +- Sqlite3: Fix dependency version +- Stun: Block loopback addresses by default +- Several documentation fixes and clarifications + +Commands: +- `decide_room`: Use better fallback value for room activity time when skipping room +- `delete_old_message`: Fix when using sqlite spool table +- `module_install`: Make ext_mod compile module with debug_info flags +- `room_unused_*`: Don’t fetch subscribers list +- `send_message`: Don’t include empty in messages +- `set_room_affiliation`: Validate affiliations + +Running: +- Docker: New `Dockerfile` and `devcontainer.json` +- New `ejabberdctl foreground-quiet` +- Systemd: Allow for listening on privileged ports +- Systemd: Integrate nicely with systemd + +Translations: +- Moved gettext PO files to a new `ejabberd-po` repository +- Improved several translations: Catalan, Chinese, German, Greek, Indonesian, Norwegian, Portuguese (Brazil), Spanish. + # Version 20.12 - Add support for `SCRAM-SHA-{256,512}-{PLUS}` authentication - Don't use same value in cache for user don't exist and wrong password -- outgoing_s2s_ipv*_address: New options to set ipv4/ipv6 outbound s2s out interface +- `outgoing_s2s_ipv*_address`: New options to set ipv4/ipv6 outbound s2s out interface - s2s_send_packet: this hook now filters outgoing s2s stanzas - start_room: new hook runs when a room process is started - check_decoded_jwt: new hook to check decoded JWT after success authentication @@ -10,7 +83,7 @@ * Admin - Docker: Fix DB initialization - New sql_odbc_driver option: choose the mssql ODBC driver -- Rebar3: Fully supported. Enable with ./configure --with-rebar=/path/to/rebar3 +- Rebar3: Fully supported. Enable with `./configure --with-rebar=/path/to/rebar3` - systemd: start ejabberd in foreground * Modules: From c3169e9eeab15f47b33a14a6b93cec67c38193a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Tue, 20 Jul 2021 17:07:40 +0200 Subject: [PATCH 046/105] Typo --- src/ejabberd_listener.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_listener.erl b/src/ejabberd_listener.erl index 0b46dde2d..93fd2e0fd 100644 --- a/src/ejabberd_listener.erl +++ b/src/ejabberd_listener.erl @@ -113,7 +113,7 @@ init({Port, _, udp} = EndPoint, Module, Opts, SockOpts) -> _ -> {Port, SockOpts} end, - ExtraOpts2 = lists:keydelete(socket_timeout, 1, ExtraOpts), + ExtraOpts2 = lists:keydelete(send_timeout, 1, ExtraOpts), case gen_udp:open(Port2, [binary, {active, false}, {reuseaddr, true} | From bab9543c1f6def7ec8e0a530ab380a27114c45c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 21 Jul 2021 11:12:54 +0200 Subject: [PATCH 047/105] Update dependences --- rebar.config | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/rebar.config b/rebar.config index 7d8d57998..1a3a1672f 100644 --- a/rebar.config +++ b/rebar.config @@ -19,48 +19,48 @@ %%%---------------------------------------------------------------------- {deps, [{base64url, ".*", {git, "https://github.com/dvv/base64url", {tag, "1.0.1"}}}, - {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.28"}}}, - {eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.20"}}}, + {cache_tab, ".*", {git, "https://github.com/processone/cache_tab", {tag, "1.0.29"}}}, + {eimp, ".*", {git, "https://github.com/processone/eimp", {tag, "1.0.21"}}}, {if_var_true, tools, {ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}}, {if_var_true, elixir, {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.12.0"}}}}, {if_var_true, pam, - {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.10"}}}}, + {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.11"}}}}, {if_var_true, redis, {eredis, ".*", {git, "https://github.com/wooga/eredis", {tag, "v1.2.0"}}}}, {if_var_true, sip, - {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.42"}}}}, + {esip, ".*", {git, "https://github.com/processone/esip", {tag, "1.0.43"}}}}, {if_var_true, zlib, - {ezlib, ".*", {git, "https://github.com/processone/ezlib", {tag, "1.0.9"}}}}, - {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.1.12"}}}, - {fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.46"}}}, - {fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.31"}}}, + {ezlib, ".*", {git, "https://github.com/processone/ezlib", {tag, "1.0.10"}}}}, + {fast_tls, ".*", {git, "https://github.com/processone/fast_tls", {tag, "1.1.13"}}}, + {fast_xml, ".*", {git, "https://github.com/processone/fast_xml", {tag, "1.1.47"}}}, + {fast_yaml, ".*", {git, "https://github.com/processone/fast_yaml", {tag, "1.0.32"}}}, {idna, ".*", {git, "https://github.com/benoitc/erlang-idna", {tag, "6.0.0"}}}, {jiffy, ".*", {git, "https://github.com/davisp/jiffy", {tag, "1.0.5"}}}, {jose, ".*", {git, "https://github.com/potatosalad/erlang-jose", {tag, "1.9.0"}}}, {lager, ".*", {git, "https://github.com/erlang-lager/lager", {tag, "3.9.1"}}}, {if_var_true, lua, {luerl, ".*", {git, "https://github.com/rvirding/luerl", {tag, "v0.3"}}}}, - {mqtree, ".*", {git, "https://github.com/processone/mqtree", {tag, "1.0.13"}}}, - {p1_acme, ".*", {git, "https://github.com/processone/p1_acme", {tag, "1.0.12"}}}, + {mqtree, ".*", {git, "https://github.com/processone/mqtree", {tag, "1.0.14"}}}, + {p1_acme, ".*", {git, "https://github.com/processone/p1_acme", {tag, "1.0.13"}}}, {if_var_true, mysql, - {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql", {tag, "1.0.18"}}}}, - {p1_oauth2, ".*", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.9"}}}, + {p1_mysql, ".*", {git, "https://github.com/processone/p1_mysql", {tag, "1.0.19"}}}}, + {p1_oauth2, ".*", {git, "https://github.com/processone/p1_oauth2", {tag, "0.6.10"}}}, {if_var_true, pgsql, - {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.11"}}}}, - {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.22"}}}, - {pkix, ".*", {git, "https://github.com/processone/pkix", {tag, "1.0.7"}}}, + {p1_pgsql, ".*", {git, "https://github.com/processone/p1_pgsql", {tag, "1.1.12"}}}}, + {p1_utils, ".*", {git, "https://github.com/processone/p1_utils", {tag, "1.0.23"}}}, + {pkix, ".*", {git, "https://github.com/processone/pkix", {tag, "1.0.8"}}}, {if_not_rebar3, %% Needed because modules are not fully migrated to new structure and mix {if_var_true, elixir, {rebar_elixir_plugin, ".*", {git, "https://github.com/processone/rebar_elixir_plugin", "0.1.0"}}}}, {if_var_true, sqlite, - {sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3", {tag, "1.1.12"}}}}, - {stringprep, ".*", {git, "https://github.com/processone/stringprep", "6d143ebcacaafe3a8adc669300a8ad001402b3d8"}}, + {sqlite3, ".*", {git, "https://github.com/processone/erlang-sqlite3", {tag, "1.1.13"}}}}, + {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.27"}}}, {if_var_true, stun, - {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.43"}}}}, - {xmpp, ".*", {git, "https://github.com/processone/xmpp", "1a4874ebcec2984a5a7f33c73695a2b4aad75fb6"}}, - {yconf, ".*", {git, "https://github.com/processone/yconf", {tag, "1.0.11"}}} + {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.44"}}}}, + {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.5.4"}}}, + {yconf, ".*", {git, "https://github.com/processone/yconf", {tag, "1.0.12"}}} ]}. {gitonly_deps, [elixir, luerl]}. From a3478b7f0f4136bd9606a6fc99b8bea699cb26bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 21 Jul 2021 11:37:32 +0200 Subject: [PATCH 048/105] Update pam --- rebar.config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rebar.config b/rebar.config index 1a3a1672f..ea81f72e4 100644 --- a/rebar.config +++ b/rebar.config @@ -26,7 +26,7 @@ {if_var_true, elixir, {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.12.0"}}}}, {if_var_true, pam, - {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.11"}}}}, + {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.12"}}}}, {if_var_true, redis, {eredis, ".*", {git, "https://github.com/wooga/eredis", {tag, "v1.2.0"}}}}, {if_var_true, sip, From 4225f14e8b6d64f8fbb7ba5c73c2575812f59bcc Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 12:28:52 +0200 Subject: [PATCH 049/105] Update Indonesian translation from Weblate (thanks to Reza Almanda) --- priv/msgs/id.msg | 100 ++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 90 insertions(+), 10 deletions(-) diff --git a/priv/msgs/id.msg b/priv/msgs/id.msg index 4a57747c5..722a8988e 100644 --- a/priv/msgs/id.msg +++ b/priv/msgs/id.msg @@ -13,8 +13,10 @@ {"Accept","Diterima"}. {"Access denied by service policy","Akses ditolak oleh kebijakan layanan"}. {"Access model of authorize","Model akses otorisasi"}. +{"Access model of open","Model akses terbuka"}. {"Access model of presence","Model akses kehadiran"}. {"Access model of roster","model akses daftar kontak"}. +{"Access model of whitelist","Model akses daftar putih"}. {"Access model","Model akses"}. {"Account doesn't exist","Akun tidak ada"}. {"Action on user","Tindakan pada pengguna"}. @@ -34,7 +36,9 @@ {"Allow users to send invites","Perbolehkan pengguna mengirimkan undangan"}. {"Allow users to send private messages","perbolehkan pengguna mengirimkan pesan ke pengguna lain secara pribadi"}. {"Allow visitors to change nickname","Perbolehkan visitor mengganti nama julukan"}. +{"Allow visitors to send private messages to","Izinkan pengunjung mengirimkan pesan privat ke"}. {"Allow visitors to send status text in presence updates","Izinkan pengunjung untuk mengirim teks status terbaru"}. +{"Allow visitors to send voice requests","Izinkan pengunjung mengirim permintaan suara"}. {"Announcements","Pengumuman"}. {"Answer associated with a picture","Jawaban yang berhubungan dengan gambar"}. {"Answer associated with a video","Jawaban yang berhubungan dengan video"}. @@ -44,6 +48,7 @@ {"Anyone may publish","Siapapun dapat mempublikasi"}. {"Anyone may subscribe and retrieve items","Siapapun dapat berlangganan dan mengambil item"}. {"Anyone with Voice","Siapapun dengan fungsi suara"}. +{"Anyone","Siapapun"}. {"April","April"}. {"Attribute 'channel' is required for this request","Atribut 'channel' diperlukan untuk permintaan ini"}. {"Attribute 'id' is mandatory for MIX messages","Atribut 'id' harus ada untuk pesan MIX"}. @@ -112,8 +117,9 @@ {"Don't tell your password to anybody, not even the administrators of the XMPP server.","Jangan beritahukan kata sandi Anda ke siapapun, bahkan ke administrator layanan XMPP."}. {"Dump Backup to Text File at ","Dump Backup menjadi File Teks di "}. {"Dump to Text File","Dump menjadi File Teks"}. +{"Duplicated groups are not allowed by RFC6121","Grup duplikat tidak diperbolehkan oleh RFC6121"}. {"Edit Properties","Ganti Properti"}. -{"Either approve or decline the voice request.","Antara terima atau tolak permintaan suara"}. +{"Either approve or decline the voice request.","Antara terima atau tolak permintaan suara."}. {"ejabberd HTTP Upload service","Layanan HTTP Upload ejabberd"}. {"ejabberd MUC module","Modul MUC ejabberd"}. {"ejabberd Multicast service","Layanan Multicast ejabberd"}. @@ -135,8 +141,10 @@ {"Enter path to jabberd14 spool file","Masukkan path ke file jabberd14 spool"}. {"Enter path to text file","Masukkan path ke file teks"}. {"Enter the text you see","Masukkan teks yang Anda lihat"}. +{"Erlang XMPP Server","Server Erlang XMPP"}. {"Error","Kesalahan"}. {"Exclude Jabber IDs from CAPTCHA challenge","Kecualikan Jabber IDs dari tantangan CAPTCHA"}. +{"Export all tables as SQL queries to a file:","Ekspor semua tabel sebagai kueri SQL ke file:"}. {"Export data of all users in the server to PIEFXIS files (XEP-0227):","Ekspor data dari semua pengguna pada layanan ke berkas PIEFXIS (XEP-0227):"}. {"Export data of users in a host to PIEFXIS files (XEP-0227):","Ekspor data pengguna pada sebuah host ke berkas PIEFXIS (XEP-0227):"}. {"External component failure","Kegagalan komponen eksternal"}. @@ -149,6 +157,7 @@ {"FAQ Entry","Entri FAQ"}. {"February","Februari"}. {"File larger than ~w bytes","File lebih besar dari ~w bytes"}. +{"Fill in the form to search for any matching XMPP User","Isi kolom untuk mencari pengguna XMPP"}. {"Friday","Jumat"}. {"From ~ts","Dari ~ts"}. {"From","Dari"}. @@ -161,8 +170,11 @@ {"Get User Last Login Time","Lihat Waktu Login Terakhir Pengguna"}. {"Get User Password","Dapatkan User Password"}. {"Get User Statistics","Dapatkan Statistik Pengguna"}. +{"Given Name","Nama"}. {"Grant voice to this person?","Ijinkan akses suara kepadanya?"}. {"Group","Grup"}. +{"Groups that will be displayed to the members","Grup yang akan ditampilkan kepada anggota"}. +{"Groups","Grup"}. {"has been banned","telah dibanned"}. {"has been kicked because of a system shutdown","telah dikick karena sistem shutdown"}. {"has been kicked because of an affiliation change","telah dikick karena perubahan afiliasi"}. @@ -170,17 +182,27 @@ {"has been kicked","telah dikick"}. {"Host unknown","Host tidak dikenal"}. {"Host","Host"}. +{"HTTP File Upload","Unggah Berkas HTTP"}. +{"Idle connection","Koneksi menganggur"}. {"If you don't see the CAPTCHA image here, visit the web page.","Jika Anda tidak melihat gambar CAPTCHA disini, silahkan kunjungi halaman web."}. {"Import Directory","Impor Direktori"}. {"Import File","Impor File"}. {"Import user data from jabberd14 spool file:","Impor data pengguna dari sekumpulan berkas jabberd14:"}. -{"Import User from File at ","Impor Pengguna dari File pada"}. +{"Import User from File at ","Impor Pengguna dari File pada "}. {"Import users data from a PIEFXIS file (XEP-0227):","impor data-data pengguna dari sebuah PIEFXIS (XEP-0227):"}. {"Import users data from jabberd14 spool directory:","Импорт пользовательских данных из буферной директории jabberd14:"}. -{"Import Users from Dir at ","Impor Pengguna dari Dir di"}. +{"Import Users from Dir at ","Impor Pengguna dari Dir di "}. {"Import Users From jabberd14 Spool Files","Impor Pengguna Dari jabberd14 Spool File"}. {"Improper message type","Jenis pesan yang tidak benar"}. +{"Incoming s2s Connections:","Koneksi s2s masuk:"}. +{"Incorrect CAPTCHA submit","Isian CAPTCHA salah"}. +{"Incorrect data form","Formulir data salah"}. {"Incorrect password","Kata sandi salah"}. +{"Incorrect value of 'action' attribute","Nilai atribut 'aksi' salah"}. +{"Incorrect value of 'action' in data form","Nilai 'tindakan' yang salah dalam formulir data"}. +{"Insufficient privilege","Hak tidak mencukupi"}. +{"Internal server error","Galat server internal"}. +{"Invalid node name","Nama node tidak valid"}. {"IP addresses","Alamat IP"}. {"is now known as","sekarang dikenal sebagai"}. {"It is not allowed to send private messages of type \"groupchat\"","Hal ini tidak diperbolehkan untuk mengirim pesan pribadi jenis \"groupchat \""}. @@ -217,15 +239,17 @@ {"Moderator privileges required","Hak istimewa moderator dibutuhkan"}. {"Modified modules","Modifikasi modul-modul"}. {"Monday","Senin"}. +{"Multiple elements are not allowed by RFC6121","Beberapa elemen tidak diizinkan oleh RFC6121"}. {"Name","Nama"}. {"Name:","Nama:"}. {"Never","Tidak Pernah"}. {"New Password:","Password Baru:"}. -{"Nickname Registration at ","Pendaftaran Julukan pada"}. +{"Nickname Registration at ","Pendaftaran Julukan pada "}. {"Nickname ~s does not exist in the room","Nama Julukan ~s tidak berada di dalam ruangan"}. {"Nickname","Nama Julukan"}. {"No body provided for announce message","Tidak ada isi pesan yang disediakan untuk mengirimkan pesan"}. {"No Data","Tidak Ada Data"}. +{"No element found","Tidak ada elemen yang ditemukan"}. {"No limit","Tidak terbatas"}. {"Node ID","ID Node"}. {"Node not found","Node tidak ditemukan"}. @@ -259,28 +283,45 @@ {"Outgoing s2s Connections:","Koneksi s2s yang keluar:"}. {"Owner privileges required","Hak istimewa owner dibutuhkan"}. {"Packet","Paket"}. +{"Participant","Partisipan"}. {"Password Verification:","Verifikasi Kata Sandi:"}. {"Password Verification","Verifikasi Sandi"}. {"Password:","Kata Sandi:"}. {"Password","Sandi"}. {"Path to Dir","Jalur ke Dir"}. {"Path to File","Jalur ke File"}. +{"Payload type","Tipe payload"}. {"Pending","Tertunda"}. -{"Period: ","Periode:"}. +{"Period: ","Periode: "}. {"Persist items to storage","Pertahankan item ke penyimpanan"}. +{"Persistent","Persisten"}. +{"Ping query is incorrect","Kueri ping salah"}. {"Ping","Ping"}. {"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Harap dicatat bahwa pilihan ini hanya akan membuat cadangan builtin Mnesia database. Jika Anda menggunakan modul ODBC, anda juga perlu untuk membuat cadangan database SQL Anda secara terpisah."}. {"Pong","Pong"}. {"Present real Jabber IDs to","Tampilkan Jabber ID secara lengkap"}. +{"Previous session not found","Sesi sebelumnya tidak ditemukan"}. +{"Previous session PID has been killed","Sesi PID sebelumnya telah dimatikan"}. +{"Previous session PID has exited","Sesi PID sebelumnya telah keluar"}. +{"Previous session PID is dead","Sesi PID sebelumnya mati"}. +{"Previous session timed out","Sesi sebelumnya habis waktu"}. {"private, ","pribadi, "}. +{"Public","Publik"}. +{"Publish model","Model penerbitan"}. {"Publish-Subscribe","Setujui-Pertemanan"}. {"PubSub subscriber request","Permintaan pertemanan PubSub"}. {"Purge all items when the relevant publisher goes offline","Bersihkan semua item ketika penerbit yang relevan telah offline"}. {"Queries to the conference members are not allowed in this room","Permintaan untuk para anggota konferensi tidak diperbolehkan di ruangan ini"}. +{"Query to another users is forbidden","Kueri ke pengguna lain dilarang"}. {"RAM and disc copy","RAM dan disc salinan"}. {"RAM copy","Salinan RAM"}. {"Really delete message of the day?","Benar-benar ingin menghapus pesan harian?"}. +{"Receive notification from all descendent nodes","Terima notifikasi dari semua node turunan"}. +{"Receive notification from direct child nodes only","Terima notifikasi dari child node saja"}. +{"Receive notification of new items only","Terima notifikasi dari item baru saja"}. +{"Receive notification of new nodes only","Terima notifikasi dari node baru saja"}. {"Recipient is not in the conference room","Penerima tidak berada di ruangan konferensi"}. +{"Register an XMPP account","Daftarkan sebuah akun XMPP"}. {"Registered Users","Pengguna Terdaftar"}. {"Registered Users:","Pengguna Terdaftar:"}. {"Register","Mendaftar"}. @@ -289,28 +330,39 @@ {"Remove User","Hapus Pengguna"}. {"Remove","Menghapus"}. {"Replaced by new connection","Diganti dengan koneksi baru"}. +{"Request has timed out","Waktu permintaan telah habis"}. +{"Request is ignored","Permintaan diabaikan"}. +{"Requested role","Peran yang diminta"}. {"Resources","Sumber daya"}. {"Restart Service","Restart Layanan"}. {"Restart","Jalankan Ulang"}. -{"Restore Backup from File at ","Kembalikan Backup dari File pada"}. +{"Restore Backup from File at ","Kembalikan Backup dari File pada "}. {"Restore binary backup after next ejabberd restart (requires less memory):","Mengembalikan cadangan yang berpasanagn setelah ejabberd berikutnya dijalankan ulang (memerlukan memori lebih sedikit):"}. {"Restore binary backup immediately:","Segera mengembalikan cadangan yang berpasangan:"}. {"Restore plain text backup immediately:","Segera mengembalikan cadangan teks biasa:"}. {"Restore","Mengembalikan"}. +{"Roles that May Send Private Messages","Peran yang Dapat Mengirim Pesan Pribadi"}. {"Room Configuration","Konfigurasi Ruangan"}. {"Room creation is denied by service policy","Pembuatan Ruangan ditolak oleh kebijakan layanan"}. {"Room description","Keterangan ruangan"}. {"Room Occupants","Penghuni Ruangan"}. +{"Room terminates","Ruang dihentikan"}. {"Room title","Nama Ruangan"}. {"Roster groups allowed to subscribe","Kelompok kontak yang diizinkan untuk berlangganan"}. +{"Roster of ~ts","Daftar ~ts"}. {"Roster size","Ukuran Daftar Kontak"}. +{"Roster:","Daftar:"}. {"RPC Call Error","Panggilan Kesalahan RPC"}. {"Running Nodes","Menjalankan Node"}. {"~s invites you to the room ~s","~s mengundang anda masuk kamar ~s"}. {"Saturday","Sabtu"}. {"Script check","Periksa naskah"}. -{"Search Results for ","Hasil Pencarian untuk"}. -{"Search users in ","Pencarian pengguna dalam"}. +{"Search from the date","Cari dari tanggal"}. +{"Search Results for ","Hasil Pencarian untuk "}. +{"Search the text","Cari teks"}. +{"Search until the date","Cari sampai tanggal"}. +{"Search users in ","Pencarian pengguna dalam "}. +{"Select All","Pilih Semua"}. {"Send announcement to all online users on all hosts","Kirim pengumuman untuk semua pengguna yang online pada semua host"}. {"Send announcement to all online users","Kirim pengumuman untuk semua pengguna yang online"}. {"Send announcement to all users on all hosts","Kirim pengumuman untuk semua pengguna pada semua host"}. @@ -323,9 +375,11 @@ {"Show Integral Table","Tampilkan Tabel Terpisah"}. {"Show Ordinary Table","Tampilkan Tabel Normal"}. {"Shut Down Service","Shut Down Layanan"}. +{"SOCKS5 Bytestreams","SOCKS5 Bytestreams"}. {"Specify the access model","Tentukan model akses"}. {"Specify the event message type","Tentukan jenis acara pesan"}. {"Specify the publisher model","Tentukan model penerbitan"}. +{"Stanza ID","ID Stanza"}. {"Statistics of ~p","statistik dari ~p"}. {"Statistics","Statistik"}. {"Stop","Hentikan"}. @@ -333,18 +387,35 @@ {"Storage Type","Jenis Penyimpanan"}. {"Store binary backup:","Penyimpanan cadangan yang berpasangan:"}. {"Store plain text backup:","Simpan cadangan teks biasa:"}. +{"Stream management is already enabled","Manajemen stream sudah diaktifkan"}. +{"Stream management is not enabled","Manajemen stream tidak diaktifkan"}. {"Subject","Subyek"}. {"Submit","Serahkan"}. {"Submitted","Ulangi masukan"}. {"Subscriber Address","Alamat Pertemanan"}. +{"Subscribers may publish","Pelanggan dapat mempublikasikan"}. {"Subscription","Berlangganan"}. +{"Subscriptions are not allowed","Langganan tidak diperbolehkan"}. {"Sunday","Minggu"}. +{"Text associated with a picture","Teks yang terkait dengan gambar"}. +{"Text associated with a sound","Teks yang terkait dengan suara"}. +{"Text associated with a video","Teks yang terkait dengan video"}. +{"Text associated with speech","Teks yang terkait dengan ucapan"}. {"That nickname is already in use by another occupant","Julukan itu sudah digunakan oleh penghuni lain"}. {"That nickname is registered by another person","Julukan tersebut telah didaftarkan oleh orang lain"}. {"The account was not unregistered","Akun tidak terdaftar"}. {"The CAPTCHA is valid.","Captcha ini benar."}. {"The CAPTCHA verification has failed","Verifikasi CAPTCHA telah gagal"}. +{"The captcha you entered is wrong","Isian captcha yang anda masukkan salah"}. {"The collections with which a node is affiliated","Koleksi dengan yang berafiliasi dengan sebuah node"}. +{"The JID of the node creator","JID dari pembuat node"}. +{"The JIDs of those to contact with questions","JID dari mereka untuk dihubungi dengan pertanyaan"}. +{"The JIDs of those with an affiliation of owner","JID dari mereka yang memiliki afiliasi pemilik"}. +{"The JIDs of those with an affiliation of publisher","JID dari mereka yang memiliki afiliasi penerbit"}. +{"The name of the node","Nama node"}. +{"The node is a collection node","Node adalah node koleksi"}. +{"The node is a leaf node (default)","Node adalah leaf node (default)"}. +{"The NodeID of the relevant node","NodeID dari node yang relevan"}. {"The number of subscribers to the node","Jumlah pendaftar di node"}. {"The number of unread or undelivered messages","Jumlah pesan yang belum dibaca atau tidak terkirim"}. {"The password contains unacceptable characters","Kata sandi mengandung karakter yang tidak dapat diterima"}. @@ -352,10 +423,12 @@ {"the password is","kata sandinya"}. {"The password was not changed","Kata sandi belum berubah"}. {"The passwords are different","Kata sandi berbeda"}. +{"The username is not valid","Nama pengguna tidak valid"}. {"There was an error changing the password: ","Ada kesalahan saat merubah kata kunci: "}. {"There was an error creating the account: ","Ada kesalahan saat membuat akun: "}. -{"There was an error deleting the account: ","Ada kesalahan saat menghapus akun:"}. +{"There was an error deleting the account: ","Ada kesalahan saat menghapus akun: "}. {"This room is not anonymous","Ruangan ini tidak dikenal"}. +{"This service can not process the address: ~s","Layanan ini tidak dapat memproses alamat: ~s"}. {"Thursday","Kamis"}. {"Time delay","Waktu tunda"}. {"Time","Waktu"}. @@ -363,10 +436,13 @@ {"To ~ts","Kepada ~ts"}. {"Token TTL","TTL Token"}. {"To","Kepada"}. +{"Too many active bytestreams","Terlalu banyak bytestream aktif"}. {"Too many CAPTCHA requests","Terlalu banyak permintaan CAPTCHA"}. +{"Too many child elements","Terlalu banyak elemen turunan"}. {"Too many elements","Terlalu banyak elemen"}. {"Too many elements","Terlalu banyak elemen"}. {"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Terlalu banyak (~p) percobaan otentifikasi yang gagal dari alamat IP (~s). Alamat akan di unblok pada ~s UTC"}. +{"Too many receiver fields were specified","Terlalu banyak bidang penerima yang ditentukan"}. {"Too many users in this conference","Terlalu banyak pengguna di grup ini"}. {"Total rooms","Total kamar"}. {"Traffic rate limit is exceeded","Batas tingkat lalu lintas terlampaui"}. @@ -377,6 +453,7 @@ {"~ts's Offline Messages Queue","~ts's antrian Pesan Offline"}. {"Tuesday","Selasa"}. {"Unable to generate a CAPTCHA","Tidak dapat menghasilkan CAPTCHA"}. +{"Unable to register route on existing local domain","Tidak dapat mendaftarkan rute di domain lokal yang ada"}. {"Unauthorized","Ditolak"}. {"Unexpected action","Aksi yang tidak diharapkan"}. {"Unexpected error condition: ~p","Kondisi kerusakan yang tidak diduga: ~p"}. @@ -414,7 +491,7 @@ {"vCard User Search","vCard Pencarian Pengguna"}. {"View Queue","Lihat antrian"}. {"View Roster","Lihat daftar kontak"}. -{"Virtual Hosts","Virtual Hosts"}. +{"Virtual Hosts","Host Virtual"}. {"Visitors are not allowed to change their nicknames in this room","Tamu tidak diperbolehkan untuk mengubah nama panggilan di ruangan ini"}. {"Visitors are not allowed to send messages to all occupants","Tamu tidak diperbolehkan untuk mengirim pesan ke semua penghuni"}. {"Visitor","Tamu"}. @@ -428,11 +505,14 @@ {"Whether an entity wants to receive digests (aggregations) of notifications or all notifications individually","Apakah entitas ingin menerima ringkasan(agregasi) pemberitahuan atau semua pemberitahuan satu per satu"}. {"Whether an entity wants to receive or disable notifications","Apakah entitas ingin menerima atau menonaktifkan pemberitahuan"}. {"Whether owners or publisher should receive replies to items","Apakah pemilik atau penerbit harus menerima balasan dari item"}. +{"Whether the node is a leaf (default) or a collection","Apakah node adalah leaf (default) atau koleksi"}. {"Whether to allow subscriptions","Apakah diperbolehkan untuk berlangganan"}. {"Whether to make all subscriptions temporary, based on subscriber presence","Apakah akan menjadikan semua langganan sementara, berdasarkan keberadaan pelanggan"}. {"Whether to notify owners about new subscribers and unsubscribes","Apakah akan memberi tahu pemilik tentang pelanggan baru dan berhenti berlangganan"}. +{"Who may associate leaf nodes with a collection","Siapa yang dapat mengaitkan leaf node dengan koleksi"}. {"Wrong parameters in the web formulary","Parameter yang salah di formula web"}. {"Wrong xmlns","xmlns salah"}. +{"XMPP Account Registration","Pendaftaran Akun XMPP"}. {"XMPP Domains","Domain XMPP"}. {"XMPP Show Value of Away","XMPP menunjukkan status Away"}. {"XMPP Show Value of Chat","XMPP menunjukkan status Chat"}. From 686ce015345f3c5c0619bf7a19ce14a0c76db133 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 12:29:30 +0200 Subject: [PATCH 050/105] Update Italian translation from Weblate (thanks to Alessandro Mandelli) --- priv/msgs/it.msg | 1 + 1 file changed, 1 insertion(+) diff --git a/priv/msgs/it.msg b/priv/msgs/it.msg index 34040f6aa..627707e89 100644 --- a/priv/msgs/it.msg +++ b/priv/msgs/it.msg @@ -3,6 +3,7 @@ %% To improve translations please read: %% https://docs.ejabberd.im/developer/extending-ejabberd/localization/ +{" (Add * to the end of field to match substring)"," Riempire il modulo per la ricerca di utenti Jabber corrispondenti ai criteri (Aggiungere * alla fine del campo per la ricerca di una sottostringa"}. {" has set the subject to: "," ha modificato l'oggetto in: "}. {"A friendly name for the node","Un nome comodo per il nodo"}. {"A password is required to enter this room","Per entrare in questa stanza è prevista una password"}. From 9a823e5a16f1d871d5e36f68601c61030e0668e2 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 12:32:35 +0200 Subject: [PATCH 051/105] Update Portuguese translation from Weblate (thanks to Ssantos) --- priv/msgs/pt.msg | 561 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 560 insertions(+), 1 deletion(-) diff --git a/priv/msgs/pt.msg b/priv/msgs/pt.msg index ed7ced9da..65e98cc74 100644 --- a/priv/msgs/pt.msg +++ b/priv/msgs/pt.msg @@ -3,103 +3,662 @@ %% To improve translations please read: %% https://docs.ejabberd.im/developer/extending-ejabberd/localization/ +{" (Add * to the end of field to match substring)"," (Adicione * no final do campo para combinar com a substring)"}. {" has set the subject to: "," colocou o tópico: "}. +{"# participants","# participantes"}. +{"A description of the node","Uma descrição do nó"}. +{"A friendly name for the node","Um nome familiar para o nó"}. +{"A password is required to enter this room","Se necessita palavra-passe para entrar nesta sala"}. +{"A Web Page","Uma página da web"}. +{"Accept","Aceito"}. {"Access denied by service policy","Acesso negado pela política de serviço"}. +{"Access model of authorize","Modelo de acesso da autorização"}. +{"Access model of open","Modelo para acesso aberto"}. +{"Access model of presence","Modelo para acesso presença"}. +{"Access model of roster","Modelo para acesso lista"}. +{"Access model of whitelist","Modelo de acesso da lista branca"}. +{"Access model","Modelo de acesso"}. +{"Account doesn't exist","A conta não existe"}. {"Action on user","Acção no utilizador"}. +{"Add Jabber ID","Adicionar ID jabber"}. {"Add New","Adicionar novo"}. {"Add User","Adicionar utilizador"}. {"Administration of ","Administração de "}. +{"Administration","Administração"}. {"Administrator privileges required","São necessários privilégios de administrador"}. +{"All activity","Todas atividades"}. {"All Users","Todos os utilizadores"}. +{"Allow subscription","Permitir a assinatura"}. +{"Allow this Jabber ID to subscribe to this pubsub node?","Autorizar este Jabber ID para a inscrição neste tópico pubsub?"}. +{"Allow this person to register with the room?","Permita que esta pessoa se registe na sala?"}. +{"Allow users to change the subject","Permitir a utilizadores modificar o assunto"}. +{"Allow users to query other users","Permitir a utilizadores pesquisar informações sobre os demais"}. +{"Allow users to send invites","Permitir a utilizadores envio de convites"}. +{"Allow users to send private messages","Permitir a utilizadores enviarem mensagens privadas"}. +{"Allow visitors to change nickname","Permitir mudança de apelido aos visitantes"}. +{"Allow visitors to send private messages to","Permitir visitantes enviar mensagem privada para"}. +{"Allow visitors to send status text in presence updates","Permitir atualizações de estado aos visitantes"}. +{"Allow visitors to send voice requests","Permitir aos visitantes o envio de requisições de voz"}. +{"An associated LDAP group that defines room membership; this should be an LDAP Distinguished Name according to an implementation-specific or deployment-specific definition of a group.","Um grupo LDAP associado que define a adesão à sala; este deve ser um Nome Distinto LDAP de acordo com uma definição específica da implementação ou da implantação específica de um grupo."}. +{"Announcements","Anúncios"}. +{"Answer associated with a picture","Resposta associada com uma foto"}. +{"Answer associated with a video","Resposta associada com um vídeo"}. +{"Answer associated with speech","Resposta associada com a fala"}. +{"Answer to a question","Resposta para uma pergunta"}. +{"Anyone in the specified roster group(s) may subscribe and retrieve items","Qualquer pessoa do(s) grupo(s) informado(s) podem se inscrever e recuperar itens"}. +{"Anyone may associate leaf nodes with the collection","Qualquer pessoa pode associar nós das páginas à coleção"}. +{"Anyone may publish","Qualquer pessoa pode publicar"}. +{"Anyone may subscribe and retrieve items","Qualquer pessoa pode se inscrever e recuperar os itens"}. +{"Anyone with a presence subscription of both or from may subscribe and retrieve items","Qualquer pessoa com uma assinatura presente dos dois ou de ambos pode se inscrever e recuperar os itens"}. +{"Anyone with Voice","Qualquer pessoa com voz"}. +{"Anyone","Qualquer pessoa"}. +{"April","Abril"}. +{"Attribute 'channel' is required for this request","O atributo 'canal' é necessário para esta solicitação"}. +{"Attribute 'id' is mandatory for MIX messages","O atributo 'id' é obrigatório para mensagens MIX"}. +{"Attribute 'jid' is not allowed here","O atributo 'jid' não é permitido aqui"}. +{"Attribute 'node' is not allowed here","O Atributo 'nó' não é permitido aqui"}. +{"Attribute 'to' of stanza that triggered challenge","O atributo 'para' da estrofe que desencadeou o desafio"}. +{"August","Agosto"}. +{"Automatic node creation is not enabled","Criação automatizada de nós está desativada"}. {"Backup Management","Gestão de cópias de segurança"}. +{"Backup of ~p","Backup de ~p"}. {"Backup to File at ","Guardar cópia de segurança para ficheiro em "}. {"Backup","Guardar cópia de segurança"}. +{"Bad format","Formato incorreto"}. {"Birthday","Data de nascimento"}. +{"Both the username and the resource are required","Nome de utilizador e recurso são necessários"}. +{"Bytestream already activated","Bytestream já foi ativado"}. +{"Cannot remove active list","Não é possível remover uma lista ativa"}. +{"Cannot remove default list","Não é possível remover uma lista padrão"}. +{"CAPTCHA web page","CAPTCHA web page"}. +{"Challenge ID","ID do desafio"}. {"Change Password","Mudar palavra-chave"}. +{"Change User Password","Alterar Palavra-passe do Utilizador"}. +{"Changing password is not allowed","Não é permitida a alteração da palavra-passe"}. +{"Changing role/affiliation is not allowed","Não é permitida a alteração da função/afiliação"}. +{"Channel already exists","O canal já existe"}. +{"Channel does not exist","O canal não existe"}. +{"Channels","Canais"}. +{"Characters not allowed:","Caracteres não aceitos:"}. +{"Chatroom configuration modified","Configuração da sala de bate-papo modificada"}. +{"Chatroom is created","A sala de chat está criada"}. +{"Chatroom is destroyed","A sala de chat está destruída"}. +{"Chatroom is started","A sala de chat está iniciada"}. +{"Chatroom is stopped","A sala de chat está parada"}. +{"Chatrooms","Salas de Chat"}. {"Choose a username and password to register with this server","Escolha um nome de utilizador e palavra-chave para se registar neste servidor"}. {"Choose storage type of tables","Seleccione o tipo de armazenagem das tabelas"}. +{"Choose whether to approve this entity's subscription.","Aprovar esta assinatura."}. {"City","Cidade"}. +{"Client acknowledged more stanzas than sent by server","O cliente reconheceu mais estrofes do que as enviadas pelo servidor"}. +{"Commands","Comandos"}. {"Conference room does not exist","A sala não existe"}. +{"Configuration of room ~s","Configuração para ~s"}. {"Configuration","Configuração"}. {"Connected Resources:","Recursos conectados:"}. +{"Contact Addresses (normally, room owner or owners)","Endereços de contato (normalmente, o proprietário ou os proprietários da sala)"}. {"Country","País"}. +{"CPU Time:","Tempo da CPU:"}. +{"Current Discussion Topic","Assunto em discussão"}. +{"Database failure","Falha no banco de dados"}. +{"Database Tables at ~p","Tabelas da Base de dados em ~p"}. +{"Database Tables Configuration at ","Configuração de Tabelas de Base de dados em "}. +{"Database","Base de dados"}. +{"December","Dezembro"}. +{"Default users as participants","Utilizadores padrões como participantes"}. +{"Delete content","Apagar o conteúdo"}. +{"Delete message of the day on all hosts","Apagar a mensagem do dia em todos os hosts"}. +{"Delete message of the day","Apagar mensagem do dia"}. {"Delete Selected","Eliminar os seleccionados"}. +{"Delete table","Apagar a tabela"}. +{"Delete User","Deletar Utilizador"}. +{"Deliver event notifications","Entregar as notificações de evento"}. +{"Deliver payloads with event notifications","Enviar payloads junto com as notificações de eventos"}. +{"Description:","Descrição:"}. {"Disc only copy","Cópia apenas em disco"}. +{"'Displayed groups' not added (they do not exist!): ","Os 'Grupos exibidos' não foi adicionado (eles não existem!): "}. +{"Displayed:","Exibido:"}. +{"Don't tell your password to anybody, not even the administrators of the XMPP server.","Não revele a sua palavra-passe a ninguém, nem mesmo para o administrador deste servidor XMPP."}. {"Dump Backup to Text File at ","Exporta cópia de segurança para ficheiro de texto em "}. {"Dump to Text File","Exportar para ficheiro de texto"}. +{"Duplicated groups are not allowed by RFC6121","Os grupos duplicados não são permitidos pela RFC6121"}. +{"Dynamically specify a replyto of the item publisher","Definir de forma dinâmica uma resposta da editora do item"}. {"Edit Properties","Editar propriedades"}. +{"Either approve or decline the voice request.","Deve aprovar/desaprovar a requisição de voz."}. +{"ejabberd HTTP Upload service","serviço HTTP de upload ejabberd"}. {"ejabberd MUC module","Módulo MUC de ejabberd"}. +{"ejabberd Multicast service","Serviço multicast ejabberd"}. +{"ejabberd Publish-Subscribe module","Módulo para Publicar Tópicos do ejabberd"}. +{"ejabberd SOCKS5 Bytestreams module","Modulo ejabberd SOCKS5 Bytestreams"}. {"ejabberd vCard module","Módulo vCard de ejabberd"}. +{"ejabberd Web Admin","ejabberd Web Admin"}. +{"ejabberd","ejabberd"}. +{"Elements","Elementos"}. +{"Email Address","Endereço de e-mail"}. +{"Email","Email"}. +{"Enable logging","Permitir criação de logs"}. +{"Enable message archiving","Ativar arquivamento de mensagens"}. +{"Enabling push without 'node' attribute is not supported","Abilitar push sem o atributo 'node' não é suportado"}. +{"End User Session","Terminar Sessão do Utilizador"}. {"Enter nickname you want to register","Introduza a alcunha que quer registar"}. {"Enter path to backup file","Introduza o caminho do ficheiro de cópia de segurança"}. {"Enter path to jabberd14 spool dir","Introduza o caminho para o directório de spools do jabberd14"}. {"Enter path to jabberd14 spool file","Introduza o caminho para o ficheiro de spool do jabberd14"}. {"Enter path to text file","Introduza caminho para o ficheiro de texto"}. +{"Enter the text you see","Insira o texto que vê"}. +{"Erlang XMPP Server","Servidor XMPP Erlang"}. +{"Error","Erro"}. +{"Exclude Jabber IDs from CAPTCHA challenge","Excluir IDs Jabber de serem submetidos ao CAPTCHA"}. +{"Export all tables as SQL queries to a file:","Exportar todas as tabelas como SQL para um ficheiro:"}. +{"Export data of all users in the server to PIEFXIS files (XEP-0227):","Exportar todos os dados de todos os utilizadores no servidor, para ficheiros de formato PIEFXIS (XEP-0227):"}. +{"Export data of users in a host to PIEFXIS files (XEP-0227):","Exportar dados dos utilizadores num host, para ficheiros de PIEFXIS (XEP-0227):"}. +{"External component failure","Falha de componente externo"}. +{"External component timeout","Tempo esgotado à espera de componente externo"}. +{"Failed to activate bytestream","Falha ao ativar bytestream"}. +{"Failed to extract JID from your voice request approval","Não foi possível extrair o JID (Jabber ID) da requisição de voz"}. +{"Failed to map delegated namespace to external component","Falha ao mapear namespace delegado ao componente externo"}. +{"Failed to parse HTTP response","Falha ao analisar resposta HTTP"}. +{"Failed to process option '~s'","Falha ao processar opção '~s'"}. {"Family Name","Apelido"}. +{"FAQ Entry","Registo das perguntas frequentes"}. +{"February","Fevereiro"}. +{"File larger than ~w bytes","Ficheiro é maior que ~w bytes"}. +{"Fill in the form to search for any matching XMPP User","Preencha campos para procurar por quaisquer utilizadores XMPP"}. +{"Friday","Sexta"}. +{"From ~ts","De ~s"}. {"From","De"}. +{"Full List of Room Admins","Lista completa dos administradores das salas"}. +{"Full List of Room Owners","Lista completa dos proprietários das salas"}. {"Full Name","Nome completo"}. +{"Get Number of Online Users","Obter quantidade de utilizadores online"}. +{"Get Number of Registered Users","Obter quantidade de utilizadores registados"}. +{"Get Pending","Obter os pendentes"}. +{"Get User Last Login Time","Obter a data do último login"}. +{"Get User Password","Obter palavra-passe do utilizador"}. +{"Get User Statistics","Obter estatísticas do utilizador"}. +{"Given Name","Sobrenome"}. +{"Grant voice to this person?","Dar voz a esta pessoa?"}. +{"Group","Grupo"}. +{"Groups that will be displayed to the members","Os grupos que serão exibidos para os membros"}. {"Groups","Grupos"}. +{"has been banned","foi banido"}. +{"has been kicked because of a system shutdown","foi desconectado porque o sistema foi desligado"}. +{"has been kicked because of an affiliation change","foi desconectado porque por afiliação inválida"}. +{"has been kicked because the room has been changed to members-only","foi desconectado porque a política da sala mudou, só membros são permitidos"}. +{"has been kicked","foi removido"}. +{"Host unknown","Máquina desconhecida"}. +{"Host","Máquina"}. +{"HTTP File Upload","Upload de ficheiros por HTTP"}. +{"Idle connection","Conexão inativa"}. +{"If you don't see the CAPTCHA image here, visit the web page.","Se não conseguir ver o CAPTCHA aqui, visite a web page."}. {"Import Directory","Importar directório"}. {"Import File","Importar ficheiro"}. +{"Import user data from jabberd14 spool file:","Importar dados dos utilizadores de uma fila jabberd14:"}. {"Import User from File at ","Importar utilizador a partir do ficheiro em "}. +{"Import users data from a PIEFXIS file (XEP-0227):","Importe os utilizadores de um ficheiro PIEFXIS (XEP-0227):"}. +{"Import users data from jabberd14 spool directory:","Importar dados dos utilizadores de um diretório-fila jabberd14:"}. {"Import Users from Dir at ","Importar utilizadores a partir do directório em "}. +{"Import Users From jabberd14 Spool Files","Importar utilizadores de ficheiros de jabberd14 (spool files)"}. +{"Improper domain part of 'from' attribute","Atributo 'from' contém domínio incorreto"}. {"Improper message type","Tipo de mensagem incorrecto"}. +{"Incoming s2s Connections:","Conexões s2s de Entrada:"}. +{"Incorrect CAPTCHA submit","CAPTCHA submetido incorretamente"}. +{"Incorrect data form","Formulário dos dados incorreto"}. {"Incorrect password","Palavra-chave incorrecta"}. +{"Incorrect value of 'action' attribute","Valor incorreto do atributo 'action'"}. +{"Incorrect value of 'action' in data form","Valor incorreto de 'action' no formulário de dados"}. +{"Incorrect value of 'path' in data form","Valor incorreto de 'path' no formulário de dados"}. +{"Insufficient privilege","Privilégio insuficiente"}. +{"Internal server error","Erro interno do servidor"}. +{"Invalid 'from' attribute in forwarded message","Atributo 'from' inválido na mensagem reenviada"}. +{"Invalid node name","Nome do nó inválido"}. +{"Invalid 'previd' value","Valor 'previd' inválido"}. +{"Invitations are not allowed in this conference","Os convites não são permitidos nesta conferência"}. +{"IP addresses","Endereços IP"}. +{"is now known as","é agora conhecido como"}. +{"It is not allowed to send error messages to the room. The participant (~s) has sent an error message (~s) and got kicked from the room","Não é permitido o envio de mensagens de erro para a sala. O membro (~s) enviou uma mensagem de erro (~s) e foi expulso da sala"}. {"It is not allowed to send private messages of type \"groupchat\"","Não é permitido enviar mensagens privadas do tipo \"groupchat\""}. {"It is not allowed to send private messages to the conference","Impedir o envio de mensagens privadas para a sala"}. +{"It is not allowed to send private messages","Não é permitido enviar mensagens privadas"}. +{"Jabber ID","ID Jabber"}. +{"January","Janeiro"}. +{"JID normalization denied by service policy","Normalização JID negada por causa da política de serviços"}. +{"JID normalization failed","A normalização JID falhou"}. +{"joins the room","Entrar na sala"}. +{"July","Julho"}. +{"June","Junho"}. +{"Just created","Acabou de ser criado"}. +{"Label:","Rótulo:"}. {"Last Activity","Última actividade"}. +{"Last login","Último login"}. +{"Last message","Última mensagem"}. +{"Last month","Último mês"}. +{"Last year","Último ano"}. +{"Least significant bits of SHA-256 hash of text should equal hexadecimal label","Bits menos significativos do hash sha-256 do texto devem ser iguais ao rótulo hexadecimal"}. +{"leaves the room","Sair da sala"}. +{"List of rooms","Lista de salas"}. +{"Logging","Registando no log"}. +{"Low level update script","Script de atualização low level"}. +{"Make participants list public","Tornar pública a lista de participantes"}. +{"Make room CAPTCHA protected","Tornar protegida a palavra-passe da sala"}. +{"Make room members-only","Tornar sala apenas para membros"}. {"Make room moderated","Tornar a sala moderada"}. +{"Make room password protected","Tornar sala protegida à palavra-passe"}. +{"Make room persistent","Tornar sala persistente"}. +{"Make room public searchable","Tornar sala pública possível de ser encontrada"}. +{"Malformed username","Nome de utilizador inválido"}. +{"MAM preference modification denied by service policy","Modificação de preferência MAM negada por causa da política de serviços"}. +{"March","Março"}. +{"Max # of items to persist","Máximo # de elementos que persistem"}. +{"Max payload size in bytes","Máximo tamanho do payload em bytes"}. +{"Maximum file size","Tamanho máximo do ficheiro"}. +{"Maximum Number of History Messages Returned by Room","Quantidade máxima das mensagens do histórico que foram devolvidas por sala"}. +{"Maximum number of items to persist","Quantidade máxima dos itens para manter"}. +{"Maximum Number of Occupants","Quantidate máxima de participantes"}. +{"May","Maio"}. +{"Members not added (inexistent vhost!): ","Membros que não foram adicionados (o vhost não existe!): "}. +{"Membership is required to enter this room","É necessário ser membro desta sala para poder entrar"}. +{"Members:","Membros:"}. +{"Memorize your password, or write it in a paper placed in a safe place. In XMPP there isn't an automated way to recover your password if you forget it.","Memorize a sua palavra-passe ou anote-a num papel guardado num local seguro. No XMPP, não há uma maneira automatizada de recuperar a sua palavra-passe caso a esqueça."}. {"Memory","Memória"}. +{"Mere Availability in XMPP (No Show Value)","Mera disponibilidade no XMPP (Sem valor para ser exibido)"}. +{"Message body","Corpo da mensagem"}. +{"Message not found in forwarded payload","Mensagem não encontrada em conteúdo encaminhado"}. +{"Messages from strangers are rejected","As mensagens vindas de estranhos são rejeitadas"}. +{"Messages of type headline","Mensagens do tipo do título"}. +{"Messages of type normal","Mensagens do tipo normal"}. {"Middle Name","Segundo nome"}. +{"Minimum interval between voice requests (in seconds)","O intervalo mínimo entre requisições de voz (em segundos)"}. {"Moderator privileges required","São necessários privilégios de moderador"}. +{"Moderator","Moderador"}. +{"Moderators Only","Somente moderadores"}. +{"Modified modules","Módulos atualizados"}. +{"Module failed to handle the query","Módulo falhou ao processar a consulta"}. +{"Monday","Segunda"}. +{"Multicast","Multicast"}. +{"Multiple elements are not allowed by RFC6121","Vários elementos não são permitidos pela RFC6121"}. +{"Multi-User Chat","Chat multi-utilizador"}. +{"Name in the rosters where this group will be displayed","O nome nas listas onde este grupo será exibido"}. {"Name","Nome"}. +{"Name:","Nome:"}. +{"Natural Language for Room Discussions","Idioma nativo para as discussões na sala"}. +{"Natural-Language Room Name","Nome da sala no idioma nativo"}. +{"Neither 'jid' nor 'nick' attribute found","Nem o atributo 'jid' nem 'nick' foram encontrados"}. +{"Neither 'role' nor 'affiliation' attribute found","Nem o atributo 'role' nem 'affiliation' foram encontrados"}. {"Never","Nunca"}. +{"New Password:","Nova Palavra-passe:"}. +{"Nickname can't be empty","O apelido não pode ser vazio"}. {"Nickname Registration at ","Registo da alcunha em "}. {"Nickname ~s does not exist in the room","A alcunha ~s não existe na sala"}. {"Nickname","Alcunha"}. +{"No address elements found","Nenhum elemento endereço foi encontrado"}. +{"No addresses element found","Nenhum elemento endereços foi encontrado"}. +{"No 'affiliation' attribute found","Atributo 'affiliation' não foi encontrado"}. +{"No available resource found","Nenhum recurso disponível foi encontrado"}. +{"No body provided for announce message","Nenhum corpo de texto fornecido para anunciar mensagem"}. +{"No child elements found","Nenhum elemento filho foi encontrado"}. +{"No data form found","Nenhum formulário de dados foi encontrado"}. +{"No Data","Nenhum dado"}. +{"No features available","Nenhuma funcionalidade disponível"}. +{"No element found","Nenhum elemento foi encontrado"}. +{"No hook has processed this command","Nenhum hook processou este comando"}. +{"No info about last activity found","Não foi encontrada informação sobre última atividade"}. +{"No 'item' element found","O elemento 'item' não foi encontrado"}. +{"No items found in this query","Nenhum item encontrado nesta consulta"}. +{"No limit","Ilimitado"}. +{"No module is handling this query","Nenhum módulo está processando esta consulta"}. +{"No node specified","Nenhum nó especificado"}. +{"No 'password' found in data form","'password' não foi encontrado em formulário de dados"}. +{"No 'password' found in this query","Nenhuma 'palavra-passe' foi encontrado nesta consulta"}. +{"No 'path' found in data form","'path' não foi encontrado em formulário de dados"}. +{"No pending subscriptions found","Não foram encontradas subscrições"}. +{"No privacy list with this name found","Nenhuma lista de privacidade encontrada com este nome"}. +{"No private data found in this query","Nenhum dado privado encontrado nesta consulta"}. +{"No running node found","Nenhum nó em execução foi encontrado"}. +{"No services available","Não há serviços disponíveis"}. +{"No statistics found for this item","Não foram encontradas estatísticas para este item"}. +{"No 'to' attribute found in the invitation","Atributo 'to' não foi encontrado no convite"}. +{"Nobody","Ninguém"}. +{"Node already exists","Nó já existe"}. +{"Node ID","ID do Tópico"}. +{"Node index not found","O índice do nó não foi encontrado"}. {"Node not found","Nodo não encontrado"}. +{"Node ~p","Nó ~p"}. +{"Node","Nó"}. +{"Nodeprep has failed","Processo de identificação de nó falhou (nodeprep)"}. {"Nodes","Nodos"}. {"None","Nenhum"}. +{"Not allowed","Não é permitido"}. +{"Not Found","Não encontrado"}. +{"Not subscribed","Não subscrito"}. +{"Notify subscribers when items are removed from the node","Notificar assinantes quando itens forem eliminados do nó"}. +{"Notify subscribers when the node configuration changes","Notificar assinantes a configuração do nó mudar"}. +{"Notify subscribers when the node is deleted","Notificar assinantes quando o nó for eliminado se elimine"}. +{"November","Novembro"}. +{"Number of answers required","Quantidade de respostas necessárias"}. +{"Number of occupants","Quantidade de participantes"}. +{"Number of Offline Messages","Quantidade das mensagens offline"}. +{"Number of online users","Quantidade de utilizadores online"}. +{"Number of registered users","Quantidade de utilizadores registados"}. +{"Number of seconds after which to automatically purge items","Quantidade de segundos para excluir os itens automaticamente"}. +{"Occupants are allowed to invite others","As pessoas estão autorizadas a convidar outras pessoas"}. +{"Occupants May Change the Subject","As pessoas talvez possam alterar o assunto"}. +{"October","Outubro"}. +{"Offline Messages","Mensagens offline"}. +{"Offline Messages:","Mensagens offline:"}. {"OK","OK"}. +{"Old Password:","Palavra-passe Antiga:"}. {"Online Users","Utilizadores ligados"}. +{"Online Users:","Utilizadores online:"}. {"Online","Ligado"}. +{"Only admins can see this","Apenas administradores podem ver isso"}. +{"Only collection node owners may associate leaf nodes with the collection","Apenas um grupo dos proprietários dos nós podem associar as páginas na coleção"}. +{"Only deliver notifications to available users","Somente enviar notificações aos utilizadores disponíveis"}. +{"Only or tags are allowed","Apenas tags ou são permitidas"}. +{"Only element is allowed in this query","Apenas elemento é permitido nesta consulta"}. +{"Only members may query archives of this room","Somente os membros podem procurar nos arquivos desta sala"}. +{"Only moderators and participants are allowed to change the subject in this room","Somente os moderadores e os participamentes podem alterar o assunto desta sala"}. +{"Only moderators are allowed to change the subject in this room","Somente os moderadores podem alterar o assunto desta sala"}. +{"Only moderators can approve voice requests","Somente moderadores podem aprovar requisições de voz"}. {"Only occupants are allowed to send messages to the conference","Só os ocupantes podem enviar mensagens para a sala"}. {"Only occupants are allowed to send queries to the conference","Só os ocupantes podem enviar consultas para a sala"}. +{"Only publishers may publish","Apenas os editores podem publicar"}. {"Only service administrators are allowed to send service messages","Só os administradores do serviço têm permissão para enviar mensagens de serviço"}. +{"Only those on a whitelist may associate leaf nodes with the collection","Apenas aqueles presentes numa lista branca podem associar páginas na coleção"}. +{"Only those on a whitelist may subscribe and retrieve items","Apenas aqueles presentes numa lista branca podem se inscrever e recuperar os itens"}. {"Organization Name","Nome da organização"}. {"Organization Unit","Unidade da organização"}. +{"Outgoing s2s Connections","Conexões s2s de Saída"}. +{"Outgoing s2s Connections:","Saída das conexões s2s:"}. {"Owner privileges required","São necessários privilégios de dono"}. +{"Packet relay is denied by service policy","A retransmissão de pacote é negada por causa da política de serviço"}. {"Packet","Pacote"}. +{"Participant","Participante"}. +{"Password Verification:","Verificação da Palavra-passe:"}. +{"Password Verification","Verificação de Palavra-passe"}. {"Password","Palavra-chave"}. {"Password:","Palavra-chave:"}. {"Path to Dir","Caminho para o directório"}. {"Path to File","Caminho do ficheiro"}. +{"Payload type","Tipo da carga útil"}. {"Pending","Pendente"}. -{"private, ","privado"}. +{"Period: ","Período: "}. +{"Persist items to storage","Persistir elementos ao armazenar"}. +{"Persistent","Persistente"}. +{"Ping query is incorrect","A consulta ping está incorreta"}. +{"Ping","Ping"}. +{"Please note that these options will only backup the builtin Mnesia database. If you are using the ODBC module, you also need to backup your SQL database separately.","Observe que tais opções farão backup apenas da base de dados Mnesia. Caso esteja a utilizar o modulo ODBC, precisará fazer backup da sua base de dados SQL separadamente."}. +{"Please, wait for a while before sending new voice request","Por favor, espere antes de enviar uma nova requisição de voz"}. +{"Pong","Pong"}. +{"Possessing 'ask' attribute is not allowed by RFC6121","Possuir o atributo 'ask' não é permitido pela RFC6121"}. +{"Present real Jabber IDs to","Tornar o Jabber ID real visível por"}. +{"Previous session not found","A sessão anterior não foi encontrada"}. +{"Previous session PID has been killed","O PID da sessão anterior foi excluído"}. +{"Previous session PID has exited","O PID da sessão anterior foi encerrado"}. +{"Previous session PID is dead","O PID da sessão anterior está morto"}. +{"Previous session timed out","A sessão anterior expirou"}. +{"private, ","privado, "}. +{"Public","Público"}. +{"Publish model","Publicar o modelo"}. +{"Publish-Subscribe","Publicação de Tópico"}. +{"PubSub subscriber request","PubSub requisição de assinante"}. +{"Purge all items when the relevant publisher goes offline","Descartar todos os itens quando o publicante principal estiver offline"}. +{"Push record not found","O registo push não foi encontrado"}. {"Queries to the conference members are not allowed in this room","Nesta sala não são permitidas consultas aos seus membros"}. +{"Query to another users is forbidden","Consultar a outro utilizador é proibido"}. {"RAM and disc copy","Cópia em RAM e em disco"}. {"RAM copy","Cópia em RAM"}. +{"Really delete message of the day?","Deletar realmente a mensagem do dia?"}. +{"Receive notification from all descendent nodes","Receba a notificação de todos os nós descendentes"}. +{"Receive notification from direct child nodes only","Receba apenas as notificações dos nós relacionados"}. +{"Receive notification of new items only","Receba apenas as notificações dos itens novos"}. +{"Receive notification of new nodes only","Receba apenas as notificações dos nós novos"}. {"Recipient is not in the conference room","O destinatário não está na sala"}. +{"Register an XMPP account","Registe uma conta XMPP"}. +{"Registered Users","Utilizadores registados"}. +{"Registered Users:","Utilizadores registados:"}. +{"Register","Registar"}. {"Remote copy","Cópia remota"}. +{"Remove All Offline Messages","Remover Todas as Mensagens Offline"}. {"Remove User","Eliminar utilizador"}. {"Remove","Remover"}. +{"Replaced by new connection","Substituído por nova conexão"}. +{"Request has timed out","O pedido expirou"}. +{"Request is ignored","O pedido foi ignorado"}. +{"Requested role","Função solicitada"}. +{"Resources","Recursos"}. +{"Restart Service","Reiniciar Serviço"}. {"Restart","Reiniciar"}. {"Restore Backup from File at ","Restaura cópia de segurança a partir do ficheiro em "}. +{"Restore binary backup after next ejabberd restart (requires less memory):","Restaurar backup binário após reinicialização do ejabberd (requer menos memória):"}. +{"Restore binary backup immediately:","Restaurar imediatamente o backup binário:"}. +{"Restore plain text backup immediately:","Restaurar backup formato texto imediatamente:"}. {"Restore","Restaurar"}. +{"Roles and Affiliations that May Retrieve Member List","As funções e as afiliações que podem recuperar a lista dos membros"}. +{"Roles for which Presence is Broadcasted","Para quem a presença será notificada"}. +{"Roles that May Send Private Messages","Atribuições que talvez possam enviar mensagens privadas"}. +{"Room Configuration","Configuração de salas"}. +{"Room creation is denied by service policy","Sala não pode ser criada devido à política do serviço"}. +{"Room description","Descrição da Sala"}. +{"Room Occupants","Quantidade de participantes"}. +{"Room terminates","Terminação da sala"}. {"Room title","Título da sala"}. +{"Roster groups allowed to subscribe","Listar grupos autorizados"}. +{"Roster of ~ts","Lista de ~ts"}. +{"Roster size","Tamanho da Lista"}. +{"Roster:","Lista:"}. +{"RPC Call Error","Erro de chamada RPC"}. {"Running Nodes","Nodos a correr"}. +{"~s invites you to the room ~s","~s convidaram-o à sala ~s"}. +{"Saturday","Sábado"}. +{"Script check","Verificação de Script"}. +{"Search from the date","Pesquise a partir da data"}. +{"Search Results for ","Resultados de pesquisa para "}. +{"Search the text","Pesquise o texto"}. +{"Search until the date","Pesquise até a data"}. {"Search users in ","Procurar utilizadores em "}. +{"Select All","Selecione tudo"}. +{"Send announcement to all online users on all hosts","Enviar anúncio a todos utilizadores online em todas as máquinas"}. +{"Send announcement to all online users","Enviar anúncio a todos os utilizadorns online"}. +{"Send announcement to all users on all hosts","Enviar aviso para todos os utilizadores em todos os hosts"}. +{"Send announcement to all users","Enviar anúncio a todos os utilizadores"}. +{"September","Setembro"}. +{"Server:","Servidor:"}. +{"Service list retrieval timed out","A recuperação da lista dos serviços expirou"}. +{"Session state copying timed out","A cópia do estado da sessão expirou"}. +{"Set message of the day and send to online users","Definir mensagem do dia e enviar a todos utilizadores online"}. +{"Set message of the day on all hosts and send to online users","Definir mensagem do dia em todos os hosts e enviar para os utilizadores online"}. +{"Shared Roster Groups","Grupos Shared Roster"}. +{"Show Integral Table","Mostrar Tabela Integral"}. +{"Show Ordinary Table","Mostrar Tabela Ordinária"}. +{"Shut Down Service","Parar Serviço"}. +{"SOCKS5 Bytestreams","Bytestreams SOCKS5"}. +{"Some XMPP clients can store your password in the computer, but you should do this only in your personal computer for safety reasons.","Alguns clientes XMPP podem armazenar a sua palavra-passe no seu computador, só faça isso no seu computador particular por questões de segurança."}. +{"Specify the access model","Especificar os modelos de acesso"}. +{"Specify the event message type","Especificar o tipo de mensagem para o evento"}. +{"Specify the publisher model","Especificar o modelo do publicante"}. +{"Stanza ID","ID da estrofe"}. +{"Statically specify a replyto of the node owner(s)","Defina uma resposta fixa do(s) proprietário(s) do nó"}. +{"Statistics of ~p","Estatísticas de ~p"}. {"Statistics","Estatísticas"}. {"Stop","Parar"}. {"Stopped Nodes","Nodos parados"}. {"Storage Type","Tipo de armazenagem"}. +{"Store binary backup:","Armazenar backup binário:"}. +{"Store plain text backup:","Armazenar backup em texto:"}. +{"Stream management is already enabled","A gestão do fluxo já está ativada"}. +{"Stream management is not enabled","A gestão do fluxo não está ativada"}. +{"Subject","Assunto"}. {"Submit","Enviar"}. +{"Submitted","Submetido"}. +{"Subscriber Address","Endereço dos Assinantes"}. +{"Subscribers may publish","Os assinantes podem publicar"}. +{"Subscription requests must be approved and only subscribers may retrieve items","Os pedidos de assinatura devem ser aprovados e apenas os assinantes podem recuperar os itens"}. +{"Subscriptions are not allowed","Subscrições não estão permitidas"}. {"Subscription","Subscrição"}. +{"Sunday","Domingo"}. +{"Text associated with a picture","Um texto associado a uma imagem"}. +{"Text associated with a sound","Um texto associado a um som"}. +{"Text associated with a video","Um texto associado a um vídeo"}. +{"Text associated with speech","Um texto associado à fala"}. +{"That nickname is already in use by another occupant","O apelido (nick) já está a ser utilizado"}. +{"That nickname is registered by another person","O apelido já está registado por outra pessoa"}. +{"The account already exists","A conta já existe"}. +{"The account was not unregistered","A conta não estava não registada"}. +{"The body text of the last received message","O corpo do texto da última mensagem que foi recebida"}. +{"The CAPTCHA is valid.","O CAPTCHA é inválido."}. +{"The CAPTCHA verification has failed","A verificação do CAPTCHA falhou"}. +{"The captcha you entered is wrong","O captcha que digitou está errado"}. +{"The child nodes (leaf or collection) associated with a collection","Os nós relacionados (página ou coleção) associados com uma coleção"}. +{"The collections with which a node is affiliated","As coleções com as quais o nó está relacionado"}. +{"The DateTime at which a leased subscription will end or has ended","A data e a hora que uma assinatura alugada terminará ou terá terminado"}. +{"The datetime when the node was created","A data em que o nó foi criado"}. +{"The default language of the node","O idioma padrão do nó"}. +{"The feature requested is not supported by the conference","A funcionalidade solicitada não é suportada pela sala de conferência"}. +{"The JID of the node creator","O JID do criador do nó"}. +{"The JIDs of those to contact with questions","Os JIDs daqueles para entrar em contato com perguntas"}. +{"The JIDs of those with an affiliation of owner","Os JIDs daqueles com uma afiliação de proprietário"}. +{"The JIDs of those with an affiliation of publisher","Os JIDs daqueles com uma afiliação de editor"}. +{"The list of JIDs that may associate leaf nodes with a collection","A lista dos JIDs que podem associar as páginas dos nós numa coleção"}. +{"The maximum number of child nodes that can be associated with a collection","A quantidade máxima dos nós relacionados que podem ser associados com uma coleção"}. +{"The minimum number of milliseconds between sending any two notification digests","A quantidade mínima de milissegundos entre o envio do resumo das duas notificações"}. +{"The name of the node","O nome do nó"}. +{"The node is a collection node","O nó é um nó da coleção"}. +{"The node is a leaf node (default)","O nó é uma página do nó (padrão)"}. +{"The NodeID of the relevant node","O NodeID do nó relevante"}. +{"The number of pending incoming presence subscription requests","A quantidade pendente dos pedidos da presença da assinatura"}. +{"The number of subscribers to the node","A quantidade dos assinantes para o nó"}. +{"The number of unread or undelivered messages","A quantidade das mensagens que não foram lidas ou não foram entregues"}. +{"The password contains unacceptable characters","A palavra-passe contém caracteres proibidos"}. +{"The password is too weak","Palavra-passe considerada muito fraca"}. +{"the password is","a palavra-passe é"}. +{"The password of your XMPP account was successfully changed.","A palavra-passe da sua conta XMPP foi alterada com sucesso."}. +{"The password was not changed","A palavra-passe não foi alterada"}. +{"The passwords are different","As palavras-passe não batem"}. +{"The presence states for which an entity wants to receive notifications","As condições da presença para os quais uma entidade queira receber as notificações"}. +{"The query is only allowed from local users","Esta consulta só é permitida a partir de utilizadores locais"}. +{"The query must not contain elements","A consulta não pode conter elementos "}. +{"The room subject can be modified by participants","O tema da sala pode ser alterada pelos próprios participantes"}. +{"The sender of the last received message","O remetente da última mensagem que foi recebida"}. +{"The stanza MUST contain only one element, one element, or one element","A instância DEVE conter apenas um elemento , um elemento , ou um elemento "}. +{"The subscription identifier associated with the subscription request","O identificador da assinatura associado à solicitação da assinatura"}. +{"The type of node data, usually specified by the namespace of the payload (if any)","O tipo dos dados do nó, normalmente definido pelo espaço dos nomes da carga útil (caso haja)"}. +{"The URL of an XSL transformation which can be applied to payloads in order to generate an appropriate message body element.","O URL da transformação XSL que pode ser aplicada nas cargas úteis para gerar um elemento apropriado no corpo da mensagem."}. +{"The URL of an XSL transformation which can be applied to the payload format in order to generate a valid Data Forms result that the client could display using a generic Data Forms rendering engine","A URL de uma transformação XSL que pode ser aplicada ao formato de carga útil para gerar um Formulário de Dados válido onde o cliente possa exibir usando um mecanismo genérico de renderização do Formulários de Dados"}. +{"The username is not valid","O nome do utilizador não é válido"}. +{"There was an error changing the password: ","Houve um erro ao alterar a palavra-passe: "}. +{"There was an error creating the account: ","Houve um erro ao criar esta conta: "}. +{"There was an error deleting the account: ","Houve um erro ao deletar esta conta: "}. +{"This is case insensitive: macbeth is the same that MacBeth and Macbeth.","O tamanho da caixa não importa: macbeth é o mesmo que MacBeth e Macbeth."}. +{"This page allows to register an XMPP account in this XMPP server. Your JID (Jabber ID) will be of the form: username@server. Please read carefully the instructions to fill correctly the fields.","Esta pagina permite a criação de novas contas XMPP neste servidor. O seu JID (Identificador Jabber) será da seguinte maneira: utilizador@servidor. Por favor, leia cuidadosamente as instruções para preencher todos os campos corretamente."}. +{"This page allows to unregister an XMPP account in this XMPP server.","Esta página permite a exclusão de uma conta XMPP neste servidor."}. +{"This room is not anonymous","Essa sala não é anônima"}. +{"This service can not process the address: ~s","Este serviço não pode processar o endereço: ~s"}. +{"Thursday","Quinta"}. +{"Time delay","Intervalo (Tempo)"}. +{"Timed out waiting for stream resumption","Tempo limite expirou durante à espera da retomada da transmissão"}. {"Time","Data"}. +{"To register, visit ~s","Para registar, visite ~s"}. +{"To ~ts","Para ~s"}. +{"Token TTL","Token TTL"}. +{"Too many active bytestreams","Quantidade excessiva de bytestreams ativos"}. +{"Too many CAPTCHA requests","Quantidade excessiva de requisições para o CAPTCHA"}. +{"Too many child elements","Quantidade excessiva de elementos filho"}. +{"Too many elements","Quantidade excessiva de elementos "}. +{"Too many elements","Quantidade excessiva de elementos "}. +{"Too many (~p) failed authentications from this IP address (~s). The address will be unblocked at ~s UTC","Tentativas excessivas (~p) com falha de autenticação (~s). O endereço será desbloqueado às ~s UTC"}. +{"Too many receiver fields were specified","Foram definidos receptores demais nos campos"}. +{"Too many unacked stanzas","Quantidade excessiva de instâncias sem confirmação"}. +{"Too many users in this conference","Há uma quantidade excessiva de utilizadores nesta conferência"}. {"To","Para"}. +{"Total rooms","Salas no total"}. +{"Traffic rate limit is exceeded","Limite de banda excedido"}. +{"Transactions Aborted:","Transações abortadas:"}. +{"Transactions Committed:","Transações salvas:"}. +{"Transactions Logged:","Transações de log:"}. +{"Transactions Restarted:","Transações reiniciadas:"}. +{"~ts's Offline Messages Queue","~s's Fila de Mensagens Offline"}. +{"Tuesday","Terça"}. +{"Unable to generate a CAPTCHA","Impossível gerar um CAPTCHA"}. +{"Unable to register route on existing local domain","Não foi possível registar rota no domínio local existente"}. +{"Unauthorized","Não Autorizado"}. +{"Unexpected action","Ação inesperada"}. +{"Unexpected error condition: ~p","Condição de erro inesperada: ~p"}. +{"Unregister an XMPP account","Excluir uma conta XMPP"}. +{"Unregister","Deletar registo"}. +{"Unselect All","Desmarcar todos"}. +{"Unsupported element","Elemento não suportado"}. +{"Unsupported version","Versão sem suporte"}. +{"Update message of the day (don't send)","Atualizar mensagem do dia (não enviar)"}. +{"Update message of the day on all hosts (don't send)","Atualizar a mensagem do dia em todos os host (não enviar)"}. +{"Update ~p","Atualizar ~p"}. +{"Update plan","Plano de atualização"}. +{"Update script","Script de atualização"}. {"Update","Actualizar"}. +{"Uptime:","Tempo de atividade:"}. +{"URL for Archived Discussion Logs","A URL para o arquivamento dos registos da discussão"}. +{"User already exists","Utilizador já existe"}. +{"User (jid)","Utilizador (jid)"}. +{"User JID","Utilizador JID"}. +{"User Management","Gestão de utilizadores"}. +{"User removed","O utilizador foi removido"}. +{"User session not found","A sessão do utilizador não foi encontrada"}. +{"User session terminated","Sessão de utilizador terminada"}. +{"User ~ts","Utilizador ~s"}. +{"Username:","Utilizador:"}. +{"Users are not allowed to register accounts so quickly","Utilizadores não estão autorizados a registar contas imediatamente"}. +{"Users Last Activity","Últimas atividades dos utilizadores"}. {"Users","Utilizadores"}. {"User","Utilizador"}. +{"Validate","Validar"}. +{"Value 'get' of 'type' attribute is not allowed","Valor 'get' não permitido para atributo 'type'"}. +{"Value of '~s' should be boolean","Value de '~s' deveria ser um booleano"}. +{"Value of '~s' should be datetime string","Valor de '~s' deveria ser data e hora"}. +{"Value of '~s' should be integer","Valor de '~s' deveria ser um inteiro"}. +{"Value 'set' of 'type' attribute is not allowed","Valor 'set' não permitido para atributo 'type'"}. +{"vCard User Search","Busca de Utilizador vCard"}. +{"View Queue","Exibir a fila"}. +{"View Roster","Ver a lista"}. +{"Virtual Hosts","Hosts virtuais"}. +{"Visitors are not allowed to change their nicknames in this room","Nesta sala, os visitantes não podem mudar os apelidos deles"}. {"Visitors are not allowed to send messages to all occupants","Os visitantes não podem enviar mensagens para todos os ocupantes"}. +{"Visitor","Visitante"}. +{"Voice request","Requisição de voz"}. +{"Voice requests are disabled in this conference","Requisições de voz estão desativadas nesta sala de conferência"}. +{"Wednesday","Quarta"}. +{"When a new subscription is processed and whenever a subscriber comes online","Quando uma nova assinatura é processada e sempre que um assinante fica online"}. +{"When a new subscription is processed","Quando uma nova assinatura é processada"}. +{"When to send the last published item","Quando enviar o último tópico publicado"}. +{"Whether an entity wants to receive an XMPP message body in addition to the payload format","Caso uma entidade queira receber o corpo de uma mensagem XMPP além do formato de carga útil"}. +{"Whether an entity wants to receive digests (aggregations) of notifications or all notifications individually","Caso uma entidade queira receber os resumos (as agregações) das notificações ou todas as notificações individualmente"}. +{"Whether an entity wants to receive or disable notifications","Caso uma entidade queira receber ou desativar as notificações"}. +{"Whether owners or publisher should receive replies to items","Caso os proprietários ou a editora devam receber as respostas nos itens"}. +{"Whether the node is a leaf (default) or a collection","Caso o nó seja uma folha (padrão) ou uma coleção"}. +{"Whether to allow subscriptions","Permitir subscrições"}. +{"Whether to make all subscriptions temporary, based on subscriber presence","Caso todas as assinaturas devam ser temporárias, com base na presença do assinante"}. +{"Whether to notify owners about new subscribers and unsubscribes","Caso deva notificar os proprietários sobre os novos assinantes e aqueles que cancelaram a assinatura"}. +{"Who may associate leaf nodes with a collection","Quem pode associar as folhas dos nós numa coleção"}. +{"Wrong parameters in the web formulary","O formulário web está com os parâmetros errados"}. +{"Wrong xmlns","Xmlns errado"}. +{"XMPP Account Registration","Registo da Conta XMPP"}. +{"XMPP Domains","Domínios XMPP"}. +{"XMPP Show Value of Away","XMPP Exiba o valor da ausência"}. +{"XMPP Show Value of Chat","XMPP Exiba o valor do chat"}. +{"XMPP Show Value of DND (Do Not Disturb)","XMPP Exiba o valor do DND (Não Perturbe)"}. +{"XMPP Show Value of XA (Extended Away)","XMPP Exiba o valor do XA (Ausência Estendida)"}. +{"XMPP URI of Associated Publish-Subscribe Node","XMPP URI da publicação do nó associado da assinatura"}. +{"You are being removed from the room because of a system shutdown","Está a ser removido da sala devido ao desligamento do sistema"}. +{"You are not joined to the channel","Não está inscrito no canal"}. +{"You can later change your password using an XMPP client.","Pode alterar a sua palavra-passe mais tarde usando um cliente XMPP."}. {"You have been banned from this room","Foi banido desta sala"}. +{"You have joined too many conferences","Entrou em demais salas de conferência"}. +{"You must fill in field \"Nickname\" in the form","Deve completar o campo \"Apelido\" no formulário"}. +{"You need a client that supports x:data and CAPTCHA to register","Precisa de um cliente com suporte de x:data para poder registar o apelido"}. +{"You need a client that supports x:data to register the nickname","Precisa de um cliente com suporte a x:data para registar o seu apelido"}. {"You need an x:data capable client to search","É necessário um cliente com suporte de x:data para poder procurar"}. +{"Your active privacy list has denied the routing of this stanza.","A sua lista de privacidade ativa negou o roteamento desta instância."}. +{"Your contact offline message queue is full. The message has been discarded.","A fila de contatos offline esta cheia. A sua mensagem foi descartada."}. +{"Your subscription request and/or messages to ~s have been blocked. To unblock your subscription request, visit ~s","As suas mensagens para ~s estão bloqueadas. Para desbloqueá-las, visite: ~s"}. +{"Your XMPP account was successfully registered.","A sua conta XMPP foi registada com sucesso."}. +{"Your XMPP account was successfully unregistered.","A sua conta XMPP foi excluída com sucesso."}. +{"You're not allowed to create nodes","Não tem autorização para criar nós"}. From 33f821d4f750c0249c9fbe8a37d8bce9f151ab7e Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 20 Jul 2021 13:46:47 +0200 Subject: [PATCH 052/105] Simplify the --with-rebar example in README --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1662fc05c..163ead480 100644 --- a/README.md +++ b/README.md @@ -164,7 +164,7 @@ For detailed information please refer to the Alternatively, you can setup ejabberd without installing in your system: - ./configure --with-rebar=./rebar3 + ./configure --with-rebar=rebar3 make dev Or, if you have Elixir available and plan to develop Elixir code: From 50242cec789187d1d470180cc94555ce56061d10 Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 20 Jul 2021 19:19:58 +0200 Subject: [PATCH 053/105] Annotate the srg_create command as changed in 21.07 --- src/mod_admin_extra.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index abbed635d..04cb39cfb 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -662,6 +662,7 @@ get_commands_spec() -> "For example:\n" " ejabberdctl srg_create group3 myserver.com " "name desc \\\"group1\\\\ngroup2\\\"", + note = "changed in 21.07", module = ?MODULE, function = srg_create, args = [{group, binary}, {host, binary}, {label, binary}, {description, binary}, {display, binary}], From 142e494d52a028da207df1fa4baad42a5237ef9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 21 Jul 2021 14:50:18 +0200 Subject: [PATCH 054/105] Update mix.lock --- mix.lock | 48 ++++++++++++++++++++++-------------------------- 1 file changed, 22 insertions(+), 26 deletions(-) diff --git a/mix.lock b/mix.lock index 0472e8190..a5b158e0f 100644 --- a/mix.lock +++ b/mix.lock @@ -1,40 +1,36 @@ %{ "artificery": {:hex, :artificery, "0.4.3", "0bc4260f988dcb9dda4b23f9fc3c6c8b99a6220a331534fdf5bf2fd0d4333b02", [:mix], [], "hexpm", "12e95333a30e20884e937abdbefa3e7f5e05609c2ba8cf37b33f000b9ffc0504"}, "base64url": {:hex, :base64url, "0.0.1", "36a90125f5948e3afd7be97662a1504b934dd5dac78451ca6e9abf85a10286be", [:rebar], [], "hexpm", "fab09b20e3f5db886725544cbcf875b8e73ec93363954eb8a1a9ed834aa8c1f9"}, - "cache_tab": {:hex, :cache_tab, "1.0.28", "551beb14325c34aa7e1e5d65e5fdaa1a87b0325393cfaf8641c0068364d84f69", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "17451084f2cc0a4a6304e12ae5c9ceef13d70ad070c9c406317e80abb7677889"}, + "cache_tab": {:hex, :cache_tab, "1.0.29", "6c161988620b788d8df28c8f6af557571609c8e4b671dbadab295a4722cd501b", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "a02a638021cce91ed1a8628dcbb4795bf5c01c9d11db8c613065923142824ce9"}, "distillery": {:hex, :distillery, "2.1.1", "f9332afc2eec8a1a2b86f22429e068ef35f84a93ea1718265e740d90dd367814", [:mix], [{:artificery, "~> 0.2", [hex: :artificery, repo: "hexpm", optional: false]}], "hexpm", "bbc7008b0161a6f130d8d903b5b3232351fccc9c31a991f8fcbf2a12ace22995"}, - "earmark": {:hex, :earmark, "1.4.3", "364ca2e9710f6bff494117dbbd53880d84bebb692dafc3a78eb50aa3183f2bfd", [:mix], [], "hexpm", "8cf8a291ebf1c7b9539e3cddb19e9cef066c2441b1640f13c34c1d3cfc825fec"}, - "earmark_parser": {:hex, :earmark_parser, "1.4.12", "b245e875ec0a311a342320da0551da407d9d2b65d98f7a9597ae078615af3449", [:mix], [], "hexpm", "711e2cc4d64abb7d566d43f54b78f7dc129308a63bc103fbd88550d2174b3160"}, - "eimp": {:hex, :eimp, "1.0.20", "4b46fa8623690ba602fc1c509dd5d38bdf7c2188b694064bf144f36be600cf02", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "531a1d07e5df83f6adf29f9bae93faa227ebfdcd92d2408a28630709eac3e979"}, - "epam": {:hex, :epam, "1.0.10", "feb9cf1169c8e30609b13bc5f77a0d8213b425997bec1d05dfbccab024fde856", [:rebar3], [], "hexpm", "429a43b876fbef5d1accaadf8177a74933b37e069d6bcc08d74745b8c8f76f71"}, - "eredis": {:hex, :eredis, "1.2.0", "0b8e9cfc2c00fa1374cd107ea63b49be08d933df2cf175e6a89b73dd9c380de4", [:rebar3], [], "hexpm", "d9b5abef2c2c8aba8f32aa018203e0b3dc8b1157773b254ab1d4c2002317f1e1"}, - "esip": {:hex, :esip, "1.0.42", "ccd1f3aa1e8d7b5ffe51fc5df238b0d36b5f6cde67cef1dab24931ff03a0a836", [:rebar3], [{:fast_tls, "1.1.12", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.0.43", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "87e28b1344543ef9c1b24a60097ae3ceeedba0ff6487f20cdc7be53f087b9a4e"}, - "ex_doc": {:hex, :ex_doc, "0.24.2", "e4c26603830c1a2286dae45f4412a4d1980e1e89dc779fcd0181ed1d5a05c8d9", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "e134e1d9e821b8d9e4244687fb2ace58d479b67b282de5158333b0d57c6fb7da"}, - "ezlib": {:hex, :ezlib, "1.0.9", "b17136b48bcf73962446b06d4427b0b6f2be4550bb5190a18a2979640271e244", [:rebar3], [], "hexpm", "fafc60a0de6e982be38f793da7b220b87a0da2969eba8a878351442b35cc2fde"}, - "fast_tls": {:hex, :fast_tls, "1.1.12", "b11997d96d4306abcd4cdb9ffa77ccfc0f826f64bed77ecaceb48b2dc46b9202", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "c3d80828f5d985cba4c93660ffbf2c9b9cd831303382b97832dd66429fb16f8a"}, - "fast_xml": {:hex, :fast_xml, "1.1.46", "bd563e1cdd8a397ed31a6e11f832ea9e4e90f84695104aa92b46224a887fc6ae", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "2992a0b2fb649879936fd72498e8bf4202e4cc8356295e14ddf17d4220ac8c51"}, - "fast_yaml": {:hex, :fast_yaml, "1.0.31", "a66d0e678341dc20680aece8e6fd566205a229981b5b3cfa698c66323b728da2", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "8aa129e3384c5aa9f5f1597a1e3321a63a44860f3951f23eeed950bf0ee59643"}, + "earmark_parser": {:hex, :earmark_parser, "1.4.13", "0c98163e7d04a15feb62000e1a891489feb29f3d10cb57d4f845c405852bbef8", [:mix], [], "hexpm", "d602c26af3a0af43d2f2645613f65841657ad6efc9f0e361c3b6c06b578214ba"}, + "eimp": {:hex, :eimp, "1.0.21", "2e918a5dc9a1959ef8713a2360499e3baeee64cfd7881bd9d1f361ca9ddf07e8", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "998f58538f58aa0cff103414994d7ce56dc253e6576cd6fb40c1ead64aa73a28"}, + "epam": {:hex, :epam, "1.0.12", "2a5625d4133bca4b3943791a3f723ba764455a461ae9b6ba5debb262efcf4b40", [:rebar3], [], "hexpm", "54c166c4459cef72f2990a3d89a8f0be27180fe0ab0f24b28ddcc3b815f49f7f"}, + "esip": {:hex, :esip, "1.0.43", "1cbdc073073f80b9b50e2759f66ca13a353eb4f874bcf92501bd4cd767e34d46", [:rebar3], [{:fast_tls, "1.1.13", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stun, "1.0.44", [hex: :stun, repo: "hexpm", optional: false]}], "hexpm", "b2c758ae52c4588e0399c0b4ce550bfa56551a5a2f828a28389f2614797e4f4b"}, + "ex_doc": {:hex, :ex_doc, "0.25.0", "4070a254664ee5495c2f7cce87c2f43064a8752f7976f2de4937b65871b05223", [:mix], [{:earmark_parser, "~> 1.4.0", [hex: :earmark_parser, repo: "hexpm", optional: false]}, {:makeup_elixir, "~> 0.14", [hex: :makeup_elixir, repo: "hexpm", optional: false]}, {:makeup_erlang, "~> 0.1", [hex: :makeup_erlang, repo: "hexpm", optional: false]}], "hexpm", "2d90883bd4f3d826af0bde7fea733a4c20adba1c79158e2330f7465821c8949b"}, + "ezlib": {:hex, :ezlib, "1.0.10", "c1c24eb18944cfde55f0574e9922d5b0392fa864282f769f82b2ea15e54f6003", [:rebar3], [], "hexpm", "1d317f1d85373686199eb3b4164d3477e95033ac68e45a95ba18e7b7a8c23241"}, + "fast_tls": {:hex, :fast_tls, "1.1.13", "828cdc75e1e8fce8158846d2b971d8b4fe2b2ddcc75b759e88d751079bf78afd", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "d1f422af40c7777fe534496f508ee86515cb929ad10f7d1d56aa94ce899b44a0"}, + "fast_xml": {:hex, :fast_xml, "1.1.47", "bd1d6c081b69c7bce0d2f22b013c1b864ed2588d48f34e2156d9428f8f772c66", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "dd014c45247498effb9a28cf98cb716db79be635ad1e98c951240763119f24c7"}, + "fast_yaml": {:hex, :fast_yaml, "1.0.32", "43f53a2c8572f2e4d66cd4e787fc6761b1c65b9132e42c511d8b9540b0989d65", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "7258e322739ff0824237ebe44cd158e0bf52cd27a15fe731cf92f4b4c70b913e"}, "goldrush": {:hex, :goldrush, "0.1.9", "f06e5d5f1277da5c413e84d5a2924174182fb108dabb39d5ec548b27424cd106", [:rebar3], [], "hexpm", "99cb4128cffcb3227581e5d4d803d5413fa643f4eb96523f77d9e6937d994ceb"}, "idna": {:hex, :idna, "6.0.0", "689c46cbcdf3524c44d5f3dde8001f364cd7608a99556d8fbd8239a5798d4c10", [:rebar3], [{:unicode_util_compat, "0.4.1", [hex: :unicode_util_compat, repo: "hexpm", optional: false]}], "hexpm", "4bdd305eb64e18b0273864920695cb18d7a2021f31a11b9c5fbcd9a253f936e2"}, "jiffy": {:hex, :jiffy, "1.0.5", "a69b58faf7123534c20e1b0b7ae97ac52079ca02ed4b6989b4b380179cd63a54", [:rebar3], [], "hexpm", "b617a53f46ae84f20d0c38951367dc947a2cf8cff922aa5c6ac6b64b8b052289"}, "jose": {:hex, :jose, "1.9.0", "4167c5f6d06ffaebffd15cdb8da61a108445ef5e85ab8f5a7ad926fdf3ada154", [:mix, :rebar3], [{:base64url, "~> 0.0.1", [hex: :base64url, repo: "hexpm", optional: false]}], "hexpm", "6429c4fee52b2dda7861ee19a4f09c8c1ffa213bee3a1ec187828fde95d447ed"}, - "lager": {:hex, :lager, "3.6.10", "6172b43ab720ac33914ccd0aeb21fdbdf88213847707d4b91e6af57b2ae5c4d2", [:rebar3], [{:goldrush, "0.1.9", [hex: :goldrush, repo: "hexpm", optional: false]}], "hexpm", "5d10499461826b79c5abee18bb594b3949cbdf76d9d9fd7e66d0a558137c21c9"}, - "luerl": {:hex, :luerl, "0.3.1", "5412807630aac1aaf59ffe5a1bc09259c447b4faeb1d3fe2d4ef41b87676cb04", [:rebar3], [], "hexpm", "1bc011c7297e43aec762e53b17ecb15b0ff29f9546cd153110b343cf5b043f5f"}, + "lager": {:hex, :lager, "3.9.2", "4cab289120eb24964e3886bd22323cb5fefe4510c076992a23ad18cf85413d8c", [:rebar3], [{:goldrush, "0.1.9", [hex: :goldrush, repo: "hexpm", optional: false]}], "hexpm", "7f904d9e87a8cb7e66156ed31768d1c8e26eba1d54f4bc85b1aa4ac1f6340c28"}, "makeup": {:hex, :makeup, "1.0.5", "d5a830bc42c9800ce07dd97fa94669dfb93d3bf5fcf6ea7a0c67b2e0e4a7f26c", [:mix], [{:nimble_parsec, "~> 0.5 or ~> 1.0", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "cfa158c02d3f5c0c665d0af11512fed3fba0144cf1aadee0f2ce17747fba2ca9"}, "makeup_elixir": {:hex, :makeup_elixir, "0.15.1", "b5888c880d17d1cc3e598f05cdb5b5a91b7b17ac4eaf5f297cb697663a1094dd", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}, {:nimble_parsec, "~> 1.1", [hex: :nimble_parsec, repo: "hexpm", optional: false]}], "hexpm", "db68c173234b07ab2a07f645a5acdc117b9f99d69ebf521821d89690ae6c6ec8"}, "makeup_erlang": {:hex, :makeup_erlang, "0.1.1", "3fcb7f09eb9d98dc4d208f49cc955a34218fc41ff6b84df7c75b3e6e533cc65f", [:mix], [{:makeup, "~> 1.0", [hex: :makeup, repo: "hexpm", optional: false]}], "hexpm", "174d0809e98a4ef0b3309256cbf97101c6ec01c4ab0b23e926a9e17df2077cbb"}, - "mqtree": {:hex, :mqtree, "1.0.13", "28c9eaa3a63624829c75f606588d584c3434aec3b615df452f5a539a97467f50", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "2369ecb99b2ae3908e8c5c604ed4b96aab8f930ac1f1225e1c42ec25d6a65cc8"}, + "mqtree": {:hex, :mqtree, "1.0.14", "d201a79b51a9232b80e764b4b77a866f7c30a90c7ac6205d71f391eb3ea7eb31", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "8626dac5e862b575eaf4836f0fc1be5a7c8435c378c5a309e34ee012d48b6f6e"}, "nimble_parsec": {:hex, :nimble_parsec, "1.1.0", "3a6fca1550363552e54c216debb6a9e95bd8d32348938e13de5eda962c0d7f89", [:mix], [], "hexpm", "08eb32d66b706e913ff748f11694b17981c0b04a33ef470e33e11b3d3ac8f54b"}, - "p1_acme": {:hex, :p1_acme, "1.0.12", "e51a9e178441669ac06fc5f335ed8ef3343fda67ec83bbbf9551c49967d5f401", [:rebar3], [{:idna, "~>6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jiffy, "~>1.0.5", [hex: :jiffy, repo: "hexpm", optional: false]}, {:jose, "~>1.9.0", [hex: :jose, repo: "hexpm", optional: false]}, {:yconf, "~>1.0.11", [hex: :yconf, repo: "hexpm", optional: false]}], "hexpm", "9a98f523c656b159be3222c9834a07a83cd5f9dc83f8dec9233a457fceef99a6"}, - "p1_mysql": {:hex, :p1_mysql, "1.0.18", "c636842cc7b56785de383e4ffacc5b74318dae09d9d1447f6eac8b4aac8bd8f4", [:rebar3], [], "hexpm", "4b5e001c554b9a2b9e32885ad43c7cc97d53ef8412d9bbe9491c01997935fbb8"}, - "p1_oauth2": {:hex, :p1_oauth2, "0.6.9", "07c4527e0af10aa93e4df033f971c64aec01aa0806d6467bb0632f944b3a2309", [:rebar3], [], "hexpm", "924360cd9883cb773ae8166773241e1a9b3a70cad3034e038ab493b40b56d987"}, - "p1_pgsql": {:hex, :p1_pgsql, "1.1.11", "8769ec7a2c4f480d443b90fdaa02519fbb459aa06c5fa6a99a0fbee683be9f7a", [:rebar3], [], "hexpm", "e4ef71713293717e8ace5fe717ddd63c618179597a6af79156af9be8c3ea851d"}, - "p1_utils": {:hex, :p1_utils, "1.0.22", "10a70faa665d1f8f6995fa100d068b4d910ee2a0111fa3567e9d6232cbb86f21", [:rebar3], [], "hexpm", "0e49ff5586515e3c44901d6fb06b1473bda492d749f0b1705cbf9d96d4cd5a38"}, - "pkix": {:hex, :pkix, "1.0.7", "a0b8c9011edeba702d7cb73fecef1eabe3ae89b3dcf4b8f33775e4f17a7a1304", [:rebar3], [], "hexpm", "104a9e0ecd9cc0e579d148a028189a6efe6420b241f3d319d8a65d898a078295"}, - "sqlite3": {:hex, :sqlite3, "1.1.9", "10090161893843c9839d884855cafbb33c8ee3a2d6597443d66e6f94144dfd79", [:rebar3], [], "hexpm", "148ef74ee796efc13ffc6bb0e7f5feeb050f425e7335ff02c7415ca86819c0d0"}, - "stringprep": {:hex, :stringprep, "1.0.26", "4724516cce50354216fe89336cc25b21c7a70aefb0704db7e8ad194f30e36584", [:rebar3], [{:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "07243626cd6a147664d3a271a352e43e6cbc5a4142a78c5741d16505736c0189"}, - "stun": {:hex, :stun, "1.0.43", "5c58af3b87fde5e85552dfc085d565a8d899ef7bc0c3e97dea0ea45e3daf0a30", [:rebar3], [{:fast_tls, "1.1.12", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "6db03005a5f9931dc5c331d923cbe1c06b04f92921b47093dff8e3f0a18d7b36"}, + "p1_acme": {:hex, :p1_acme, "1.0.13", "fec71df416004ce49e295f4846fe5ba3478b41fbe4f73a06b4a8fbc967d6e659", [:rebar3], [{:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:jiffy, "1.0.5", [hex: :jiffy, repo: "hexpm", optional: false]}, {:jose, "1.9.0", [hex: :jose, repo: "hexpm", optional: false]}, {:yconf, "1.0.12", [hex: :yconf, repo: "hexpm", optional: false]}], "hexpm", "a2ce9d4904304df020c8e92e8577e0fc88f32623540656317c7e25440b4ac8d2"}, + "p1_mysql": {:hex, :p1_mysql, "1.0.19", "22f1be58397780a7d580a954e7af66cde32a29dee1a24ab2aa196272fc654a4a", [:rebar3], [], "hexpm", "88f6cdb510e8959c14b6ae84ccda04967e3de239228f859d8341da67949622b1"}, + "p1_oauth2": {:hex, :p1_oauth2, "0.6.10", "09ba1fbd447b1f480b223903e36d0415f21be592a1b00db964eea01285749028", [:rebar3], [], "hexpm", "c79cb61ababee4a8c85409b7f4932035797c093aeef1f9f53985e512b26f2a64"}, + "p1_pgsql": {:hex, :p1_pgsql, "1.1.12", "10ae79eeb35ea98c0424a8b6420542fef9e4469eb12ccf41475d10840c291e68", [:rebar3], [], "hexpm", "32203f779e01cf0353270df24833a1d831ad7cb3e3e8e35a7556dfa1f40948d5"}, + "p1_utils": {:hex, :p1_utils, "1.0.23", "7f94466ada69bd982ea7bb80fbca18e7053e7d0b82c9d9e37621fa508587069b", [:rebar3], [], "hexpm", "47f21618694eeee5006af1c88731ad86b757161e7823c29b6f73921b571c8502"}, + "pkix": {:hex, :pkix, "1.0.8", "98ea05243847fd4504f7c7a0cd82cecd1010ac327a082e1c674c5384006eae75", [:rebar3], [], "hexpm", "399508819501fab9d2e586dfa601b5ee3ef22b5612d3db58204dd2d089ef45d7"}, + "stringprep": {:hex, :stringprep, "1.0.27", "02808c7024bc6285ca6a8a67e7addfc16f35dda55551a582c5181d8ea960e890", [:rebar3], [{:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "a5967b1144ca8002a58a03d16dd109fbd0bcdb82616cead2f983944314af6a00"}, + "stun": {:hex, :stun, "1.0.44", "30b6b774864b24b05ba901291abe583bff19081e7c4efb3361df50b781ec9d3b", [:rebar3], [{:fast_tls, "1.1.13", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}], "hexpm", "e45bba816cbefff01d820e49e66814f450df25a7a468a70d68d1e64218d46520"}, "unicode_util_compat": {:hex, :unicode_util_compat, "0.4.1", "d869e4c68901dd9531385bb0c8c40444ebf624e60b6962d95952775cac5e90cd", [:rebar3], [], "hexpm", "1d1848c40487cdb0b30e8ed975e34e025860c02e419cb615d255849f3427439d"}, - "xmpp": {:hex, :xmpp, "1.5.3", "d61d8c90ffacd99bea4915c55dcee1829a053d43e0dc33b8ea66bab845cca8ed", [:rebar3], [{:ezlib, "1.0.9", [hex: :ezlib, repo: "hexpm", optional: false]}, {:fast_tls, "1.1.12", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:fast_xml, "1.1.46", [hex: :fast_xml, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.22", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stringprep, "1.0.25", [hex: :stringprep, repo: "hexpm", optional: false]}], "hexpm", "dca72f926769ed512e524b4369c7812095205f39e00b7e8b11530174a10a9d35"}, - "yconf": {:hex, :yconf, "1.0.11", "081fe70e5d73a74d0bbad91c3876a1be0e84bd8539bba4cefef2d61cd3c92f9e", [:rebar3], [{:fast_yaml, "1.0.31", [hex: :fast_yaml, repo: "hexpm", optional: false]}], "hexpm", "6df4253e2d55592ad56b5cc29edb0981778ddb6656034a8625f70ffe24290a98"}, + "xmpp": {:hex, :xmpp, "1.5.4", "6cd8144b3fe04745dc2cb3e746d6f2a963bb283db48a61f159b49cbe3fab8623", [:rebar3], [{:ezlib, "1.0.10", [hex: :ezlib, repo: "hexpm", optional: false]}, {:fast_tls, "1.1.13", [hex: :fast_tls, repo: "hexpm", optional: false]}, {:fast_xml, "1.1.47", [hex: :fast_xml, repo: "hexpm", optional: false]}, {:idna, "6.0.0", [hex: :idna, repo: "hexpm", optional: false]}, {:p1_utils, "1.0.23", [hex: :p1_utils, repo: "hexpm", optional: false]}, {:stringprep, "1.0.27", [hex: :stringprep, repo: "hexpm", optional: false]}], "hexpm", "3bc2b5cb24e52964fb11641422ce2b7ba7c261dd50080689a1cbe3d952a9db35"}, + "yconf": {:hex, :yconf, "1.0.12", "78c119d39bb805207fcb7671cb884805d75ee89c9ec98632b678f90a597dee2c", [:rebar3], [{:fast_yaml, "1.0.32", [hex: :fast_yaml, repo: "hexpm", optional: false]}], "hexpm", "12faa51c281e95bcb6abf185fd034a242209621a7bb04b6cc411c867b192e207"}, } From 537c8b966edd44a12a49dad34ccd61c6d6ffc527 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 17:22:19 +0200 Subject: [PATCH 055/105] In "make dev" don't create link ejabberdctl, seems buggy --- rel/setup-dev.sh | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/rel/setup-dev.sh b/rel/setup-dev.sh index 44638abc9..8040f3dd0 100755 --- a/rel/setup-dev.sh +++ b/rel/setup-dev.sh @@ -3,19 +3,11 @@ echo -n "===> Preparing dev configuration files: " PWD_DIR=`pwd` REL_DIR=$PWD_DIR/_build/dev/rel/ejabberd/ CON_DIR=$REL_DIR/etc/ejabberd/ -BIN_DIR=$REL_DIR/bin/ -CTLPATH=$BIN_DIR/ejabberdctl [ -z "$REL_DIR_TEMP" ] && REL_DIR_TEMP=$REL_DIR CON_DIR_TEMP=$REL_DIR_TEMP/etc/ejabberd/ BIN_DIR_TEMP=$REL_DIR_TEMP/bin/ -[ ! -e "ejabberdctl" ] \ - && echo -n "ejabberdctl " \ - && ln -s $CTLPATH ejabberdctl - -# (cd $BIN_DIR_TEMP && sed -i "s|^SCRIPT_DIR=.*|SCRIPT_DIR=$REL_DIR|g" ejabberdctl) - cd $CON_DIR_TEMP sed -i "s|# certfiles:|certfiles:\n - $CON_DIR/cert.pem|g" ejabberd.yml.example @@ -31,4 +23,6 @@ sed -i "s|#' POLL|EJABBERD_BYPASS_WARNINGS=true\n\n#' POLL|g" ejabberdctl.cfg.ex && mv ejabberdctl.cfg.example ejabberdctl.cfg echo "" -echo "===> Now you can start this ejabberd dev with: ./ejabberdctl live" +echo "===> Some example ways to start this ejabberd dev:" +echo " _build/dev/rel/ejabberd/bin/ejabberd console" +echo " _build/dev/rel/ejabberd/bin/ejabberdctl live" From ea795e4bd7d0638bfa1bff64c9baaa5b5a7b2cc9 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 16:56:54 +0200 Subject: [PATCH 056/105] Update man page --- man/ejabberd.yml.5 | 45 ++++++++++++++++++++++++++++++++------------- 1 file changed, 32 insertions(+), 13 deletions(-) diff --git a/man/ejabberd.yml.5 b/man/ejabberd.yml.5 index baec1062c..f25f57250 100644 --- a/man/ejabberd.yml.5 +++ b/man/ejabberd.yml.5 @@ -2,12 +2,12 @@ .\" Title: ejabberd.yml .\" Author: [see the "AUTHOR" section] .\" Generator: DocBook XSL Stylesheets v1.79.1 -.\" Date: 03/26/2021 +.\" Date: 07/21/2021 .\" Manual: \ \& .\" Source: \ \& .\" Language: English .\" -.TH "EJABBERD\&.YML" "5" "03/26/2021" "\ \&" "\ \&" +.TH "EJABBERD\&.YML" "5" "07/21/2021" "\ \&" "\ \&" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- @@ -82,7 +82,7 @@ All options can be changed in runtime by running \fIejabberdctl reload\-config\f .sp Some options can be specified for particular virtual host(s) only using \fIhost_config\fR or \fIappend_host_config\fR options\&. Such options are called \fIlocal\fR\&. Examples are \fImodules\fR, \fIauth_method\fR and \fIdefault_db\fR\&. The options that cannot be defined per virtual host are called \fIglobal\fR\&. Examples are \fIloglevel\fR, \fIcertfiles\fR and \fIlisten\fR\&. It is a configuration mistake to put \fIglobal\fR options under \fIhost_config\fR or \fIappend_host_config\fR section \- ejabberd will refuse to load such configuration\&. .sp -It is not recommended to write ejabberd\&.yml from scratch\&. Instead it is better to start from "default" configuration file available at https://github\&.com/processone/ejabberd/blob/21\&.01/ejabberd\&.yml\&.example\&. Once you get ejabberd running you can start changing configuration options to meet your requirements\&. +It is not recommended to write ejabberd\&.yml from scratch\&. Instead it is better to start from "default" configuration file available at https://github\&.com/processone/ejabberd/blob/21\&.07/ejabberd\&.yml\&.example\&. Once you get ejabberd running you can start changing configuration options to meet your requirements\&. .sp Note that this document is intended to provide comprehensive description of all configuration options that can be consulted to understand the meaning of a particular option, its format and possible values\&. It will be quite hard to understand how to configure ejabberd by reading this document only \- for this purpose the reader is recommended to read online Configuration Guide available at https://docs\&.ejabberd\&.im/admin/configuration\&. .SH "TOP LEVEL OPTIONS" @@ -378,6 +378,8 @@ that can be installed from the \fIejabberd\-contrib\fR Git repository\&. Please refer to that module\(cqs README file for details\&. .RE +.sp +\fINote\fR about the next option: improved in 20\&.01: .PP \fBauth_password_format\fR: \fIplain | scram\fR .RS 4 @@ -996,7 +998,7 @@ minute\&. Whether to use \fInew\fR SQL schema\&. All schemas are located at -https://github\&.com/processone/ejabberd/tree/21\&.01/sql\&. There are two schemas available\&. The default legacy schema allows to store one XMPP domain into one ejabberd database\&. The +https://github\&.com/processone/ejabberd/tree/21\&.07/sql\&. There are two schemas available\&. The default legacy schema allows to store one XMPP domain into one ejabberd database\&. The \fInew\fR schema allows to handle several XMPP domains in a single ejabberd database\&. Using this \fInew\fR @@ -1029,6 +1031,8 @@ Same as \fIcache_missed\fR will be used\&. .RE +.sp +\fINote\fR about the next option: added in 21\&.01: .PP \fBoauth_cache_rest_failure_life_time\fR: \fItimeout()\fR .RS 4 @@ -1110,12 +1114,16 @@ Specify which address families to try, in what order\&. The default is \fI[ipv4, ipv6]\fR which means it first tries connecting with IPv4, if that fails it tries using IPv6\&. .RE +.sp +\fINote\fR about the next option: added in 20\&.12: .PP \fBoutgoing_s2s_ipv4_address\fR: \fIAddress\fR .RS 4 Specify the IPv4 address that will be used when establishing an outgoing S2S IPv4 connection, for example "127\&.0\&.0\&.1"\&. The default value is \fIundefined\fR\&. .RE +.sp +\fINote\fR about the next option: added in 20\&.12: .PP \fBoutgoing_s2s_ipv6_address\fR: \fIAddress\fR .RS 4 @@ -1542,6 +1550,8 @@ An SQL database name\&. For SQLite this must be a full path to a database file\& .RS 4 An interval to make a dummy SQL request to keep alive the connections to the database\&. There is no default value, so no keepalive requests are made\&. .RE +.sp +\fINote\fR about the next option: added in 20\&.12: .PP \fBsql_odbc_driver\fR: \fIPath\fR .RS 4 @@ -1574,6 +1584,8 @@ for PostgreSQL and \fI1433\fR for MS SQL\&. The option has no effect for SQLite\&. .RE +.sp +\fINote\fR about the next option: added in 20\&.01: .PP \fBsql_prepared_statements\fR: \fItrue | false\fR .RS 4 @@ -1605,10 +1617,12 @@ if the latter is not set\&. A hostname or an IP address of the SQL server\&. The default value is \fIlocalhost\fR\&. .RE +.sp +\fINote\fR about the next option: improved in 20\&.03: .PP \fBsql_ssl\fR: \fItrue | false\fR .RS 4 -Whether to use SSL encrypted connections to the SQL server\&. The option is only available for PostgreSQL\&. The default value is +Whether to use SSL encrypted connections to the SQL server\&. The option is only available for MySQL and PostgreSQL\&. The default value is \fIfalse\fR\&. .RE .PP @@ -1870,7 +1884,7 @@ ejabberdctl srg\-create g1 example\&.org "\*(AqGroup number 1\*(Aq" this_is_g1 g .RE .SS "mod_admin_update_sql" .sp -This module can be used to update existing SQL database from the default to the new schema\&. Check the section Default and New Schemas for details\&. When the module is loaded use \fIupdate_sql\fR ejabberdctl command\&. +This module can be used to update existing SQL database from the default to the new schema\&. Check the section Default and New Schemas for details\&. Please note that only PostgreSQL is supported\&. When the module is loaded use \fIupdate_sql\fR ejabberdctl command\&. .sp The module has no options\&. .SS "mod_announce" @@ -3749,12 +3763,16 @@ option is not specified, the only Jabber ID will be the hostname of the virtual \fI@HOST@\fR is replaced with the real virtual host name\&. .RE +.sp +\fINote\fR about the next option: added in 21\&.01: .PP \fBmax_captcha_whitelist\fR: \fINumber\fR .RS 4 This option defines the maximum number of characters that Captcha Whitelist can have when configuring the room\&. The default value is \fIinfinity\fR\&. .RE +.sp +\fINote\fR about the next option: added in 21\&.01: .PP \fBmax_password\fR: \fINumber\fR .RS 4 @@ -3840,10 +3858,11 @@ Same as top\-level option, but applied to this module only\&. .RE .PP -\fBram_db_type\fR: \fImnesia\fR +\fBram_db_type\fR: \fImnesia | sql\fR .RS 4 -Define the type of volatile (in\-memory) storage where the module will store room information\&. The only available value for this module is -\fImnesia\fR\&. +Define the type of volatile (in\-memory) storage where the module will store room information (\fImuc_online_room\fR +and +\fImuc_online_users\fR)\&. .RE .PP \fBregexp_room_id\fR: \fIstring()\fR @@ -5422,7 +5441,7 @@ This option specifies the period of time until the session of a disconnected pus \fImod_stream_mgmt\fR module is restored\&. The default value is \fI72\fR -minutes\&. +hours\&. .RE .PP \fBwake_on_start\fR: \fItrue | false\fR @@ -6556,7 +6575,7 @@ minutes\&. .RE .SS "mod_stun_disco" .sp -This module allows XMPP clients to discover STUN/TURN services and to obtain temporary credentials for using them as per XEP\-0215: External Service Discovery\&. +This module allows XMPP clients to discover STUN/TURN services and to obtain temporary credentials for using them as per XEP\-0215: External Service Discovery\&. This module is included in ejabberd since version 20\&.04\&. .sp .it 1 an-trap .nr an-no-space-flag 1 @@ -7170,13 +7189,13 @@ TODO ProcessOne\&. .SH "VERSION" .sp -This document describes the configuration file of ejabberd 21\&.01\&.81\&. Configuration options of other ejabberd versions may differ significantly\&. +This document describes the configuration file of ejabberd 21\&.04\&.131\&. Configuration options of other ejabberd versions may differ significantly\&. .SH "REPORTING BUGS" .sp Report bugs to https://github\&.com/processone/ejabberd/issues .SH "SEE ALSO" .sp -Default configuration file: https://github\&.com/processone/ejabberd/blob/21\&.01/ejabberd\&.yml\&.example +Default configuration file: https://github\&.com/processone/ejabberd/blob/21\&.07/ejabberd\&.yml\&.example .sp Main site: https://ejabberd\&.im .sp From 69fa79b1544f76c56f005b0acc9ae936e094d235 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 17:42:13 +0200 Subject: [PATCH 057/105] Add 21.07 changes to CHANGELOG --- CHANGELOG.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b83caab1e..f55ce7127 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,50 @@ +# Version 21.07 + +Compilation +- Add rebar3 3.15.2 binary +- Add support for mix to: `./configure --enable-rebar=mix` +- Add workaround so rebar2 can use Elixir 1.12.0 +- Improved `make rel` to work with rebar3 and mix +- Add `make dev` to build a development release with rebar3 or mix +- Hex: Add `sql/` and `vars.config` to Hex package files +- Hex: Update mix applications list to fix error `p1_utils is listed as both...` +- There are so many targets in Makefile... add `make help` +- Fix extauth.py failure in test suite with Python 3 +- Added experimental support for GitHub Codespaces +- Switch test service from TravisCI to GitHub Actions + +Commands: +- Display extended error message in ejabberdctl +- Remove SMP option from ejabberdctl.cfg, `-smp` was removed in OTP 21 +- `create_room`: After creating room, store in DB if it's persistent +- `help`: Major changes in its usage and output +- `srg_create`: Update to use `label` parameter instead of `name` + +Modules: +- ejabberd_listener: New `send_timeout` option +- mod_mix: Improvements to update to 0.14.1 +- mod_muc_room: Don't leak owner JIDs +- mod_multicast: Routing for more MUC packets +- mod_multicast: Correctly strip only other bcc addresses +- mod_mqtt: Allow shared roster group placeholder in mqtt topic +- mod_pubsub: Several fixes when using PubSub with RSM +- mod_push: Handle MUC/Sub events correctly +- mod_shared_roster: Delete cache after performing change to be sure that in cache will be up to date data +- mod_shared_roster: Improve database and caching +- mod_shared_roster: Reconfigure cache when options change +- mod_vcard: Fix invalid_encoding error when using extended plane characters in vcard +- mod_vcard: Update econf:vcard() to generate correct vcard_temp record +- WebAdmin: New simple pages to view mnesia tables information and content +- WebSocket: Fix typos + +SQL: +- MySQL Backend Patch for scram-sha512 +- SQLite: When exporting for SQLite, use its specific escape options +- SQLite: Minor fixes for new_sql_schema support +- mod_privacy: Cast as boolean when exporting privacy_list_data to PostgreSQL +- mod_mqtt: Add mqtt_pub table definition for MSSQL +- mod_shared_roster: Add missing indexes to `sr_group` tables in all SQL databases + # Version 21.04 API Commands: From cf72c5ee18bac064b9a81a0260a070a3fcd2059a Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 21 Jul 2021 20:38:31 +0200 Subject: [PATCH 058/105] Remove leading zeros in ejabberd version number to satisfy Elixir SemVer --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 1539e6d24..3202c489d 100644 --- a/mix.exs +++ b/mix.exs @@ -24,7 +24,7 @@ defmodule Ejabberd.MixProject do case config(:vsn) do :false -> "0.0.0" # ./configure wasn't run: vars.config not created '0.0' -> "0.0.0" # the full git repository wasn't downloaded - vsn -> String.replace(:erlang.list_to_binary(vsn), ".0", ".") + vsn -> String.replace(:erlang.list_to_binary(vsn), ~r/0+([0-9])/, "\\1") end end From c96de092feb2c750a7a1661381f1aeb462656cd4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Thu, 22 Jul 2021 15:47:35 +0200 Subject: [PATCH 059/105] Revert "Add workaround so rebar2 can use Elixir 1.12.0" This reverts commit 937e1c2e373e360fe47e455886d186492248f31f. --- Makefile.in | 14 +------------- lib/elixir.app.src | 11 ----------- lib/rebar.config | 21 --------------------- rebar.config | 2 +- 4 files changed, 2 insertions(+), 46 deletions(-) delete mode 100644 lib/elixir.app.src delete mode 100644 lib/rebar.config diff --git a/Makefile.in b/Makefile.in index ac8c0b453..c39195ac7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,7 +130,6 @@ ifeq "$(IS_REBAR)" "3" EBINDIR=$(DEPSDIR)/ejabberd/ebin REBARREL=$(REBAR) as prod tar REBARDEV=REBAR_PROFILE=dev $(REBAR) release - ELIXIR_WARNING="\033[32m===>\033[00m If you get \033[1;91mDependency failure: source for elixir...\033[00m, please run \033[4;37mmake\033[00m again" else SKIPDEPS=skip_deps=true LISTDEPS=-q list-deps @@ -143,23 +142,12 @@ else EBINDIR=ebin REBARREL=$(REBAR) generate REBARDEV= - ELIXIR_WARNING="\033[32m===>\033[00m If you get \033[1;91mERROR: Dependency dir .../elixir failed...\033[00m, please run \033[4;37mmake\033[00m again" endif endif all: deps src -deps: elixir-rebar $(DEPSDIR)/.got - -elixir-rebar: - @[ @elixir@ = true ] \ - && ( [ ! -d $(DEPSDIR)/elixir/ ] \ - && echo $(ELIXIR_WARNING) \ - || ( [ ! -f $(DEPSDIR)/elixir/rebar.config ] \ - && { mkdir $(DEPSDIR)/elixir/src ; \ - cp lib/elixir.app.src $(DEPSDIR)/elixir/src/ ; \ - cp lib/rebar.config $(DEPSDIR)/elixir/ ; } \ - || true ) ) || true +deps: $(DEPSDIR)/.got $(DEPSDIR)/.got: rm -rf $(DEPSDIR)/.got diff --git a/lib/elixir.app.src b/lib/elixir.app.src deleted file mode 100644 index b53cbdefc..000000000 --- a/lib/elixir.app.src +++ /dev/null @@ -1,11 +0,0 @@ -{application, elixir, -[{description, "elixir"}, - {vsn, "1.12.0"}, - {modules, [ - elixir - ]}, - {registered, [elixir_config, elixir_code_server]}, - {applications, [kernel,stdlib,compiler]}, - {mod, {elixir,[]}}, - {env, [{ansi_enabled, false}]} -]}. diff --git a/lib/rebar.config b/lib/rebar.config deleted file mode 100644 index 9154464fa..000000000 --- a/lib/rebar.config +++ /dev/null @@ -1,21 +0,0 @@ -%% Using Elixir as a Rebar dependency - -%% This configuration file only exists so Elixir can be used -%% as a Rebar dependency, the same happens for the file -%% src/elixir.app.src. - -%% In practice, Elixir is structured as OTP where many applications -%% are placed in the lib directory. Since this structure is not -%% supported by default by Rebar, after adding Elixir as a dependency -%% you need to explicitly add it to lib_dirs: -%% -%% {lib_dirs, [ -%% "deps/elixir/lib" -%% ]}. -%% - -%% Run "make" as the proper compilation step -{post_hooks, [{compile, "make compile"}]}. - -%% This prevents rebar_elixir_plugin from recompiling Elixir -{ex_opts, [{src_dirs, [".PHONY"]}]}. diff --git a/rebar.config b/rebar.config index ea81f72e4..798e6350b 100644 --- a/rebar.config +++ b/rebar.config @@ -24,7 +24,7 @@ {if_var_true, tools, {ejabberd_po, ".*", {git, "https://github.com/processone/ejabberd-po", {branch, "main"}}}}, {if_var_true, elixir, - {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.12.0"}}}}, + {elixir, ".*", {git, "https://github.com/elixir-lang/elixir", {tag, "v1.4.4"}}}}, {if_var_true, pam, {epam, ".*", {git, "https://github.com/processone/epam", {tag, "1.0.12"}}}}, {if_var_true, redis, From 6e4e5a019071db565cb2c4ac6089e8ef809142a0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Fri, 23 Jul 2021 10:14:45 +0200 Subject: [PATCH 060/105] Add missing fields from config inside mod_muc_admin:change_options --- src/mod_muc_admin.erl | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 88ae041f9..72a29a45b 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -1166,6 +1166,7 @@ change_option(Option, Value, Config) -> anonymous -> Config#config{anonymous = Value}; captcha_protected -> Config#config{captcha_protected = Value}; description -> Config#config{description = Value}; + lang -> Config#config{lang = Value}; logging -> Config#config{logging = Value}; mam -> Config#config{mam = Value}; max_users -> Config#config{max_users = Value}; @@ -1178,8 +1179,10 @@ change_option(Option, Value, Config) -> presence_broadcast -> Config#config{presence_broadcast = Value}; public -> Config#config{public = Value}; public_list -> Config#config{public_list = Value}; + pubsub -> Config#config{pubsub = Value}; title -> Config#config{title = Value}; vcard -> Config#config{vcard = Value}; + vcard_xupdate -> Config#config{vcard_xupdate = Value}; voice_request_min_interval -> Config#config{voice_request_min_interval = Value} end. From e3875482ba73e2ee4f99b7ccb52700db66b22413 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Mon, 26 Jul 2021 16:06:43 +0200 Subject: [PATCH 061/105] Remove stringprep override from mix.exs --- mix.exs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.exs b/mix.exs index 3202c489d..9801b58f4 100644 --- a/mix.exs +++ b/mix.exs @@ -119,7 +119,7 @@ defmodule Ejabberd.MixProject do {:p1_pgsql, "~> 1.1"}, {:p1_utils, "~> 1.0"}, {:pkix, "~> 1.0"}, - {:stringprep, ">= 1.0.26", override: true}, + {:stringprep, ">= 1.0.26"}, {:stun, "~> 1.0"}, {:xmpp, "~> 1.5"}, {:yconf, "~> 1.0"}] From 8e553decb0f0532772b3f0421fbba52be054ea38 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 26 Jul 2021 16:36:21 +0200 Subject: [PATCH 062/105] When vsn is an exact tag, append .0 to satisfy SemVer --- mix.exs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mix.exs b/mix.exs index 9801b58f4..c33710b45 100644 --- a/mix.exs +++ b/mix.exs @@ -24,6 +24,9 @@ defmodule Ejabberd.MixProject do case config(:vsn) do :false -> "0.0.0" # ./configure wasn't run: vars.config not created '0.0' -> "0.0.0" # the full git repository wasn't downloaded + [_, _, ?., _, _] = x -> + head = String.replace(:erlang.list_to_binary(x), ~r/0+([0-9])/, "\\1") + <> vsn -> String.replace(:erlang.list_to_binary(vsn), ~r/0+([0-9])/, "\\1") end end From 103e98b8da5abd7713c3ef8e9e54b004c4935a09 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 28 Jul 2021 18:22:39 +0200 Subject: [PATCH 063/105] mod_push: Fix handling of MUC/Sub messages Don't fail to include the sender/body of MUC/Sub messages if the recipient is offline. Closes #3651. --- src/mod_push.erl | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/mod_push.erl b/src/mod_push.erl index 14ee02910..b4dd48234 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -405,7 +405,7 @@ c2s_stanza(State, #stream_error{}, _SendResult) -> c2s_stanza(#{push_enabled := true, mgmt_state := pending} = State, Pkt, _SendResult) -> ?DEBUG("Notifying client of stanza", []), - notify(State, unwrap_message(Pkt), get_direction(Pkt)), + notify(State, Pkt, get_direction(Pkt)), State; c2s_stanza(State, _Pkt, _SendResult) -> State. @@ -454,7 +454,7 @@ c2s_session_pending(#{push_enabled := true, mgmt_queue := Queue} = State) -> {Pkt, Dir} = case mod_stream_mgmt:queue_find( fun is_incoming_chat_msg/1, Queue) of none -> {none, undefined}; - Pkt0 -> {unwrap_message(Pkt0), get_direction(Pkt0)} + Pkt0 -> {Pkt0, get_direction(Pkt0)} end, notify(State, Pkt, Dir), State; @@ -536,7 +536,8 @@ notify(LUser, LServer, Clients, Pkt, Dir) -> -spec notify(binary(), ljid(), binary(), xdata(), xmpp_element() | xmlel() | none, direction(), fun((iq() | timeout) -> any())) -> ok. -notify(LServer, PushLJID, Node, XData, Pkt, Dir, HandleResponse) -> +notify(LServer, PushLJID, Node, XData, Pkt0, Dir, HandleResponse) -> + Pkt = unwrap_message(Pkt0), From = jid:make(LServer), Summary = make_summary(LServer, Pkt, Dir), Item = #ps_item{sub_els = [#push_notification{xdata = Summary}]}, @@ -714,7 +715,7 @@ make_summary(Host, #message{from = From} = Pkt, recv) -> make_summary(_Host, _Pkt, _Dir) -> undefined. --spec unwrap_message(stanza()) -> stanza(). +-spec unwrap_message(Stanza) -> Stanza when Stanza :: stanza() | none. unwrap_message(#message{meta = #{carbon_copy := true}} = Msg) -> misc:unwrap_carbon(Msg); unwrap_message(#message{type = normal} = Msg) -> From 2050cdffb457c4adbf5070de2ea84c59b2dc61a3 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 28 Jul 2021 18:53:15 +0200 Subject: [PATCH 064/105] PubSub: Use configured 'max_items' by default If clients don't ask for a specific 'max_items' limit, use the value of mod_pubsub's 'max_items_node' option as default, rather than the hard-coded ?MAXITEMS value. This makes sure clients cannot circumvent a smaller, configured limit. --- src/mod_pubsub.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index fecb35341..b0dca4b0d 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -3406,7 +3406,7 @@ max_items(Host, Options) -> case get_option(Options, max_items) of I when is_integer(I), I < 0 -> 0; I when is_integer(I) -> I; - _ -> ?MAXITEMS + _ -> get_max_items_node(Host) end; false -> case get_option(Options, send_last_published_item) of From ccb4328d06bd39a10c2ecc109a6647cf1eafdaa9 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 29 Jul 2021 23:13:17 +0200 Subject: [PATCH 065/105] Store who defines a command, specially when defined by ejabberd modules --- include/ejabberd_commands.hrl | 1 + src/ejabberd_commands.erl | 6 +++++- src/mod_admin_extra.erl | 2 +- src/mod_admin_update_sql.erl | 2 +- src/mod_fail2ban.erl | 2 +- src/mod_mam.erl | 2 +- src/mod_muc_admin.erl | 2 +- src/mod_private.erl | 2 +- src/mod_push.erl | 2 +- 9 files changed, 13 insertions(+), 8 deletions(-) diff --git a/include/ejabberd_commands.hrl b/include/ejabberd_commands.hrl index bfef47080..d0f5ba70a 100644 --- a/include/ejabberd_commands.hrl +++ b/include/ejabberd_commands.hrl @@ -59,6 +59,7 @@ policy = restricted :: open | restricted | admin | user, %% access is: [accessRuleName] or [{Module, AccessOption, DefaultAccessRuleName}] access = [] :: [{atom(),atom(),atom()}|atom()], + definer = unknown :: atom(), result = {res, rescode} :: rterm() | '_' | '$2', args_rename = [] :: [{atom(),atom()}], args_desc = none :: none | [string()] | '_', diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl index 0f86f23d3..8d875e82f 100644 --- a/src/ejabberd_commands.erl +++ b/src/ejabberd_commands.erl @@ -41,6 +41,7 @@ get_tags_commands/0, get_tags_commands/1, register_commands/1, + register_commands/2, unregister_commands/1, get_commands_spec/0, get_commands_definition/0, @@ -129,10 +130,13 @@ code_change(_OldVsn, State, _Extra) -> -spec register_commands([ejabberd_commands()]) -> ok. register_commands(Commands) -> + register_commands(unknown, Commands). + +register_commands(Definer, Commands) -> lists:foreach( fun(Command) -> %% XXX check if command exists - mnesia:dirty_write(Command) + mnesia:dirty_write(Command#ejabberd_commands{definer = Definer}) %% ?DEBUG("This command is already defined:~n~p", [Command]) end, Commands), diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index 04cb39cfb..fe0dd2757 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -92,7 +92,7 @@ %%% start(_Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(Host) -> case gen_mod:is_loaded_elsewhere(Host, ?MODULE) of diff --git a/src/mod_admin_update_sql.erl b/src/mod_admin_update_sql.erl index 0215a5172..eae481385 100644 --- a/src/mod_admin_update_sql.erl +++ b/src/mod_admin_update_sql.erl @@ -46,7 +46,7 @@ %%% start(_Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(_Host) -> ejabberd_commands:unregister_commands(get_commands_spec()). diff --git a/src/mod_fail2ban.erl b/src/mod_fail2ban.erl index 99ff3d127..8751653d8 100644 --- a/src/mod_fail2ban.erl +++ b/src/mod_fail2ban.erl @@ -107,7 +107,7 @@ c2s_stream_started(#{ip := {Addr, _}} = State, _) -> start(Host, Opts) -> catch ets:new(failed_auth, [named_table, public, {heir, erlang:group_leader(), none}]), - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), gen_mod:start_child(?MODULE, Host, Opts). stop(Host) -> diff --git a/src/mod_mam.erl b/src/mod_mam.erl index 12542bfa5..e894f5f7d 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -148,7 +148,7 @@ start(Host, Opts) -> ejabberd_hooks:add(check_create_room, Host, ?MODULE, check_create_room, 50) end, - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), ok; Err -> Err diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 72a29a45b..360d414b1 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -57,7 +57,7 @@ %%---------------------------- start(Host, _Opts) -> - ejabberd_commands:register_commands(get_commands_spec()), + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), ejabberd_hooks:add(webadmin_menu_main, ?MODULE, web_menu_main, 50), ejabberd_hooks:add(webadmin_menu_host, Host, ?MODULE, web_menu_host, 50), ejabberd_hooks:add(webadmin_page_main, ?MODULE, web_page_main, 50), diff --git a/src/mod_private.erl b/src/mod_private.erl index ad36c8494..36f1e8d2c 100644 --- a/src/mod_private.erl +++ b/src/mod_private.erl @@ -66,7 +66,7 @@ start(Host, Opts) -> ejabberd_hooks:add(disco_sm_features, Host, ?MODULE, get_sm_features, 50), ejabberd_hooks:add(pubsub_publish_item, Host, ?MODULE, pubsub_publish_item, 50), gen_iq_handler:add_iq_handler(ejabberd_sm, Host, ?NS_PRIVATE, ?MODULE, process_sm_iq), - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). stop(Host) -> ejabberd_hooks:delete(remove_user, Host, ?MODULE, remove_user, 50), diff --git a/src/mod_push.erl b/src/mod_push.erl index b4dd48234..ea1c3e649 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -98,7 +98,7 @@ start(Host, Opts) -> init_cache(Mod, Host, Opts), register_iq_handlers(Host), register_hooks(Host), - ejabberd_commands:register_commands(get_commands_spec()). + ejabberd_commands:register_commands(?MODULE, get_commands_spec()). -spec stop(binary()) -> ok. stop(Host) -> From 41808a63a0c7ccd5deb3498c4946f88f1ddd1960 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 29 Jul 2021 23:13:53 +0200 Subject: [PATCH 066/105] Show definer module in "ejabberdctl help" when it's a gen_mod --- src/ejabberd_ctl.erl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_ctl.erl b/src/ejabberd_ctl.erl index ce642727f..04e383d53 100644 --- a/src/ejabberd_ctl.erl +++ b/src/ejabberd_ctl.erl @@ -827,6 +827,7 @@ print_usage_command(Cmd, MaxC, ShCode, Version) -> print_usage_command2(Cmd, C, MaxC, ShCode) -> #ejabberd_commands{ tags = TagsAtoms, + definer = Definer, desc = Desc, args = ArgsDef, longdesc = LongDesc, @@ -851,6 +852,15 @@ print_usage_command2(Cmd, C, MaxC, ShCode) -> TagsFmt = [" ",?B("Tags"),":", prepare_long_line(8, MaxC, [?G(atom_to_list(TagA)) || TagA <- TagsAtoms])], + IsDefinerMod = case Definer of + unknown -> true; + _ -> lists:member(gen_mod, proplists:get_value(behaviour, Definer:module_info(attributes))) + end, + ModuleFmt = case IsDefinerMod of + true -> [" ",?B("Module"),": ", atom_to_list(Definer), "\n\n"]; + false -> [] + end, + DescFmt = [" ",?B("Description"),":", prepare_description(15, MaxC, Desc)], LongDescFmt = case LongDesc of @@ -866,7 +876,7 @@ print_usage_command2(Cmd, C, MaxC, ShCode) -> case Cmd of "help" -> ok; _ -> print([NameFmt, "\n", ArgsFmt, "\n", ReturnsFmt, - "\n\n", XmlrpcFmt, TagsFmt, "\n\n", DescFmt, "\n\n"], []) + "\n\n", XmlrpcFmt, TagsFmt, "\n\n", ModuleFmt, DescFmt, "\n\n"], []) end, print([LongDescFmt, NoteEjabberdctl], []). From b22779f0185924de8bed2773ca2144389b1337ba Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 29 Jul 2021 23:14:34 +0200 Subject: [PATCH 067/105] Show tags and definer module in generated API document when it's a gen_mod --- src/ejabberd_commands_doc.erl | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/ejabberd_commands_doc.erl b/src/ejabberd_commands_doc.erl index 4981577b6..582908723 100644 --- a/src/ejabberd_commands_doc.erl +++ b/src/ejabberd_commands_doc.erl @@ -360,8 +360,8 @@ gen_param(Name, Type, Desc, HTMLOutput) -> [?TAG(dt, [?TAG_R(strong, atom_to_list(Name)), <<" :: ">>, ?RAW(format_type(Type))]), ?TAG(dd, ?RAW(Desc))]. -gen_doc(#ejabberd_commands{name=Name, tags=_Tags, desc=Desc, longdesc=LongDesc, - args=Args, args_desc=ArgsDesc, note=Note, +gen_doc(#ejabberd_commands{name=Name, tags=Tags, desc=Desc, longdesc=LongDesc, + args=Args, args_desc=ArgsDesc, note=Note, definer=Definer, result=Result, result_desc=ResultDesc}=Cmd, HTMLOutput, Langs) -> try ArgsText = case ArgsDesc of @@ -389,6 +389,17 @@ gen_doc(#ejabberd_commands{name=Name, tags=_Tags, desc=Desc, longdesc=LongDesc, [?TAG(dl, [gen_param(RName, Type, ResultDesc, HTMLOutput)])] end end, + TagsText = [?RAW(atom_to_list(Tag) ++ " ") || Tag <- Tags], + IsDefinerMod = case Definer of + unknown -> true; + _ -> lists:member(gen_mod, proplists:get_value(behaviour, Definer:module_info(attributes))) + end, + ModuleText = case IsDefinerMod of + true -> + [?TAG(h2, <<"Module:">>), ?TAG(p, ?RAW(atom_to_list(Definer)))]; + false -> + [] + end, NoteEl = case Note of "" -> []; _ -> ?TAG('div', "note-down", ?RAW(Note)) @@ -403,6 +414,8 @@ gen_doc(#ejabberd_commands{name=Name, tags=_Tags, desc=Desc, longdesc=LongDesc, end, ?TAG(h2, <<"Arguments:">>), ArgsText, ?TAG(h2, <<"Result:">>), ResultText, + ?TAG(h2, <<"Tags:">>), ?TAG(p, TagsText)] + ++ ModuleText ++ [ ?TAG(h2, <<"Examples:">>), gen_calls(Cmd, HTMLOutput, Langs)] catch _:Ex -> @@ -421,12 +434,13 @@ find_commands_definitions() -> lists:flatmap(fun(P) -> Mod = list_to_atom(filename:rootname(P)), code:ensure_loaded(Mod), - case erlang:function_exported(Mod, get_commands_spec, 0) of + Cs = case erlang:function_exported(Mod, get_commands_spec, 0) of true -> apply(Mod, get_commands_spec, []); _ -> [] - end + end, + [C#ejabberd_commands{definer = Mod} || C <- Cs] end, filelib:wildcard("*.beam", Path)) end. From ab5e726176d7165a07faf896d8839892c03ad392 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 30 Jul 2021 00:58:08 +0200 Subject: [PATCH 068/105] Use the most specific tag for ejabberd commands with several ones --- src/ejabberd_admin.erl | 12 ++++++------ src/ext_mod.erl | 14 +++++++------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index 2eeb97b99..23becc7f2 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -119,12 +119,12 @@ get_commands_spec() -> desc = "Restart ejabberd gracefully", module = init, function = restart, args = [], result = {res, rescode}}, - #ejabberd_commands{name = reopen_log, tags = [logs, server], + #ejabberd_commands{name = reopen_log, tags = [logs], desc = "Reopen the log files", policy = admin, module = ?MODULE, function = reopen_log, args = [], result = {res, rescode}}, - #ejabberd_commands{name = rotate_log, tags = [logs, server], + #ejabberd_commands{name = rotate_log, tags = [logs], desc = "Rotate the log files", module = ?MODULE, function = rotate_log, args = [], result = {res, rescode}}, @@ -139,14 +139,14 @@ get_commands_spec() -> args_example = [60, <<"Server will stop now.">>], args = [{delay, integer}, {announcement, string}], result = {res, rescode}}, - #ejabberd_commands{name = get_loglevel, tags = [logs, server], + #ejabberd_commands{name = get_loglevel, tags = [logs], desc = "Get the current loglevel", module = ejabberd_logger, function = get, result_desc = "Tuple with the log level number, its keyword and description", result_example = warning, args = [], result = {levelatom, atom}}, - #ejabberd_commands{name = set_loglevel, tags = [logs, server], + #ejabberd_commands{name = set_loglevel, tags = [logs], desc = "Set the loglevel", module = ?MODULE, function = set_loglevel, args_desc = ["Desired logging level: none | emergency | alert | critical " @@ -200,7 +200,7 @@ get_commands_spec() -> result_example = [<<"example.com">>, <<"anon.example.com">>], args = [], result = {vhosts, {list, {vhost, string}}}}, - #ejabberd_commands{name = reload_config, tags = [server, config], + #ejabberd_commands{name = reload_config, tags = [config], desc = "Reload config file in memory", module = ?MODULE, function = reload_config, args = [], @@ -268,7 +268,7 @@ get_commands_spec() -> args_example = ["/var/lib/ejabberd/", "example.com"], args = [{dir, string}, {host, string}], result = {res, rescode}}, - #ejabberd_commands{name = delete_mnesia, tags = [mnesia, sql], + #ejabberd_commands{name = delete_mnesia, tags = [mnesia], desc = "Delete elements in Mnesia database for a given vhost", module = ejd2sql, function = delete, args_desc = ["Vhost which content will be deleted in Mnesia database"], diff --git a/src/ext_mod.erl b/src/ext_mod.erl index 5353019bb..b3e88a9cb 100644 --- a/src/ext_mod.erl +++ b/src/ext_mod.erl @@ -84,14 +84,14 @@ code_change(_OldVsn, State, _Extra) -> %% -- ejabberd commands get_commands_spec() -> [#ejabberd_commands{name = modules_update_specs, - tags = [admin,modules], + tags = [modules], desc = "Update the module source code from Git", longdesc = "A connection to Internet is required", module = ?MODULE, function = update, args = [], result = {res, rescode}}, #ejabberd_commands{name = modules_available, - tags = [admin,modules], + tags = [modules], desc = "List the contributed modules available to install", module = ?MODULE, function = available_command, result_desc = "List of tuples with module name and description", @@ -103,7 +103,7 @@ get_commands_spec() -> [{name, atom}, {summary, string}]}}}}}, #ejabberd_commands{name = modules_installed, - tags = [admin,modules], + tags = [modules], desc = "List the contributed modules already installed", module = ?MODULE, function = installed_command, result_desc = "List of tuples with module name and description", @@ -115,7 +115,7 @@ get_commands_spec() -> [{name, atom}, {summary, string}]}}}}}, #ejabberd_commands{name = module_install, - tags = [admin,modules], + tags = [modules], desc = "Compile, install and start an available contributed module", module = ?MODULE, function = install, args_desc = ["Module name"], @@ -123,7 +123,7 @@ get_commands_spec() -> args = [{module, binary}], result = {res, rescode}}, #ejabberd_commands{name = module_uninstall, - tags = [admin,modules], + tags = [modules], desc = "Uninstall a contributed module", module = ?MODULE, function = uninstall, args_desc = ["Module name"], @@ -131,7 +131,7 @@ get_commands_spec() -> args = [{module, binary}], result = {res, rescode}}, #ejabberd_commands{name = module_upgrade, - tags = [admin,modules], + tags = [modules], desc = "Upgrade the running code of an installed module", longdesc = "In practice, this uninstalls and installs the module", module = ?MODULE, function = upgrade, @@ -140,7 +140,7 @@ get_commands_spec() -> args = [{module, binary}], result = {res, rescode}}, #ejabberd_commands{name = module_check, - tags = [admin,modules], + tags = [modules], desc = "Check the contributed module repository compliance", module = ?MODULE, function = check, args_desc = ["Module name"], From 76c49f314f3c8422ed3f60dc5b5f8ce14340b4cb Mon Sep 17 00:00:00 2001 From: pitchum Date: Sun, 1 Aug 2021 09:53:07 +0200 Subject: [PATCH 069/105] Add missing SQL migration for table push_session --- sql/pg.new.sql | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/sql/pg.new.sql b/sql/pg.new.sql index 8a35ec6c9..b3473a1a0 100644 --- a/sql/pg.new.sql +++ b/sql/pg.new.sql @@ -156,6 +156,12 @@ -- CREATE INDEX i_sm_sh_username ON sm USING btree (server_host, username); -- ALTER TABLE sm ALTER COLUMN server_host DROP DEFAULT; +-- ALTER TABLE push_session ADD COLUMN server_host text NOT NULL DEFAULT ''; +-- DROP INDEX i_push_usn; +-- DROP INDEX i_push_ut; +-- ALTER TABLE push_session ADD PRIMARY KEY (server_host, username, timestamp); +-- CREATE UNIQUE INDEX i_push_session_susn ON push_session USING btree (server_host, username, service, node); + CREATE TABLE users ( username text NOT NULL, From 99ffd9bb9564768d90a20d5c8920b6abf8b7c190 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 2 Aug 2021 21:09:55 +0200 Subject: [PATCH 070/105] mod_pubsub: Fix check_opt_range/3 spec --- src/mod_pubsub.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index b0dca4b0d..d49a11817 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -3548,7 +3548,8 @@ decode_get_pending(#xdata{fields = Fs}, Lang) -> {error, xmpp:err_resource_constraint(Txt, Lang)} end. --spec check_opt_range(atom(), [proplists:property()], non_neg_integer()) -> boolean(). +-spec check_opt_range(atom(), [proplists:property()], + non_neg_integer() | undefined) -> boolean(). check_opt_range(_Opt, _Opts, undefined) -> true; check_opt_range(Opt, Opts, Max) -> From d7e330c8eff3bb40a301705bfab7a9510b2c6fc5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 4 Aug 2021 15:30:29 +0200 Subject: [PATCH 071/105] Allow storing non-composing x:events in offline --- src/mod_offline.erl | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/mod_offline.erl b/src/mod_offline.erl index c3fda25db..ff95767b6 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -572,6 +572,16 @@ check_event(#message{from = From, to = To, id = ID, type = Type} = Msg) -> sub_els = [#xevent{id = ID, offline = true}]}, ejabberd_router:route(NewMsg), true; + % Don't store composing events + #xevent{id = V, composing = true} when V /= undefined -> + false; + % Nor composing stopped events + #xevent{id = V, composing = false, delivered = false, + displayed = false, offline = false} when V /= undefined -> + false; + % But store other received notifications + #xevent{id = V} when V /= undefined -> + true; _ -> false end. From 4c61ea9091a5d0bca3c2e35fb68c99de3c21324d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pawe=C5=82=20Chmielowski?= Date: Wed, 4 Aug 2021 17:45:31 +0200 Subject: [PATCH 072/105] Update tests after last commit --- test/offline_tests.erl | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/test/offline_tests.erl b/test/offline_tests.erl index 1021c86e8..b5a90e7ee 100644 --- a/test/offline_tests.erl +++ b/test/offline_tests.erl @@ -489,6 +489,14 @@ wait_for_complete(Config, N) -> end end, error, [0, 100, 200, 2000, 5000, 10000]). +xevent_stored(#message{body = [], subject = []}, _) -> false; +xevent_stored(#message{type = T}, _) when T /= chat, T /= normal -> false; +xevent_stored(_, #xevent{id = undefined}) -> true; +xevent_stored(_, #xevent{offline = true}) -> true; +xevent_stored(_, #xevent{delivered = true}) -> true; +xevent_stored(_, #xevent{displayed = true}) -> true; +xevent_stored(_, _) -> false. + message_iterator(Config) -> ServerJID = server_jid(Config), ChatStates = [[#chatstate{type = composing}]], @@ -511,8 +519,14 @@ message_iterator(Config) -> fun(#message{type = error}) -> true; (#message{type = groupchat}) -> false; (#message{sub_els = [#hint{type = store}|_]}) when MamEnabled -> true; + (#message{sub_els = [#hint{type = 'no-store'}|_]}) -> false; (#message{sub_els = [#offline{}|_]}) when not MamEnabled -> false; - (#message{sub_els = [_, #xevent{id = I}]}) when I /= undefined, not MamEnabled -> false; + (#message{sub_els = [#hint{type = store}, #xevent{} = Event | _]} = Msg) when not MamEnabled -> + xevent_stored(Msg#message{body = body, type = chat}, Event); + (#message{sub_els = [#xevent{} = Event]} = Msg) when not MamEnabled -> + xevent_stored(Msg, Event); + (#message{sub_els = [_, #xevent{} = Event | _]} = Msg) when not MamEnabled -> + xevent_stored(Msg, Event); (#message{sub_els = [#xevent{id = I}]}) when I /= undefined, not MamEnabled -> false; (#message{sub_els = [#hint{type = store}|_]}) -> true; (#message{sub_els = [#hint{type = 'no-store'}|_]}) -> false; From aefc374317860aa1e7fd1ed305cbf71b3ce132a8 Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 5 Aug 2021 13:52:38 +0200 Subject: [PATCH 073/105] Fix typo when creating index (thanks to Millesimus) Reference: https://github.com/processone/ejabberd/commit/95fa43aa96514b7e8b77fa7c29d2c0b5b1c1331a#r54157330 --- sql/mysql.new.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sql/mysql.new.sql b/sql/mysql.new.sql index c6d74bb91..01aeffbc5 100644 --- a/sql/mysql.new.sql +++ b/sql/mysql.new.sql @@ -86,7 +86,7 @@ CREATE TABLE sr_user ( PRIMARY KEY (server_host(191), jid, grp) ) ENGINE=InnoDB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; -CREATE UNIQUE INDEX i_sr_user_sh_jid_group ON sr_group(server_host(191), jid, grp); +CREATE UNIQUE INDEX i_sr_user_sh_jid_group ON sr_user(server_host(191), jid, grp); CREATE INDEX i_sr_user_sh_jid ON sr_user(server_host(191), jid); CREATE INDEX i_sr_user_sh_grp ON sr_user(server_host(191), grp); From 5b0a28bbc9dc842ec2cc4270f4593e69c3ab0bbe Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 23 Jul 2021 11:21:21 +0200 Subject: [PATCH 074/105] Fix CHANGELOG: rebar2's elixir workaround was problematic and was reverted Problems: - That workaround required running "make" twice - CEAN (used to build installers) doesn't support that make && make - Support for Elixir in rebar3 doesn't yet exist - Preferable path for Elixir usage: install Elixir and use --with-rebar=mix --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f55ce7127..13385b864 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,6 @@ Compilation - Add rebar3 3.15.2 binary - Add support for mix to: `./configure --enable-rebar=mix` -- Add workaround so rebar2 can use Elixir 1.12.0 - Improved `make rel` to work with rebar3 and mix - Add `make dev` to build a development release with rebar3 or mix - Hex: Add `sql/` and `vars.config` to Hex package files From fdfd202a30b740ab30c014c2d459cf1c0539f1fa Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 3 Aug 2021 17:54:49 +0200 Subject: [PATCH 075/105] Determine the default handlerid at runtime Apparently Elixir's default is not called 'default' --- src/ejabberd_logger.erl | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_logger.erl b/src/ejabberd_logger.erl index 5ace8115f..05e197b3e 100644 --- a/src/ejabberd_logger.erl +++ b/src/ejabberd_logger.erl @@ -288,10 +288,11 @@ start(Level) -> ConsoleFmtConfig = FmtConfig#{template => console_template()}, try ok = logger:set_primary_config(level, Level), - ok = logger:update_formatter_config(default, ConsoleFmtConfig), + DefaultHandlerId = get_default_handlerid(), + ok = logger:update_formatter_config(DefaultHandlerId, ConsoleFmtConfig), case quiet_mode() of true -> - ok = logger:set_handler_config(default, level, critical); + ok = logger:set_handler_config(DefaultHandlerId, level, critical); _ -> ok end, @@ -319,6 +320,13 @@ start(Level) -> Err end. +get_default_handlerid() -> + Ids = logger:get_handler_ids(), + case lists:member(default, Ids) of + true -> default; + false -> hd(Ids) + end. + -spec restart() -> ok. restart() -> ok. From 3e942bf4acac02eccba837b0f1e9ce4f6f69aff4 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sat, 7 Aug 2021 12:57:57 +0200 Subject: [PATCH 076/105] mod_mam_sql: Remove duplicated functions --- src/mod_mam_sql.erl | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/src/mod_mam_sql.erl b/src/mod_mam_sql.erl index e5069b9a2..269b4c963 100644 --- a/src/mod_mam_sql.erl +++ b/src/mod_mam_sql.erl @@ -72,7 +72,7 @@ remove_from_archive(LUser, LServer, WithJid) -> end. delete_old_messages(ServerHost, TimeStamp, Type) -> - TS = now_to_usec(TimeStamp), + TS = misc:now_to_usec(TimeStamp), case Type of all -> ejabberd_sql:sql_query( @@ -315,7 +315,7 @@ export(_Server) -> id = _ID, timestamp = TS, peer = Peer, type = Type, nick = Nick, packet = Pkt}) when LServer == Host -> - TStmp = now_to_usec(TS), + TStmp = misc:now_to_usec(TS), SUser = case Type of chat -> LUser; groupchat -> jid:encode({LUser, LServer, <<>>}) @@ -372,16 +372,6 @@ is_empty_for_room(LServer, LName, LHost) -> %%%=================================================================== %%% Internal functions %%%=================================================================== -now_to_usec({MSec, Sec, USec}) -> - (MSec*1000000 + Sec)*1000000 + USec. - -usec_to_now(Int) -> - Secs = Int div 1000000, - USec = Int rem 1000000, - MSec = Secs div 1000000, - Sec = Secs rem 1000000, - {MSec, Sec, USec}. - make_sql_query(User, LServer, MAMQuery, RSM, ExtraUsernames) -> Start = proplists:get_value(start, MAMQuery), End = proplists:get_value('end', MAMQuery), @@ -432,14 +422,14 @@ make_sql_query(User, LServer, MAMQuery, RSM, ExtraUsernames) -> StartClause = case Start of {_, _, _} -> [<<" and timestamp >= ">>, - integer_to_binary(now_to_usec(Start))]; + integer_to_binary(misc:now_to_usec(Start))]; _ -> [] end, EndClause = case End of {_, _, _} -> [<<" and timestamp <= ">>, - integer_to_binary(now_to_usec(End))]; + integer_to_binary(misc:now_to_usec(End))]; _ -> [] end, @@ -526,7 +516,7 @@ make_archive_el(User, TS, XML, Peer, Kind, Nick, MsgType, JidRequestor, JidArchi TSInt -> try jid:decode(Peer) of PeerJID -> - Now = usec_to_now(TSInt), + Now = misc:usec_to_now(TSInt), PeerLJID = jid:tolower(PeerJID), T = case Kind of <<"">> -> chat; From 14bf197be1effaa9fd6e9272aba2398288333431 Mon Sep 17 00:00:00 2001 From: ballerburg9005 <50874674+ballerburg9005@users.noreply.github.com> Date: Thu, 12 Aug 2021 15:14:31 +0200 Subject: [PATCH 077/105] "sort -R" command not POSIX, added "shuf" and "cat" as fallback --- tools/captcha-ng.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tools/captcha-ng.sh b/tools/captcha-ng.sh index cbcb95407..bb57385c4 100755 --- a/tools/captcha-ng.sh +++ b/tools/captcha-ng.sh @@ -42,7 +42,8 @@ INTRUDER() { NUMBERS=$(echo "$INPUT" | grep -o . | tr '\n' ' ') SORTED_UNIQ_NUM=$(echo "${NUMBERS[@]}" | sort -u | tr '\n' ' ') -RANDOM_DIGITS=$(echo 123456789 | grep -o . | sort -R | tr '\n' ' ') +SORT_RANDOM_CMD="$( ( echo x|sort -R >&/dev/null && echo "sort -R" ) || ( echo x|shuf >&/dev/null && echo shuf ) || echo cat)" +RANDOM_DIGITS=$(echo 123456789 | grep -o . | eval "$SORT_RANDOM_CMD" | tr '\n' ' ') INTRUDER=-1 for i in $RANDOM_DIGITS From 8f8de0403bab0a819420db69bb44bdb2a474d137 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Fri, 20 Aug 2021 20:30:11 +0200 Subject: [PATCH 078/105] PubSub: Support 'max_items=max' node configuration Let clients request the maximum limit for the node configuration option 'max_items' by specifying the special value 'max' instead of an integer. This was added to XEP-0060, revision 1.17.0 (and clarified in revision 1.20.0). Thanks to Ammonit Measurement GmbH for sponsoring this work. --- mix.exs | 2 +- rebar.config | 2 +- src/mod_pubsub.erl | 7 +++++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/mix.exs b/mix.exs index c33710b45..0b5d40b09 100644 --- a/mix.exs +++ b/mix.exs @@ -124,7 +124,7 @@ defmodule Ejabberd.MixProject do {:pkix, "~> 1.0"}, {:stringprep, ">= 1.0.26"}, {:stun, "~> 1.0"}, - {:xmpp, "~> 1.5"}, + {:xmpp, git: "https://github.com/processone/xmpp", ref: "e943c0285aa85e3cbd4bfb9259f6b7de32b00395", override: true}, {:yconf, "~> 1.0"}] ++ cond_deps() end diff --git a/rebar.config b/rebar.config index 798e6350b..a70ccfba3 100644 --- a/rebar.config +++ b/rebar.config @@ -59,7 +59,7 @@ {stringprep, ".*", {git, "https://github.com/processone/stringprep", {tag, "1.0.27"}}}, {if_var_true, stun, {stun, ".*", {git, "https://github.com/processone/stun", {tag, "1.0.44"}}}}, - {xmpp, ".*", {git, "https://github.com/processone/xmpp", {tag, "1.5.4"}}}, + {xmpp, ".*", {git, "https://github.com/processone/xmpp", "e943c0285aa85e3cbd4bfb9259f6b7de32b00395"}}, {yconf, ".*", {git, "https://github.com/processone/yconf", {tag, "1.0.12"}}} ]}. diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index d49a11817..49a54c9b4 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -3553,8 +3553,10 @@ decode_get_pending(#xdata{fields = Fs}, Lang) -> check_opt_range(_Opt, _Opts, undefined) -> true; check_opt_range(Opt, Opts, Max) -> - Val = proplists:get_value(Opt, Opts, Max), - Val =< Max. + case proplists:get_value(Opt, Opts, Max) of + max -> true; + Val -> Val =< Max + end. -spec get_max_items_node(host()) -> undefined | non_neg_integer(). get_max_items_node(Host) -> @@ -3708,6 +3710,7 @@ features() -> <<"access-whitelist">>, % OPTIONAL <<"collections">>, % RECOMMENDED <<"config-node">>, % RECOMMENDED + <<"config-node-max">>, <<"create-and-configure">>, % RECOMMENDED <<"item-ids">>, % RECOMMENDED <<"last-published">>, % RECOMMENDED From 1b0e59bb139f83d1f027ece08606446c30d35ae5 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sat, 21 Aug 2021 12:29:37 +0200 Subject: [PATCH 079/105] PubSub: Support unlimited number of items Allow for setting the mod_pubsub option 'max_items_node' to 'unlimited'. If clients then request a 'max_items' limit of 'max', old items aren't deleted when publishing new ones. Thanks to Ammonit Measurement GmbH for sponsoring this work. --- src/mod_pubsub.erl | 14 ++++++++------ src/node_flat.erl | 3 ++- src/node_flat_sql.erl | 3 ++- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index 49a54c9b4..c6f485077 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -210,7 +210,7 @@ pep_mapping :: [{binary(), binary()}], ignore_pep_from_offline :: boolean(), last_item_cache :: boolean(), - max_items_node :: non_neg_integer(), + max_items_node :: non_neg_integer()|unlimited, max_subscriptions_node :: non_neg_integer()|undefined, default_node_config :: [{atom(), binary()|boolean()|integer()|atom()}], nodetree :: binary(), @@ -3399,7 +3399,7 @@ node_config(_, _, []) -> %% @doc

Return the maximum number of items for a given node.

%%

Unlimited means that there is no limit in the number of items that can %% be stored.

--spec max_items(host(), [{atom(), any()}]) -> non_neg_integer(). +-spec max_items(host(), [{atom(), any()}]) -> non_neg_integer() | unlimited. max_items(Host, Options) -> case get_option(Options, persist_items) of true -> @@ -3549,16 +3549,18 @@ decode_get_pending(#xdata{fields = Fs}, Lang) -> end. -spec check_opt_range(atom(), [proplists:property()], - non_neg_integer() | undefined) -> boolean(). + non_neg_integer() | unlimited | undefined) -> boolean(). check_opt_range(_Opt, _Opts, undefined) -> true; +check_opt_range(_Opt, _Opts, unlimited) -> + true; check_opt_range(Opt, Opts, Max) -> case proplists:get_value(Opt, Opts, Max) of max -> true; Val -> Val =< Max end. --spec get_max_items_node(host()) -> undefined | non_neg_integer(). +-spec get_max_items_node(host()) -> undefined | unlimited | non_neg_integer(). get_max_items_node(Host) -> config(Host, max_items_node, undefined). @@ -4150,7 +4152,7 @@ mod_opt_type(ignore_pep_from_offline) -> mod_opt_type(last_item_cache) -> econf:bool(); mod_opt_type(max_items_node) -> - econf:non_neg_int(); + econf:non_neg_int(unlimited); mod_opt_type(max_nodes_discoitems) -> econf:non_neg_int(infinity); mod_opt_type(max_subscriptions_node) -> @@ -4277,7 +4279,7 @@ mod_doc() -> "and allows to raise user connection rate. The cost " "is memory usage, as every item is stored in memory.")}}, {max_items_node, - #{value => "MaxItems", + #{value => "non_neg_integer() | infinity", desc => ?T("Define the maximum number of items that can be " "stored in a node. Default value is: '10'.")}}, diff --git a/src/node_flat.erl b/src/node_flat.erl index 4a2a60971..fe08be258 100644 --- a/src/node_flat.erl +++ b/src/node_flat.erl @@ -375,7 +375,8 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, or (Subscribed == true)) -> {error, xmpp:err_forbidden()}; true -> - if MaxItems > 0 -> + if MaxItems > 0; + MaxItems == unlimited -> Now = erlang:timestamp(), case get_item(Nidx, ItemId) of {result, #pubsub_item{creation = {_, GenKey}} = OldItem} -> diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl index 1e197a51d..1309c2886 100644 --- a/src/node_flat_sql.erl +++ b/src/node_flat_sql.erl @@ -247,7 +247,8 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, or (Subscribed == true)) -> {error, xmpp:err_forbidden()}; true -> - if MaxItems > 0 -> + if MaxItems > 0; + MaxItems == unlimited -> Now = erlang:timestamp(), case get_item(Nidx, ItemId) of {result, #pubsub_item{creation = {_, GenKey}} = OldItem} -> From 29751a6174d181f80bbcde7c92f8cc958eee85a1 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sat, 21 Aug 2021 20:02:58 +0200 Subject: [PATCH 080/105] PubSub: Optimize publishing on large nodes (SQL) Avoid an unnecessary SQL query while publishing an item on a PubSub node without 'max_items' limit. The query in question can be expensive if the node has a large number of items. Thanks to Ammonit Measurement GmbH for sponsoring this work. --- src/node_flat_sql.erl | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl index 1309c2886..5033eda51 100644 --- a/src/node_flat_sql.erl +++ b/src/node_flat_sql.erl @@ -259,14 +259,14 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, {result, _} -> {error, xmpp:err_forbidden()}; _ -> - Items = [ItemId | itemids(Nidx, GenKey)], - {result, {_NI, OI}} = remove_extra_items(Nidx, MaxItems, Items), + OldIds = maybe_remove_extra_items(Nidx, MaxItems, + GenKey, ItemId), set_item(#pubsub_item{ itemid = {ItemId, Nidx}, creation = {Now, GenKey}, modification = {Now, SubKey}, payload = Payload}), - {result, {default, broadcast, OI}} + {result, {default, broadcast, OldIds}} end; true -> {result, {default, broadcast, []}} @@ -934,6 +934,16 @@ update_subscription(Nidx, JID, Subscription) -> "-affiliation='n'" ]). +-spec maybe_remove_extra_items(mod_pubsub:nodeIdx(), + non_neg_integer() | unlimited, ljid(), + mod_pubsub:itemId()) -> [mod_pubsub:itemId()]. +maybe_remove_extra_items(_Nidx, unlimited, _GenKey, _ItemId) -> + []; +maybe_remove_extra_items(Nidx, MaxItems, GenKey, ItemId) -> + ItemIds = [ItemId | itemids(Nidx, GenKey)], + {result, {_NewIds, OldIds}} = remove_extra_items(Nidx, MaxItems, ItemIds), + OldIds. + -spec decode_jid(SJID :: binary()) -> ljid(). decode_jid(SJID) -> jid:tolower(jid:decode(SJID)). From 8d5025076f53abc0474c86a0f879ff1736714844 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 22 Aug 2021 12:44:50 +0200 Subject: [PATCH 081/105] PubSub: Add delete_old_pubsub_items command Add a command for keeping only the specified number of items on each node and removing all older items. This might be especially useful if nodes may be configured to have no 'max_items' limit. Thanks to Ammonit Measurement GmbH for sponsoring this work. --- src/gen_pubsub_node.erl | 5 ++++ src/gen_pubsub_nodetree.erl | 3 +++ src/mod_pubsub.erl | 53 ++++++++++++++++++++++++++++++++++++- src/node_flat.erl | 13 ++++++++- src/node_flat_sql.erl | 22 ++++++++++++--- src/node_pep.erl | 6 ++++- src/node_pep_sql.erl | 6 ++++- src/nodetree_tree.erl | 11 +++++++- src/nodetree_tree_sql.erl | 31 +++++++++++++++++++++- src/nodetree_virtual.erl | 6 ++++- 10 files changed, 146 insertions(+), 10 deletions(-) diff --git a/src/gen_pubsub_node.erl b/src/gen_pubsub_node.erl index 5bdebdfc6..625e490fc 100644 --- a/src/gen_pubsub_node.erl +++ b/src/gen_pubsub_node.erl @@ -122,6 +122,11 @@ {result, {default, broadcast}} | {error, stanza_error()}. +-callback remove_extra_items(NodeIdx :: nodeIdx(), + Max_Items :: unlimited | non_neg_integer()) -> + {result, {[itemId()], [itemId()]} + }. + -callback remove_extra_items(NodeIdx :: nodeIdx(), Max_Items :: unlimited | non_neg_integer(), ItemIds :: [itemId()]) -> diff --git a/src/gen_pubsub_nodetree.erl b/src/gen_pubsub_nodetree.erl index 5a24db2c4..b6b73b8cb 100644 --- a/src/gen_pubsub_nodetree.erl +++ b/src/gen_pubsub_nodetree.erl @@ -67,6 +67,9 @@ -callback get_nodes(Host :: host())-> [pubsubNode()]. +-callback get_all_nodes(Host :: host()) -> + [pubsubNode()]. + -callback get_parentnodes(Host :: host(), NodeId :: nodeId(), From :: jid:jid()) -> diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index c6f485077..8792b2ab9 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -45,6 +45,7 @@ -include("mod_roster.hrl"). -include("translate.hrl"). -include("ejabberd_stacktrace.hrl"). +-include("ejabberd_commands.hrl"). -define(STDTREE, <<"tree">>). -define(STDNODE, <<"flat">>). @@ -93,6 +94,9 @@ handle_call/3, handle_cast/2, handle_info/2, mod_doc/0, terminate/2, code_change/3, depends/2, mod_opt_type/1, mod_options/1]). +%% ejabberd commands +-export([get_commands_spec/0, delete_old_items/1]). + -export([route/1]). %%==================================================================== @@ -337,6 +341,7 @@ init([ServerHost|_]) -> false -> ok end, + ejabberd_commands:register_commands(?MODULE, get_commands_spec()), NodeTree = config(ServerHost, nodetree), Plugins = config(ServerHost, plugins), PepMapping = config(ServerHost, pep_mapping), @@ -806,7 +811,13 @@ terminate(_Reason, gen_iq_handler:remove_iq_handler(ejabberd_local, Host, ?NS_COMMANDS), terminate_plugins(Host, ServerHost, Plugins, TreePlugin), ejabberd_router:unregister_route(Host) - end, Hosts). + end, Hosts), + case gen_mod:is_loaded_elsewhere(ServerHost, ?MODULE) of + false -> + ejabberd_commands:unregister_commands(get_commands_spec()); + true -> + ok + end. %%-------------------------------------------------------------------- %% Func: code_change(OldVsn, State, Extra) -> {ok, NewState} @@ -4142,6 +4153,46 @@ purge_offline(Host, LJID, Node) -> {error, xmpp:err_internal_server_error(Txt, Lang)} end. +-spec delete_old_items(non_neg_integer()) -> ok | error. +delete_old_items(N) -> + Results = lists:flatmap( + fun(Host) -> + case tree_action(Host, get_all_nodes, [Host]) of + Nodes when is_list(Nodes) -> + lists:map( + fun(#pubsub_node{id = Nidx, type = Type}) -> + case node_action(Host, Type, + remove_extra_items, + [Nidx , N]) of + {result, _} -> + ok; + {error, _} -> + error + end + end, Nodes); + _ -> + error + end + end, ejabberd_option:hosts()), + case lists:member(error, Results) of + true -> + error; + false -> + ok + end. + +-spec get_commands_spec() -> [ejabberd_commands()]. +get_commands_spec() -> + [#ejabberd_commands{name = delete_old_pubsub_items, tags = [purge], + desc = "Keep only NUMBER of PubSub items per node", + module = ?MODULE, function = delete_old_items, + args_desc = ["Number of items to keep per node"], + args = [{number, integer}], + result = {res, rescode}, + result_desc = "0 if command failed, 1 when succeeded", + args_example = [1000], + result_example = ok}]. + -spec mod_opt_type(atom()) -> econf:validator(). mod_opt_type(access_createnode) -> econf:acl(); diff --git a/src/node_flat.erl b/src/node_flat.erl index fe08be258..97f149f9c 100644 --- a/src/node_flat.erl +++ b/src/node_flat.erl @@ -39,7 +39,8 @@ -export([init/3, terminate/2, options/0, features/0, create_node_permission/6, create_node/2, delete_node/1, purge_node/2, subscribe_node/8, unsubscribe_node/4, - publish_item/7, delete_item/4, remove_extra_items/3, + publish_item/7, delete_item/4, + remove_extra_items/2, remove_extra_items/3, get_entity_affiliations/2, get_node_affiliations/1, get_affiliation/2, set_affiliation/3, get_entity_subscriptions/2, get_node_subscriptions/1, @@ -403,6 +404,16 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, end end. +remove_extra_items(Nidx, MaxItems) -> + {result, States} = get_states(Nidx), + Records = States ++ mnesia:read({pubsub_orphan, Nidx}), + ItemIds = lists:flatmap(fun(#pubsub_state{items = Is}) -> + Is; + (#pubsub_orphan{items = Is}) -> + Is + end, Records), + remove_extra_items(Nidx, MaxItems, ItemIds). + %% @doc

This function is used to remove extra items, most notably when the %% maximum number of items has been reached.

%%

This function is used internally by the core PubSub module, as no diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl index 5033eda51..724958eb1 100644 --- a/src/node_flat_sql.erl +++ b/src/node_flat_sql.erl @@ -40,9 +40,10 @@ -include("translate.hrl"). -export([init/3, terminate/2, options/0, features/0, - create_node_permission/6, create_node/2, delete_node/1, - purge_node/2, subscribe_node/8, unsubscribe_node/4, - publish_item/7, delete_item/4, remove_extra_items/3, + create_node_permission/6, create_node/2, delete_node/1, purge_node/2, + subscribe_node/8, unsubscribe_node/4, + publish_item/7, delete_item/4, + remove_extra_items/2, remove_extra_items/3, get_entity_affiliations/2, get_node_affiliations/1, get_affiliation/2, set_affiliation/3, get_entity_subscriptions/2, get_node_subscriptions/1, @@ -273,6 +274,9 @@ publish_item(Nidx, Publisher, PublishModel, MaxItems, ItemId, Payload, end end. +remove_extra_items(Nidx, MaxItems) -> + remove_extra_items(Nidx, MaxItems, itemids(Nidx)). + remove_extra_items(_Nidx, unlimited, ItemIds) -> {result, {ItemIds, []}}; remove_extra_items(Nidx, MaxItems, ItemIds) -> @@ -863,6 +867,18 @@ first_in_list(Pred, [H | T]) -> _ -> first_in_list(Pred, T) end. +itemids(Nidx) -> + case catch + ejabberd_sql:sql_query_t( + ?SQL("select @(itemid)s from pubsub_item where " + "nodeid=%(Nidx)d order by modification desc")) + of + {selected, RItems} -> + [ItemId || {ItemId} <- RItems]; + _ -> + [] + end. + itemids(Nidx, {_U, _S, _R} = JID) -> SJID = encode_jid(JID), SJIDLike = <<(encode_jid_like(JID))/binary, "/%">>, diff --git a/src/node_pep.erl b/src/node_pep.erl index 58c3050a0..44388ca31 100644 --- a/src/node_pep.erl +++ b/src/node_pep.erl @@ -35,7 +35,8 @@ -export([init/3, terminate/2, options/0, features/0, create_node_permission/6, create_node/2, delete_node/1, purge_node/2, subscribe_node/8, unsubscribe_node/4, - publish_item/7, delete_item/4, remove_extra_items/3, + publish_item/7, delete_item/4, + remove_extra_items/2, remove_extra_items/3, get_entity_affiliations/2, get_node_affiliations/1, get_affiliation/2, set_affiliation/3, get_entity_subscriptions/2, get_node_subscriptions/1, @@ -135,6 +136,9 @@ publish_item(Nidx, Publisher, Model, MaxItems, ItemId, Payload, PubOpts) -> node_flat:publish_item(Nidx, Publisher, Model, MaxItems, ItemId, Payload, PubOpts). +remove_extra_items(Nidx, MaxItems) -> + node_flat:remove_extra_items(Nidx, MaxItems). + remove_extra_items(Nidx, MaxItems, ItemIds) -> node_flat:remove_extra_items(Nidx, MaxItems, ItemIds). diff --git a/src/node_pep_sql.erl b/src/node_pep_sql.erl index 7b21aa901..c0cf2b166 100644 --- a/src/node_pep_sql.erl +++ b/src/node_pep_sql.erl @@ -37,7 +37,8 @@ -export([init/3, terminate/2, options/0, features/0, create_node_permission/6, create_node/2, delete_node/1, purge_node/2, subscribe_node/8, unsubscribe_node/4, - publish_item/7, delete_item/4, remove_extra_items/3, + publish_item/7, delete_item/4, + remove_extra_items/2, remove_extra_items/3, get_entity_affiliations/2, get_node_affiliations/1, get_affiliation/2, set_affiliation/3, get_entity_subscriptions/2, get_node_subscriptions/1, @@ -92,6 +93,9 @@ publish_item(Nidx, Publisher, Model, MaxItems, ItemId, Payload, PubOpts) -> node_flat_sql:publish_item(Nidx, Publisher, Model, MaxItems, ItemId, Payload, PubOpts). +remove_extra_items(Nidx, MaxItems) -> + node_flat_sql:remove_extra_items(Nidx, MaxItems). + remove_extra_items(Nidx, MaxItems, ItemIds) -> node_flat_sql:remove_extra_items(Nidx, MaxItems, ItemIds). diff --git a/src/nodetree_tree.erl b/src/nodetree_tree.erl index fe15f3323..853c1fb93 100644 --- a/src/nodetree_tree.erl +++ b/src/nodetree_tree.erl @@ -46,7 +46,8 @@ -export([init/3, terminate/2, options/0, set_node/1, get_node/3, get_node/2, get_node/1, get_nodes/2, - get_nodes/1, get_parentnodes/3, get_parentnodes_tree/3, + get_nodes/1, get_all_nodes/1, + get_parentnodes/3, get_parentnodes_tree/3, get_subnodes/3, get_subnodes_tree/3, create_node/6, delete_node/2]). @@ -98,6 +99,14 @@ get_nodes(Host, Limit) -> {Nodes, _} -> Nodes end. +get_all_nodes({_U, _S, _R} = Owner) -> + Host = jid:tolower(jid:remove_resource(Owner)), + mnesia:match_object(#pubsub_node{nodeid = {Host, '_'}, _ = '_'}); +get_all_nodes(Host) -> + mnesia:match_object(#pubsub_node{nodeid = {Host, '_'}, _ = '_'}) + ++ mnesia:match_object(#pubsub_node{nodeid = {{'_', Host, '_'}, '_'}, + _ = '_'}). + get_parentnodes(Host, Node, _From) -> case catch mnesia:read({pubsub_node, {Host, Node}}) of [Record] when is_record(Record, pubsub_node) -> diff --git a/src/nodetree_tree_sql.erl b/src/nodetree_tree_sql.erl index d68355202..402c50901 100644 --- a/src/nodetree_tree_sql.erl +++ b/src/nodetree_tree_sql.erl @@ -45,7 +45,8 @@ -export([init/3, terminate/2, options/0, set_node/1, get_node/3, get_node/2, get_node/1, get_nodes/2, - get_nodes/1, get_parentnodes/3, get_parentnodes_tree/3, + get_nodes/1, get_all_nodes/1, + get_parentnodes/3, get_parentnodes_tree/3, get_subnodes/3, get_subnodes_tree/3, create_node/6, delete_node/2]). @@ -165,6 +166,34 @@ get_nodes(Host, Limit) -> [] end. +get_all_nodes({_U, _S, _R} = JID) -> + SubKey = jid:tolower(JID), + GenKey = jid:remove_resource(SubKey), + EncKey = node_flat_sql:encode_jid(GenKey), + Pattern = <<(node_flat_sql:encode_jid_like(GenKey))/binary, "/%">>, + case ejabberd_sql:sql_query_t( + ?SQL("select @(node)s, @(parent)s, @(plugin)s, @(nodeid)d " + "from pubsub_node where host=%(EncKey)s " + "or host like %(Pattern)s %ESCAPE")) of + {selected, RItems} -> + [raw_to_node(GenKey, Item) || Item <- RItems]; + _ -> + [] + end; +get_all_nodes(Host) -> + Pattern1 = <<"%@", Host/binary>>, + Pattern2 = <<"%@", Host/binary, "/%">>, + case ejabberd_sql:sql_query_t( + ?SQL("select @(node)s, @(parent)s, @(plugin)s, @(nodeid)d " + "from pubsub_node where host=%(Host)s " + "or host like %(Pattern1)s " + "or host like %(Pattern2)s %ESCAPE")) of + {selected, RItems} -> + [raw_to_node(Host, Item) || Item <- RItems]; + _ -> + [] + end. + get_parentnodes(Host, Node, _From) -> case get_node(Host, Node) of Record when is_record(Record, pubsub_node) -> diff --git a/src/nodetree_virtual.erl b/src/nodetree_virtual.erl index 9cf7a80ca..c0274a795 100644 --- a/src/nodetree_virtual.erl +++ b/src/nodetree_virtual.erl @@ -38,7 +38,8 @@ -export([init/3, terminate/2, options/0, set_node/1, get_node/3, get_node/2, get_node/1, get_nodes/2, - get_nodes/1, get_parentnodes/3, get_parentnodes_tree/3, + get_nodes/1, get_all_nodes/1, + get_parentnodes/3, get_parentnodes_tree/3, get_subnodes/3, get_subnodes_tree/3, create_node/6, delete_node/2]). @@ -71,6 +72,9 @@ get_nodes(Host) -> get_nodes(_Host, _Limit) -> []. +get_all_nodes(_Host) -> + []. + get_parentnodes(_Host, _Node, _From) -> []. From 8af66b08316abc8efe2f549d202ded5aee703f94 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 18 Aug 2021 16:40:13 +0200 Subject: [PATCH 082/105] Update API Reference page menu name and order --- src/ejabberd_commands_doc.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_commands_doc.erl b/src/ejabberd_commands_doc.erl index 582908723..f63326182 100644 --- a/src/ejabberd_commands_doc.erl +++ b/src/ejabberd_commands_doc.erl @@ -480,7 +480,7 @@ generate_md_output(File, RegExp, Languages) -> end, Cmds2), Cmds4 = [maybe_add_policy_arguments(Cmd) || Cmd <- Cmds3], Langs = binary:split(Languages, <<",">>, [global]), - Header = <<"---\ntitle: Administration API reference\ntoc: true\nmenu: Administration API\norder: 40\n" + Header = <<"---\ntitle: Administration API reference\ntoc: true\nmenu: API Reference\norder: 1\n" "// Autogenerated with 'ejabberdctl gen_markdown_doc_for_commands'\n---\n\n" "This section describes API of ejabberd.">>, Out = lists:map(fun(C) -> gen_doc(C, false, Langs) end, Cmds4), From b7f7713faefeab6f45994c0c940497b1c3ee7619 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 18 Aug 2021 13:39:17 +0200 Subject: [PATCH 083/105] Add example config to mod_http_api documentation --- src/mod_http_api.erl | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mod_http_api.erl b/src/mod_http_api.erl index 0a3942024..0f494bb3a 100644 --- a/src/mod_http_api.erl +++ b/src/mod_http_api.erl @@ -533,4 +533,14 @@ mod_doc() -> "in the request_handlers, add a 'vN'. " "For example: '/api/v2: mod_http_api'"), "", ?T("To run a command, send a POST request to the corresponding " - "URL: 'http://localhost:5280/api/'")]}. + "URL: 'http://localhost:5280/api/'")], + example => + ["listen:", + " -", + " port: 5280", + " module: ejabberd_http", + " request_handlers:", + " /api: mod_http_api", + "", + "modules:", + " mod_http_api: {}"]}. From 69d362595e5aab86383f0596a0613af233358d31 Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 18 Aug 2021 13:40:09 +0200 Subject: [PATCH 084/105] Remove obsolete mod_register_web ideas and improve documentation --- src/mod_register_web.erl | 56 ++++++++++++++++------------------------ 1 file changed, 22 insertions(+), 34 deletions(-) diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl index 9c2179302..28bac0558 100644 --- a/src/mod_register_web.erl +++ b/src/mod_register_web.erl @@ -23,32 +23,6 @@ %%% %%%---------------------------------------------------------------------- -%%% IDEAS: -%%% -%%% * Implement those options, already present in mod_register: -%%% + access -%%% + captcha_protected -%%% + password_strength -%%% + welcome_message -%%% + registration_timeout -%%% -%%% * Improve this module to allow each virtual host to have different -%%% options. See http://support.process-one.net/browse/EJAB-561 -%%% -%%% * Check that all the text is translatable. -%%% -%%% * Add option to use a custom CSS file, or custom CSS lines. -%%% -%%% * Don't hardcode the "register" path in URL. -%%% -%%% * Allow private email during register, and store in custom table. -%%% * Optionally require private email to register. -%%% * Optionally require email confirmation to register. -%%% * Allow to set a private email address anytime. -%%% * Allow to recover password using private email to confirm (mod_passrecover) -%%% * Optionally require invitation -%%% * Optionally register request is forwarded to admin, no account created. - -module(mod_register_web). -author('badlop@process-one.net'). @@ -625,13 +599,27 @@ mod_doc() -> ?T("- Register a new account on the server."), "", ?T("- Change the password from an existing account on the server."), "", ?T("- Unregister an existing account on the server."), "", - ?T("This module supports CAPTCHA image to register a new account. " - "To enable this feature, configure the options 'captcha\_cmd' " - "and 'captcha\_url', which are documented in the section with " - "top-level options."), "", - ?T("As an example usage, the users of the host 'example.org' can " - "visit the page: 'https://example.org:5281/register/' It is " + ?T("This module supports http://../basic/#captcha[CAPTCHA] " + "to register a new account. " + "To enable this feature, configure the " + "top-level _`captcha_cmd`_ and " + "top-level _`captcha_url`_ options."), "", + ?T("As an example usage, the users of the host 'localhost' can " + "visit the page: 'https://localhost:5280/register/' It is " "important to include the last / character in the URL, " "otherwise the subpages URL will be incorrect."), "", - ?T("The module depends on 'mod_register' where all the configuration " - "is performed.")]}. + ?T("This module is enabled in 'listen' -> 'ejabberd_http' -> " + "http://../listen-options/#request-handlers[request_handlers], " + "no need to enable in 'modules'."), + ?T("The module depends on _`mod_register`_ where all the " + "configuration is performed.")], + example => + ["listen:", + " -", + " port: 5280", + " module: ejabberd_http", + " request_handlers:", + " /register: mod_register_web", + "", + "modules:", + " mod_register: {}"]}. From 94fb0a65b0af8a26c21c08d2e43d3528a4bffdc6 Mon Sep 17 00:00:00 2001 From: Badlop Date: Sat, 21 Aug 2021 23:20:35 +0200 Subject: [PATCH 085/105] Change set_master command tag from mnesia to cluster --- src/ejabberd_admin.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index 23becc7f2..9cebd0bb5 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -326,7 +326,7 @@ get_commands_spec() -> args_example = ["example.com", "/var/lib/ejabberd/example.com.sql"], args = [{host, string}, {file, string}], result = {res, rescode}}, - #ejabberd_commands{name = set_master, tags = [mnesia], + #ejabberd_commands{name = set_master, tags = [cluster], desc = "Set master node of the clustered Mnesia tables", longdesc = "If you provide as nodename \"self\", this " "node will be set as its own master.", From 9446b251fd0aa6b858ad35bf779841659252f2d0 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 11:51:01 +0200 Subject: [PATCH 086/105] Export function, so ACME API commands are listed in the documentation --- src/ejabberd_acme.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_acme.erl b/src/ejabberd_acme.erl index 42f17baa1..93ce3c815 100644 --- a/src/ejabberd_acme.erl +++ b/src/ejabberd_acme.erl @@ -27,7 +27,8 @@ %% Hooks -export([ejabberd_started/0, register_certfiles/0, cert_expired/2]). %% ejabberd commands --export([request_certificate/1, revoke_certificate/1, list_certificates/0]). +-export([get_commands_spec/0, request_certificate/1, + revoke_certificate/1, list_certificates/0]). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3, format_status/2]). From f5038b86f83d811e33c81e3282f9469c9f370dd9 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 12:48:06 +0200 Subject: [PATCH 087/105] Copy log_rotate_count explanation from docs site --- src/ejabberd_options_doc.erl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/ejabberd_options_doc.erl b/src/ejabberd_options_doc.erl index 64eb850d8..8f6ab45b1 100644 --- a/src/ejabberd_options_doc.erl +++ b/src/ejabberd_options_doc.erl @@ -799,7 +799,8 @@ doc() -> #{value => ?T("Number"), desc => ?T("The number of rotated log files to keep. " - "The default value is '1'.")}}, + "The default value is '1', which means that only keeps " + "`ejabberd.log.0`, `error.log.0` and `crash.log.0`.")}}, {log_rotate_size, #{value => "pos_integer() | infinity", desc => From 30ae66e99e4a7499886436b195311ff012f09fda Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 13:40:19 +0200 Subject: [PATCH 088/105] Improve formatting and add sections links --- src/ejabberd_options_doc.erl | 30 +++++++++++++++++------------- src/mod_admin_update_sql.erl | 2 +- src/mod_http_api.erl | 4 ++-- src/mod_http_upload.erl | 5 +++-- src/mod_mqtt.erl | 5 +++-- src/mod_register.erl | 11 +++++------ 6 files changed, 31 insertions(+), 26 deletions(-) diff --git a/src/ejabberd_options_doc.erl b/src/ejabberd_options_doc.erl index 8f6ab45b1..ee1cf9add 100644 --- a/src/ejabberd_options_doc.erl +++ b/src/ejabberd_options_doc.erl @@ -313,10 +313,12 @@ doc() -> {anonymous_protocol, #{value => "login_anon | sasl_anon | both", desc => - ?T("'login_anon' means that the anonymous login method will be used. " - "'sasl_anon' means that the SASL Anonymous method will be used. " - "'both' means that SASL Anonymous and login anonymous are both " - "enabled. The default value is 'sasl_anon'.")}}, + [?T("Define what anonymous protocol will be used: "), "", + ?T("* 'login_anon' means that the anonymous login method will be used. "), "", + ?T("* 'sasl_anon' means that the SASL Anonymous method will be used. "), "", + ?T("* 'both' means that SASL Anonymous and login anonymous are both " + "enabled."), "", + ?T("The default value is 'sasl_anon'."), ""]}}, {api_permissions, #{value => "[Permission, ...]", desc => @@ -359,26 +361,28 @@ doc() -> desc => ?T("This is used by the contributed module " "'ejabberd_auth_http' that can be installed from the " - "'ejabberd-contrib' Git repository. Please refer to that " + "https://github.com/processone/ejabberd-contrib[ejabberd-contrib] " + "Git repository. Please refer to that " "module's README file for details.")}}, {auth_password_format, #{value => "plain | scram", note => "improved in 20.01", desc => - ?T("The option defines in what format the users passwords " - "are stored. 'plain': The password is stored as plain text " + [?T("The option defines in what format the users passwords " + "are stored:"), "", + ?T("* 'plain': The password is stored as plain text " "in the database. This is risky because the passwords " "can be read if your database gets compromised. " "This is the default value. This format allows clients to " "authenticate using: the old Jabber Non-SASL (XEP-0078), " - "SASL PLAIN, SASL DIGEST-MD5, and SASL SCRAM-SHA-1. " - "'scram': The password is not stored, only some information " + "SASL PLAIN, SASL DIGEST-MD5, and SASL SCRAM-SHA-1. "), "", + ?T("* 'scram': The password is not stored, only some information " "that allows to verify the hash provided by the client. " "It is impossible to obtain the original plain password " "from the stored information; for this reason, when this " "value is configured it cannot be changed to plain anymore. " "This format allows clients to authenticate using: " - "SASL PLAIN and SASL SCRAM-SHA-1.")}}, + "SASL PLAIN and SASL SCRAM-SHA-1.")]}}, {auth_scram_hash, #{value => "sha | sha256 | sha512", desc => @@ -449,13 +453,13 @@ doc() -> {captcha_cmd, #{value => ?T("Path"), desc => - ?T("Full path to a script that generates CAPTCHA images. " + ?T("Full path to a script that generates http://../basic/#captcha[CAPTCHA] images. " "There is no default value: when this option is not " "set, CAPTCHA functionality is completely disabled.")}}, {captcha_limit, #{value => "pos_integer() | infinity", desc => - ?T("Maximum number of CAPTCHA generated images per minute for " + ?T("Maximum number of http://../basic/#captcha[CAPTCHA] generated images per minute for " "any given JID. The option is intended to protect the server " "from CAPTCHA DoS. The default value is 'infinity'.")}}, {captcha_host, @@ -464,7 +468,7 @@ doc() -> {captcha_url, #{value => ?T("URL"), desc => - ?T("An URL where CAPTCHA requests should be sent. NOTE: you need " + ?T("An URL where http://../basic/#captcha[CAPTCHA] requests should be sent. NOTE: you need " "to configure 'request_handlers' for 'ejabberd_http' listener " "as well. There is no default value.")}}, {certfiles, diff --git a/src/mod_admin_update_sql.erl b/src/mod_admin_update_sql.erl index eae481385..c87849748 100644 --- a/src/mod_admin_update_sql.erl +++ b/src/mod_admin_update_sql.erl @@ -364,6 +364,6 @@ mod_doc() -> #{desc => ?T("This module can be used to update existing SQL database " "from the default to the new schema. Check the section " - "http://../database-ldap/#default-and-new-schemas[Default and New Schemas] for details. " + "http://../database/#default-and-new-schemas[Default and New Schemas] for details. " "Please note that only PostgreSQL is supported. " "When the module is loaded use 'update_sql' ejabberdctl command.")}. diff --git a/src/mod_http_api.erl b/src/mod_http_api.erl index 0f494bb3a..427833584 100644 --- a/src/mod_http_api.erl +++ b/src/mod_http_api.erl @@ -527,8 +527,8 @@ mod_doc() -> [?T("This module provides a ReST API to call ejabberd commands " "using JSON data."), "", ?T("To use this module, in addition to adding it to the 'modules' " - "section, you must also add it to 'request_handlers' of some " - "listener."), "", + "section, you must also enable it in 'listen' -> 'ejabberd_http' -> " + "http://../listen-options/#request-handlers[request_handlers]."), "", ?T("To use a specific API version N, when defining the URL path " "in the request_handlers, add a 'vN'. " "For example: '/api/v2: mod_http_api'"), "", diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 0cc8d8488..040cb6085 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -232,8 +232,9 @@ mod_doc() -> "[XEP-0363: HTTP File Upload]. If the request is accepted, " "the client receives a URL for uploading the file and " "another URL from which that file can later be downloaded."), "", - ?T("In order to use this module, it must be configured as " - "a 'request_handler' for 'ejabberd_http' listener.")], + ?T("In order to use this module, it must be enabled " + "in 'listen' -> 'ejabberd_http' -> " + "http://../listen-options/#request-handlers[request_handlers].")], opts => [{host, #{desc => ?T("Deprecated. Use 'hosts' instead.")}}, diff --git a/src/mod_mqtt.erl b/src/mod_mqtt.erl index 8734c778d..a1621cc01 100644 --- a/src/mod_mqtt.erl +++ b/src/mod_mqtt.erl @@ -278,8 +278,9 @@ listen_options() -> %%%=================================================================== mod_doc() -> #{desc => - ?T("This module adds support for the MQTT protocol " - "version '3.1.1' and '5.0'. Remember to configure " + ?T("This module adds " + "https://docs.ejabberd.im/admin/guide/mqtt/[support for the MQTT] " + "protocol version '3.1.1' and '5.0'. Remember to configure " "'mod_mqtt' in 'modules' and 'listen' sections."), opts => [{access_subscribe, diff --git a/src/mod_register.erl b/src/mod_register.erl index a864c0df2..919440b23 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -638,9 +638,9 @@ mod_doc() -> ?T("* Register a new account on the server."), "", ?T("* Change the password from an existing account on the server."), "", ?T("* Delete an existing account on the server."), "", - ?T("This module reads also another option defined globally for the " - "server: 'registration_timeout'. Please check that option " - "documentation in the section with top-level options.")], + ?T("This module reads also the top-level _`registration_timeout`_ " + "option defined globally for the server, " + "so please check that option documentation too.")], opts => [{access, #{value => ?T("AccessName"), @@ -664,9 +664,8 @@ mod_doc() -> {captcha_protected, #{value => "true | false", desc => - ?T("Protect registrations with CAPTCHA (see section " - "https://docs.ejabberd.im/admin/configuration/basic/#captcha[CAPTCHA] " - "of the Configuration Guide). The default is 'false'.")}}, + ?T("Protect registrations with http://../basic/#captcha[CAPTCHA]. " + "The default is 'false'.")}}, {ip_access, #{value => ?T("AccessName"), desc => From 506e2f3b972a7e1b6d4fdd40836b9574c4937908 Mon Sep 17 00:00:00 2001 From: Badlop Date: Sat, 21 Aug 2021 18:31:21 +0200 Subject: [PATCH 089/105] Use specific syntax so modules and top-level will be links If we use _`whatever`_ here in ejabberd man pages, it is converted to *`whatever`* in markdown, and docs.ejabberd.im/Makefile converts to the proper links --- src/ejabberd_options_doc.erl | 142 ++++++++++++++++----------------- src/mod_admin_update_sql.erl | 2 +- src/mod_announce.erl | 14 ++-- src/mod_avatar.erl | 4 +- src/mod_bosh.erl | 12 +-- src/mod_caps.erl | 12 +-- src/mod_configure.erl | 2 +- src/mod_delegation.erl | 2 +- src/mod_http_upload.erl | 2 +- src/mod_last.erl | 10 +-- src/mod_mam.erl | 14 ++-- src/mod_mix.erl | 6 +- src/mod_mix_pam.erl | 10 +-- src/mod_mqtt.erl | 14 ++-- src/mod_muc.erl | 4 +- src/mod_muc_admin.erl | 2 +- src/mod_muc_log.erl | 2 +- src/mod_offline.erl | 8 +- src/mod_ping.erl | 4 +- src/mod_privacy.erl | 12 +-- src/mod_private.erl | 10 +-- src/mod_privilege.erl | 2 +- src/mod_pubsub.erl | 4 +- src/mod_push.erl | 10 +-- src/mod_push_keepalive.erl | 8 +- src/mod_roster.erl | 14 ++-- src/mod_shared_roster.erl | 14 ++-- src/mod_shared_roster_ldap.erl | 2 +- src/mod_stream_mgmt.erl | 6 +- src/mod_vcard.erl | 10 +-- src/mod_vcard_ldap.erl | 2 +- src/mod_vcard_xupdate.erl | 12 +-- 32 files changed, 186 insertions(+), 186 deletions(-) diff --git a/src/ejabberd_options_doc.erl b/src/ejabberd_options_doc.erl index ee1cf9add..28a6f6333 100644 --- a/src/ejabberd_options_doc.erl +++ b/src/ejabberd_options_doc.erl @@ -64,8 +64,8 @@ doc() -> "erased from cache. The default value is 'one hour'. " "Several modules have a similar option; and some core " "ejabberd parts support similar options too, see " - "'auth_cache_life_time', 'oauth_cache_life_time', " - "'router_cache_life_time', and 'sm_cache_life_time'.")}}, + "_`auth_cache_life_time`_, _`oauth_cache_life_time`_, " + "_`router_cache_life_time`_, and _`sm_cache_life_time`_.")}}, {cache_missed, #{value => "true | false", desc => @@ -73,12 +73,12 @@ doc() -> "an attempt to lookup for a value in a database and " "this value is not found and the option is set to 'true', " "this attempt will be cached and no attempts will be " - "performed until the cache expires (see 'cache_life_time'). " + "performed until the cache expires (see _`cache_life_time`_). " "Usually you don't want to change it. Default is 'true'. " "Several modules have a similar option; and some core " "ejabberd parts support similar options too, see " - "'auth_cache_missed', 'oauth_cache_missed', " - "'router_cache_missed', and 'sm_cache_missed'.")}}, + "_`auth_cache_missed`_, _`oauth_cache_missed`_, " + "_`router_cache_missed`_, and _`sm_cache_missed`_.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => @@ -93,16 +93,16 @@ doc() -> "performance. The default value is '1000'. " "Several modules have a similar option; and some core " "ejabberd parts support similar options too, see " - "'auth_cache_size', 'oauth_cache_size', " - "'router_cache_size', and 'sm_cache_size'.")}}, + "_`auth_cache_size`_, _`oauth_cache_size`_, " + "_`router_cache_size`_, and _`sm_cache_size`_.")}}, {use_cache, #{value => "true | false", desc => ?T("Enable or disable cache. The default is 'true'. " "Several modules have a similar option; and some core " "ejabberd parts support similar options too, see " - "'auth_use_cache', 'oauth_use_cache', 'router_use_cache', " - "and 'sm_use_cache'.")}}, + "_`auth_use_cache`_, _`oauth_use_cache`_, _`router_use_cache`_, " + "and _`sm_use_cache`_.")}}, {default_db, #{value => "mnesia | sql", desc => @@ -122,14 +122,14 @@ doc() -> "Modules may have its own value of the option. " "The value of 'ram' means that queues will be kept in memory. " "If value 'file' is set, you may also specify directory " - "in 'queue_dir' option where file queues will be placed. " + "in _`queue_dir`_ option where file queues will be placed. " "The default value is 'ram'.")}}, {version, #{value => "string()", desc => ?T("The option can be used to set custom ejabberd version, " "that will be used by different parts of ejabberd, for " - "example by 'mod_version' module. The default value is " + "example by _`mod_version`_ module. The default value is " "obtained at compile time from the underlying version " "control system.")}}, {acl, @@ -141,7 +141,7 @@ doc() -> "has name 'ACLName': it can be any string except 'all' or 'none' " "(those are predefined names for the rules that match all or nothing " "respectively). The name 'ACLName' can be referenced from other " - "parts of the configuration file, for example in 'access_rules' " + "parts of the configuration file, for example in _`access_rules`_ " "option. The rules of 'ACLName' are represented by mapping " "'pass:[{ACLType: ACLValue}]'. These can be one of the following:")}, [{user, @@ -225,7 +225,7 @@ doc() -> "of the configuration file (mostly from 'access' options of " "ejabberd modules). Each rule definition may contain " "arbitrary number of 'allow' or 'deny' sections, and each " - "section may contain any number of ACL rules (see 'acl' option). " + "section may contain any number of ACL rules (see _`acl`_ option). " "There are no access rules defined by default."), example => ["access_rules:", @@ -336,18 +336,18 @@ doc() -> {auth_cache_life_time, #{value => "timeout()", desc => - ?T("Same as 'cache_life_time', but applied to authentication cache " - "only. If not set, the value from 'cache_life_time' will be used.")}}, + ?T("Same as _`cache_life_time`_, but applied to authentication cache " + "only. If not set, the value from _`cache_life_time`_ will be used.")}}, {auth_cache_missed, #{value => "true | false", desc => - ?T("Same as 'cache_missed', but applied to authentication cache " - "only. If not set, the value from 'cache_missed' will be used.")}}, + ?T("Same as _`cache_missed`_, but applied to authentication cache " + "only. If not set, the value from _`cache_missed`_ will be used.")}}, {auth_cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as 'cache_size', but applied to authentication cache " - "only. If not set, the value from 'cache_size' will be used.")}}, + ?T("Same as _`cache_size`_, but applied to authentication cache " + "only. If not set, the value from _`cache_size`_ will be used.")}}, {auth_method, #{value => "[mnesia | sql | anonymous | external | jwt | ldap | pam, ...]", desc => @@ -393,8 +393,8 @@ doc() -> {auth_use_cache, #{value => "true | false", desc => - ?T("Same as 'use_cache', but applied to authentication cache " - "only. If not set, the value from 'use_cache' will be used.")}}, + ?T("Same as _`use_cache`_, but applied to authentication cache " + "only. If not set, the value from _`use_cache`_ will be used.")}}, {c2s_cafile, #{value => ?T("Path"), desc => @@ -464,7 +464,7 @@ doc() -> "from CAPTCHA DoS. The default value is 'infinity'.")}}, {captcha_host, #{value => "String", - desc => ?T("Deprecated. Use 'captcha_url' instead.")}}, + desc => ?T("Deprecated. Use _`captcha_url`_ instead.")}}, {captcha_url, #{value => ?T("URL"), desc => @@ -688,7 +688,7 @@ doc() -> #{value => "[Host, ...]", desc => ?T("A list of IP addresses or DNS names of LDAP backup servers. " - "When no servers listed in 'ldap_servers' option are reachable, " + "When no servers listed in _`ldap_servers`_ option are reachable, " "ejabberd will try to connect to these backup servers. " "The default is an empty list, i.e. no backup servers specified. " "WARNING: ejabberd doesn't try to reconnect back to the main " @@ -795,7 +795,7 @@ doc() -> "the result set. There is no default value, which means the " "result is not filtered. WARNING: Since this filter makes " "additional LDAP lookups, use it only as the last resort: " - "try to define all filter rules in 'ldap_filter' option if possible."), + "try to define all filter rules in _`ldap_filter`_ option if possible."), example => ["ldap_dn_filter:", " \"(&(name=%s)(owner=%D)(user=%u@%d))\": [sn]"]}}, @@ -866,13 +866,13 @@ doc() -> {oauth_cache_life_time, #{value => "timeout()", desc => - ?T("Same as 'cache_life_time', but applied to OAuth cache " - "only. If not set, the value from 'cache_life_time' will be used.")}}, + ?T("Same as _`cache_life_time`_, but applied to OAuth cache " + "only. If not set, the value from _`cache_life_time`_ will be used.")}}, {oauth_cache_missed, #{value => "true | false", desc => - ?T("Same as 'cache_missed', but applied to OAuth cache " - "only. If not set, the value from 'cache_missed' will be used.")}}, + ?T("Same as _`cache_missed`_, but applied to OAuth cache " + "only. If not set, the value from _`cache_missed`_ will be used.")}}, {oauth_cache_rest_failure_life_time, #{value => "timeout()", note => "added in 21.01", @@ -882,8 +882,8 @@ doc() -> {oauth_cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as 'cache_size', but applied to OAuth cache " - "only. If not set, the value from 'cache_size' will be used.")}}, + ?T("Same as _`cache_size`_, but applied to OAuth cache " + "only. If not set, the value from _`cache_size`_ will be used.")}}, {oauth_client_id_check, #{value => "allow | db | deny", desc => @@ -893,13 +893,13 @@ doc() -> {oauth_use_cache, #{value => "true | false", desc => - ?T("Same as 'use_cache', but applied to OAuth cache " - "only. If not set, the value from 'use_cache' will be used.")}}, + ?T("Same as _`use_cache`_, but applied to OAuth cache " + "only. If not set, the value from _`use_cache`_ will be used.")}}, {oauth_db_type, #{value => "mnesia | sql", desc => ?T("Database backend to use for OAuth authentication. " - "The default value is picked from 'default_db' option, or " + "The default value is picked from _`default_db`_ option, or " "if it's not set, 'mnesia' will be used.")}}, {oauth_expire, #{value => "timeout()", @@ -913,7 +913,7 @@ doc() -> desc => ?T("Enable or disable OOM (out-of-memory) killer. " "When system memory raises above the limit defined in " - "'oom_watermark' option, ejabberd triggers OOM killer " + "_`oom_watermark`_ option, ejabberd triggers OOM killer " "to terminate most memory consuming Erlang processes. " "Note that in order to maintain functionality, ejabberd only " "attempts to kill transient processes, such as those managing " @@ -924,14 +924,14 @@ doc() -> desc => ?T("Trigger OOM killer when some of the running Erlang processes " "have messages queue above this 'Size'. Note that " - "such processes won't be killed if 'oom_killer' option is set " + "such processes won't be killed if _`oom_killer`_ option is set " "to 'false' or if 'oom_watermark' is not reached yet.")}}, {oom_watermark, #{value => ?T("Percent"), desc => ?T("A percent of total system memory consumed at which " "OOM killer should be activated with some of the processes " - "possibly be killed (see 'oom_killer' option). Later, when " + "possibly be killed (see _`oom_killer`_ option). Later, when " "memory drops below this 'Percent', OOM killer is deactivated. " "The default value is '80' percents.")}}, {outgoing_s2s_families, @@ -984,7 +984,7 @@ doc() -> {queue_dir, #{value => ?T("Directory"), desc => - ?T("If 'queue_type' option is set to 'file', use this 'Directory' " + ?T("If _`queue_type`_ option is set to 'file', use this 'Directory' " "to store file queues. The default is to keep queues inside " "Mnesia directory.")}}, {redis_connect_timeout, @@ -1014,8 +1014,8 @@ doc() -> #{value => "ram | file", desc => ?T("The type of request queue for the Redis server. " - "See description of 'queue_type' option for the explanation. " - "The default value is the value defined in 'queue_type' " + "See description of _`queue_type`_ option for the explanation. " + "The default value is the value defined in _`queue_type`_ " "or 'ram' if the latter is not set.")}}, {redis_server, #{value => ?T("Hostname"), @@ -1025,7 +1025,7 @@ doc() -> {registration_timeout, #{value => "timeout()", desc => - ?T("This is a global option for module 'mod_register'. " + ?T("This is a global option for module _`mod_register`_. " "It limits the frequency of registrations from a given " "IP or username. So, a user that tries to register a " "new account from the same IP address or JID during " @@ -1048,29 +1048,29 @@ doc() -> {router_cache_life_time, #{value => "timeout()", desc => - ?T("Same as 'cache_life_time', but applied to routing table cache " - "only. If not set, the value from 'cache_life_time' will be used.")}}, + ?T("Same as _`cache_life_time`_, but applied to routing table cache " + "only. If not set, the value from _`cache_life_time`_ will be used.")}}, {router_cache_missed, #{value => "true | false", desc => - ?T("Same as 'cache_missed', but applied to routing table cache " - "only. If not set, the value from 'cache_missed' will be used.")}}, + ?T("Same as _`cache_missed`_, but applied to routing table cache " + "only. If not set, the value from _`cache_missed`_ will be used.")}}, {router_cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as 'cache_size', but applied to routing table cache " - "only. If not set, the value from 'cache_size' will be used.")}}, + ?T("Same as _`cache_size`_, but applied to routing table cache " + "only. If not set, the value from _`cache_size`_ will be used.")}}, {router_db_type, #{value => "mnesia | redis | sql", desc => ?T("Database backend to use for routing information. " - "The default value is picked from 'default_ram_db' option, or " + "The default value is picked from _`default_ram_db`_ option, or " "if it's not set, 'mnesia' will be used.")}}, {router_use_cache, #{value => "true | false", desc => - ?T("Same as 'use_cache', but applied to routing table cache " - "only. If not set, the value from 'use_cache' will be used.")}}, + ?T("Same as _`use_cache`_, but applied to routing table cache " + "only. If not set, the value from _`use_cache`_ will be used.")}}, {rpc_timeout, #{value => "timeout()", desc => @@ -1147,8 +1147,8 @@ doc() -> #{value => "ram | file", desc => ?T("The type of a queue for s2s packets. " - "See description of 'queue_type' option for the explanation. " - "The default value is the value defined in 'queue_type' " + "See description of _`queue_type`_ option for the explanation. " + "The default value is the value defined in _`queue_type`_ " "or 'ram' if the latter is not set.")}}, {s2s_timeout, #{value => "timeout()", @@ -1176,7 +1176,7 @@ doc() -> desc => ?T("The option defines a set of shapers. Every shaper is assigned " "a name 'ShaperName' that can be used in other parts of the " - "configuration file, such as 'shaper_rules' option. The shaper " + "configuration file, such as _`shaper_rules`_ option. The shaper " "itself is defined by its 'Rate', where 'Rate' stands for the " "maximum allowed incoming rate in **bytes** per second. " "When a connection exceeds this limit, ejabberd stops reading " @@ -1192,9 +1192,9 @@ doc() -> #{value => "{ShaperRuleName: {Number|ShaperName: ACLRule|ACLName}}", desc => ?T("An entry allowing to declaring shaper to use for matching user/hosts. " - "Semantics is similar to 'access_rules' option, the only difference is " + "Semantics is similar to _`access_rules`_ option, the only difference is " "that instead using 'allow' or 'deny', a name of a shaper (defined in " - "'shaper' option) or a positive number should be used."), + "_`shaper`_ option) or a positive number should be used."), example => ["shaper_rules:", " connections_limit:", @@ -1210,29 +1210,29 @@ doc() -> {sm_cache_life_time, #{value => "timeout()", desc => - ?T("Same as 'cache_life_time', but applied to client sessions table cache " - "only. If not set, the value from 'cache_life_time' will be used.")}}, + ?T("Same as _`cache_life_time`_, but applied to client sessions table cache " + "only. If not set, the value from _`cache_life_time`_ will be used.")}}, {sm_cache_missed, #{value => "true | false", desc => - ?T("Same as 'cache_missed', but applied to client sessions table cache " - "only. If not set, the value from 'cache_missed' will be used.")}}, + ?T("Same as _`cache_missed`_, but applied to client sessions table cache " + "only. If not set, the value from _`cache_missed`_ will be used.")}}, {sm_cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as 'cache_size', but applied to client sessions table cache " - "only. If not set, the value from 'cache_size' will be used.")}}, + ?T("Same as _`cache_size`_, but applied to client sessions table cache " + "only. If not set, the value from _`cache_size`_ will be used.")}}, {sm_db_type, #{value => "mnesia | redis | sql", desc => ?T("Database backend to use for client sessions information. " - "The default value is picked from 'default_ram_db' option, or " + "The default value is picked from _`default_ram_db`_ option, or " "if it's not set, 'mnesia' will be used.")}}, {sm_use_cache, #{value => "true | false", desc => - ?T("Same as 'use_cache', but applied to client sessions table cache " - "only. If not set, the value from 'use_cache' will be used.")}}, + ?T("Same as _`use_cache`_, but applied to client sessions table cache " + "only. If not set, the value from _`use_cache`_ will be used.")}}, {sql_type, #{value => "mssql | mysql | odbc | pgsql | sqlite", desc => @@ -1258,7 +1258,7 @@ doc() -> note => "added in 20.12", desc => ?T("Path to the ODBC driver to use to connect to a Microsoft SQL " - "Server database. This option is only valid if the 'sql_type' " + "Server database. This option is only valid if the _`sql_type`_ " "option is set to 'mssql'. " "The default value is: 'libtdsodbc.so'")}}, {sql_password, @@ -1293,8 +1293,8 @@ doc() -> #{value => "ram | file", desc => ?T("The type of a request queue for the SQL server. " - "See description of 'queue_type' option for the explanation. " - "The default value is the value defined in 'queue_type' " + "See description of _`queue_type`_ option for the explanation. " + "The default value is the value defined in _`queue_type`_ " "or 'ram' if the latter is not set.")}}, {sql_server, #{value => ?T("Host"), @@ -1312,15 +1312,15 @@ doc() -> #{value => ?T("Path"), desc => ?T("A path to a file with CA root certificates that will " - "be used to verify SQL connections. Implies 'sql_ssl' " - "and 'sql_ssl_verify' options are set to 'true'. " + "be used to verify SQL connections. Implies _`sql_ssl`_ " + "and _`sql_ssl_verify`_ options are set to 'true'. " "There is no default which means " "certificate verification is disabled.")}}, {sql_ssl_certfile, #{value => ?T("Path"), desc => ?T("A path to a certificate file that will be used " - "for SSL connections to the SQL server. Implies 'sql_ssl' " + "for SSL connections to the SQL server. Implies _`sql_ssl`_ " "option is set to 'true'. There is no default which means " "ejabberd won't provide a client certificate to the SQL " "server.")}}, @@ -1328,8 +1328,8 @@ doc() -> #{value => "true | false", desc => ?T("Whether to verify SSL connection to the SQL server against " - "CA root certificates defined in 'sql_ssl_cafile' option. " - "Implies 'sql_ssl' option is set to 'true'. " + "CA root certificates defined in _`sql_ssl_cafile`_ option. " + "Implies _`sql_ssl`_ option is set to 'true'. " "The default value is 'false'.")}}, {sql_start_interval, #{value => "timeout()", diff --git a/src/mod_admin_update_sql.erl b/src/mod_admin_update_sql.erl index c87849748..4e932fe83 100644 --- a/src/mod_admin_update_sql.erl +++ b/src/mod_admin_update_sql.erl @@ -366,4 +366,4 @@ mod_doc() -> "from the default to the new schema. Check the section " "http://../database/#default-and-new-schemas[Default and New Schemas] for details. " "Please note that only PostgreSQL is supported. " - "When the module is loaded use 'update_sql' ejabberdctl command.")}. + "When the module is loaded use _`update_sql`_ API.")}. diff --git a/src/mod_announce.erl b/src/mod_announce.erl index e0501d96b..21213615c 100644 --- a/src/mod_announce.erl +++ b/src/mod_announce.erl @@ -930,7 +930,7 @@ mod_doc() -> "should be disabled for instances of ejabberd with hundreds of " "thousands users."), "", ?T("The Ad-hoc Commands are listed in the Server Discovery. " - "For this feature to work, 'mod_adhoc' must be enabled."), "", + "For this feature to work, _`mod_adhoc`_ must be enabled."), "", ?T("The specific JIDs where messages can be sent are listed below. " "The first JID in each entry will apply only to the specified " "virtual host example.org, while the JID between brackets " @@ -940,7 +940,7 @@ mod_doc() -> "online and connected to several resources, only the resource " "with the highest priority will receive the message. " "If the registered user is not connected, the message will be " - "stored offline in assumption that offline storage (see 'mod_offline') " + "stored offline in assumption that offline storage (see _`mod_offline`_) " "is enabled."), "- example.org/announce/online (example.org/announce/all-hosts/online)::", ?T("The message is sent to all connected users. If the user is " @@ -965,20 +965,20 @@ mod_doc() -> {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. diff --git a/src/mod_avatar.erl b/src/mod_avatar.erl index 3ad55f6d0..09329853d 100644 --- a/src/mod_avatar.erl +++ b/src/mod_avatar.erl @@ -469,8 +469,8 @@ mod_doc() -> "[XEP-0398: User Avatar to vCard-Based Avatars Conversion]."), "", ?T("Also, the module supports conversion between avatar " "image formats on the fly."), "", - ?T("The module depends on 'mod_vcard', 'mod_vcard_xupdate' and " - "'mod_pubsub'.")], + ?T("The module depends on _`mod_vcard`_, _`mod_vcard_xupdate`_ and " + "_`mod_pubsub`_.")], opts => [{convert, #{value => "{From: To}", diff --git a/src/mod_bosh.erl b/src/mod_bosh.erl index 1770d27a7..37a7fa809 100644 --- a/src/mod_bosh.erl +++ b/src/mod_bosh.erl @@ -240,27 +240,27 @@ mod_doc() -> {queue_type, #{value => "ram | file", desc => - ?T("Same as top-level 'queue_type' option, but applied to this module only.")}}, + ?T("Same as top-level _`queue_type`_ option, but applied to this module only.")}}, {ram_db_type, #{value => "mnesia | sql | redis", desc => - ?T("Same as 'default_ram_db' but applied to this module only.")}}, + ?T("Same as _`default_ram_db`_ but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}], + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}], example => ["listen:", " -", diff --git a/src/mod_caps.erl b/src/mod_caps.erl index 92869fc7d..c8f548169 100644 --- a/src/mod_caps.erl +++ b/src/mod_caps.erl @@ -595,25 +595,25 @@ mod_doc() -> "https://xmpp.org/extensions/xep-0115.html" "[XEP-0115: Entity Capabilities]."), ?T("The main purpose of the module is to provide " - "PEP functionality (see 'mod_pubsub').")], + "PEP functionality (see _`mod_pubsub`_).")], opts => [{db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. diff --git a/src/mod_configure.erl b/src/mod_configure.erl index 99a20ef3a..32c7ebb31 100644 --- a/src/mod_configure.erl +++ b/src/mod_configure.erl @@ -1564,4 +1564,4 @@ mod_doc() -> ?T("The module provides server configuration functionality via " "https://xmpp.org/extensions/xep-0050.html" "[XEP-0050: Ad-Hoc Commands]. This module requires " - "'mod_adhoc' to be loaded.")}. + "_`mod_adhoc`_ to be loaded.")}. diff --git a/src/mod_delegation.erl b/src/mod_delegation.erl index a588e81ef..3ae3b8a51 100644 --- a/src/mod_delegation.erl +++ b/src/mod_delegation.erl @@ -95,7 +95,7 @@ mod_doc() -> ?T("WARNING: Security issue: Namespace delegation gives components " "access to sensitive data, so permission should be granted " "carefully, only if you trust the component."), "", - ?T("NOTE: This module is complementary to 'mod_privilege' but can " + ?T("NOTE: This module is complementary to _`mod_privilege`_ but can " "also be used separately.")], opts => [{namespaces, diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 040cb6085..3303f17c0 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -331,7 +331,7 @@ mod_doc() -> "replaced with the virtual host name. NOTE: if GET requests " "are handled by 'mod_http_upload', the 'get_url' must match the " "'put_url'. Setting it to a different value only makes " - "sense if an external web server or 'mod_http_fileserver' " + "sense if an external web server or _`mod_http_fileserver`_ " "is used to serve the uploaded files.")}}, {service_url, #{desc => ?T("Deprecated.")}}, diff --git a/src/mod_last.erl b/src/mod_last.erl index 295a546f2..a7d36c791 100644 --- a/src/mod_last.erl +++ b/src/mod_last.erl @@ -344,20 +344,20 @@ mod_doc() -> [{db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. diff --git a/src/mod_mam.erl b/src/mod_mam.erl index e894f5f7d..abb2333cc 100644 --- a/src/mod_mam.erl +++ b/src/mod_mam.erl @@ -1456,7 +1456,7 @@ mod_doc() -> #{value => "true | false", desc => ?T("This option determines how ejabberd's " - "stream management code (see 'mod_stream_mgmt') " + "stream management code (see _`mod_stream_mgmt`_) " "handles unacknowledged messages when the " "connection is lost. Usually, such messages are " "either bounced or resent. However, neither is " @@ -1495,28 +1495,28 @@ mod_doc() -> #{value => "true | false", desc => ?T("Whether to destroy message archive of a room " - "(see 'mod_muc') when it gets destroyed. " + "(see _`mod_muc`_) when it gets destroyed. " "The default value is 'true'.")}}, {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}, {user_mucsub_from_muc_archive, #{value => "true | false", desc => diff --git a/src/mod_mix.erl b/src/mod_mix.erl index 82b5e41a4..002ef5696 100644 --- a/src/mod_mix.erl +++ b/src/mod_mix.erl @@ -106,12 +106,12 @@ mod_doc() -> "experimental feature, updated in 19.02, and is not " "yet ready to use in production. It's asserted that " "the MIX protocol is going to replace the MUC protocol " - "in the future (see 'mod_muc')."), "", + "in the future (see _`mod_muc`_)."), "", ?T("To learn more about how to use that feature, you can refer to " "our tutorial: https://docs.ejabberd.im/tutorials/mix-010/" "[Getting started with XEP-0369: Mediated Information " "eXchange (MIX) v0.1]."), "", - ?T("The module depends on 'mod_mam'.")], + ?T("The module depends on _`mod_mam`_.")], opts => [{access_create, #{value => ?T("AccessName"), @@ -136,7 +136,7 @@ mod_doc() -> {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}]}. -spec route(stanza()) -> ok. route(#iq{} = IQ) -> diff --git a/src/mod_mix_pam.erl b/src/mod_mix_pam.erl index c6348b92f..1fa5c1861 100644 --- a/src/mod_mix_pam.erl +++ b/src/mod_mix_pam.erl @@ -120,23 +120,23 @@ mod_doc() -> [{db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. -spec bounce_sm_packet({term(), stanza()}) -> {term(), stanza()}. bounce_sm_packet({_, #message{to = #jid{lresource = <<>>} = To, diff --git a/src/mod_mqtt.erl b/src/mod_mqtt.erl index a1621cc01..5d00408df 100644 --- a/src/mod_mqtt.erl +++ b/src/mod_mqtt.erl @@ -327,37 +327,37 @@ mod_doc() -> {queue_type, #{value => "ram | file", desc => - ?T("Same as top-level 'queue_type' option, " + ?T("Same as top-level _`queue_type`_ option, " "but applied to this module only.")}}, {ram_db_type, #{value => "mnesia", desc => - ?T("Same as top-level 'default_ram_db' option, " + ?T("Same as top-level _`default_ram_db`_ option, " "but applied to this module only.")}}, {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, " + ?T("Same as top-level _`default_db`_ option, " "but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, " + ?T("Same as top-level _`use_cache`_ option, " "but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, " + ?T("Same as top-level _`cache_size`_ option, " "but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, " + ?T("Same as top-level _`cache_missed`_ option, " "but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, " + ?T("Same as top-level _`cache_life_time`_ option, " "but applied to this module only.")}}]}. %%%=================================================================== diff --git a/src/mod_muc.erl b/src/mod_muc.erl index 46bfd20e5..ccecb6b66 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -1517,7 +1517,7 @@ mod_doc() -> {queue_type, #{value => "ram | file", desc => - ?T("Same as top-level 'queue_type' option, but applied to this module only.")}}, + ?T("Same as top-level _`queue_type`_ option, but applied to this module only.")}}, {regexp_room_id, #{value => "string()", desc => @@ -1634,7 +1634,7 @@ mod_doc() -> {logging, #{value => "true | false", desc => - ?T("The public messages are logged using 'mod_muc_log'. " + ?T("The public messages are logged using _`mod_muc_log`_. " "The default value is 'false'.")}}, {members_by_default, #{value => "true | false", diff --git a/src/mod_muc_admin.erl b/src/mod_muc_admin.erl index 360d414b1..2abeee45c 100644 --- a/src/mod_muc_admin.erl +++ b/src/mod_muc_admin.erl @@ -1413,4 +1413,4 @@ mod_doc() -> [?T("This module provides commands to administer local MUC " "services and their MUC rooms. It also provides simple " "WebAdmin pages to view the existing rooms."), "", - ?T("This module depends on 'mod_muc'.")]}. + ?T("This module depends on _`mod_muc`_.")]}. diff --git a/src/mod_muc_log.erl b/src/mod_muc_log.erl index 53223a8eb..8bcbc8bc0 100644 --- a/src/mod_muc_log.erl +++ b/src/mod_muc_log.erl @@ -1021,7 +1021,7 @@ mod_doc() -> ?T("- URLs on messages and subjects are converted to hyperlinks."), "", ?T("- Timezone used on timestamps is shown on the log files."), "", ?T("- A custom link can be added on top of each page."), "", - ?T("The module depends on 'mod_muc'.")], + ?T("The module depends on _`mod_muc`_.")], opts => [{access_log, #{value => ?T("AccessName"), diff --git a/src/mod_offline.erl b/src/mod_offline.erl index ff95767b6..1d367eb72 100644 --- a/src/mod_offline.erl +++ b/src/mod_offline.erl @@ -1325,19 +1325,19 @@ mod_doc() -> {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}], + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}], example => [{?T("This example allows power users to have as much as 5000 " "offline messages, administrators up to 2000, and all the " diff --git a/src/mod_ping.erl b/src/mod_ping.erl index 483f2e834..eee55825e 100644 --- a/src/mod_ping.erl +++ b/src/mod_ping.erl @@ -317,8 +317,8 @@ mod_doc() -> "server ping request in less than period defined " "in 'ping_ack_timeout' option: " "'kill' means destroying the underlying connection, " - "'none' means to do nothing. NOTE: when 'mod_stream_mgmt' " - "module is loaded and stream management is enabled by " + "'none' means to do nothing. NOTE: when _`mod_stream_mgmt`_ " + "is loaded and stream management is enabled by " "a client, killing the client connection doesn't mean " "killing the client session - the session will be kept " "alive in order to give the client a chance to resume it. " diff --git a/src/mod_privacy.erl b/src/mod_privacy.erl index 4f15b80c4..5ac26c2f5 100644 --- a/src/mod_privacy.erl +++ b/src/mod_privacy.erl @@ -887,25 +887,25 @@ mod_doc() -> "https://xmpp.org/extensions/xep-0191.html" "[XEP-0191: Blocking Command] which is implemented by " "'mod_blocking' module. However, you still need " - "'mod_privacy' loaded in order for 'mod_blocking' to work.")], + "'mod_privacy' loaded in order for _`mod_blocking`_ to work.")], opts => [{db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. diff --git a/src/mod_private.erl b/src/mod_private.erl index 36f1e8d2c..436aae222 100644 --- a/src/mod_private.erl +++ b/src/mod_private.erl @@ -128,23 +128,23 @@ mod_doc() -> [{db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. -spec get_sm_features({error, stanza_error()} | empty | {result, [binary()]}, jid(), jid(), binary(), binary()) -> diff --git a/src/mod_privilege.erl b/src/mod_privilege.erl index a6d4ba446..353a8da27 100644 --- a/src/mod_privilege.erl +++ b/src/mod_privilege.erl @@ -106,7 +106,7 @@ mod_doc() -> ?T("WARNING: Security issue: Privileged access gives components " "access to sensitive data, so permission should be granted " "carefully, only if you trust a component."), "", - ?T("NOTE: This module is complementary to 'mod_delegation', " + ?T("NOTE: This module is complementary to _`mod_delegation`_, " "but can also be used separately.")], opts => [{roster, diff --git a/src/mod_pubsub.erl b/src/mod_pubsub.erl index 8792b2ab9..2e40d8f0e 100644 --- a/src/mod_pubsub.erl +++ b/src/mod_pubsub.erl @@ -4269,7 +4269,7 @@ mod_doc() -> "(https://xmpp.org/extensions/xep-0163.html" "[XEP-0163: Personal Eventing via Pubsub]) " "is enabled in the default ejabberd configuration file, " - "and it requires 'mod_caps'.")], + "and it requires _`mod_caps`_.")], opts => [{access_createnode, #{value => "AccessName", @@ -4282,7 +4282,7 @@ mod_doc() -> {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to " + ?T("Same as top-level _`default_db`_ option, but applied to " "this module only.")}}, {default_node_config, #{value => "List of Key:Value", diff --git a/src/mod_push.erl b/src/mod_push.erl index ea1c3e649..5477c5792 100644 --- a/src/mod_push.erl +++ b/src/mod_push.erl @@ -191,23 +191,23 @@ mod_doc() -> {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. %%-------------------------------------------------------------------- %% ejabberd command callback. diff --git a/src/mod_push_keepalive.erl b/src/mod_push_keepalive.erl index aba4fbfae..e0e83f1e1 100644 --- a/src/mod_push_keepalive.erl +++ b/src/mod_push_keepalive.erl @@ -94,13 +94,13 @@ mod_options(_Host) -> mod_doc() -> #{desc => [?T("This module tries to keep the stream management " - "session (see 'mod_stream_mgmt') of a disconnected " + "session (see _`mod_stream_mgmt`_) of a disconnected " "mobile client alive if the client enabled push " "notifications for that session. However, the normal " "session resumption timeout is restored once a push " "notification is issued, so the session will be closed " "if the client doesn't respond to push notifications."), "", - ?T("The module depends on 'mod_push'.")], + ?T("The module depends on _`mod_push`_.")], opts => [{resume_timeout, #{value => "timeout()", @@ -109,8 +109,8 @@ mod_doc() -> "the session of a disconnected push client times out. " "This timeout is only in effect as long as no push " "notification is issued. Once that happened, the " - "resumption timeout configured for the 'mod_stream_mgmt' " - "module is restored. " + "resumption timeout configured for _`mod_stream_mgmt`_ " + "is restored. " "The default value is '72' hours.")}}, {wake_on_start, #{value => "true | false", diff --git a/src/mod_roster.erl b/src/mod_roster.erl index f204c9211..94cae4950 100644 --- a/src/mod_roster.erl +++ b/src/mod_roster.erl @@ -1345,29 +1345,29 @@ mod_doc() -> "This option does not affect the client in any way. " "This option is only useful if option 'versioning' is " "set to 'true'. The default value is 'false'. " - "IMPORTANT: if you use 'mod_shared_roster' or " - "'mod_shared_roster_ldap', you must set the value " + "IMPORTANT: if you use _`mod_shared_roster`_ or " + " _`mod_shared_roster_ldap`_, you must set the value " "of the option to 'false'.")}}, {db_type, #{value => "mnesia | sql", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}], + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}], example => ["modules:", " ...", diff --git a/src/mod_shared_roster.erl b/src/mod_shared_roster.erl index 16cc96a75..13ff90466 100644 --- a/src/mod_shared_roster.erl +++ b/src/mod_shared_roster.erl @@ -1266,7 +1266,7 @@ mod_doc() -> ?T("- Displayed: A list of groups that will be in the " "rosters of this group's members. A group of other vhost can " "be identified with 'groupid@vhost'."), "", - ?T("This module depends on 'mod_roster'. " + ?T("This module depends on _`mod_roster`_. " "If not enabled, roster queries will return 503 errors.")], opts => [{db_type, @@ -1274,25 +1274,25 @@ mod_doc() -> desc => ?T("Define the type of storage where the module will create " "the tables and store user information. The default is " - "the storage defined by the global option 'default_db', " + "the storage defined by the top-level _`default_db`_ option, " "or 'mnesia' if omitted. If 'sql' value is defined, " "make sure you have defined the database.")}}, - {use_cache, + {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}], + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}], example => [{?T("Take the case of a computer club that wants all its members " "seeing each other in their rosters. To achieve this, they " diff --git a/src/mod_shared_roster_ldap.erl b/src/mod_shared_roster_ldap.erl index 93c08e0c3..08fbe8793 100644 --- a/src/mod_shared_roster_ldap.erl +++ b/src/mod_shared_roster_ldap.erl @@ -796,7 +796,7 @@ mod_doc() -> "disable the check. Default value is 'true'.")}}] ++ [{Opt, #{desc => - {?T("Same as top-level '~s' option, but " + {?T("Same as top-level _`~s`_ option, but " "applied to this module only."), [Opt]}}} || Opt <- [ldap_backups, ldap_base, ldap_uids, ldap_deref_aliases, ldap_encrypt, ldap_password, ldap_port, ldap_rootdn, diff --git a/src/mod_stream_mgmt.erl b/src/mod_stream_mgmt.erl index b9443e5d2..5d2998500 100644 --- a/src/mod_stream_mgmt.erl +++ b/src/mod_stream_mgmt.erl @@ -962,12 +962,12 @@ mod_doc() -> {queue_type, #{value => "ram | file", desc => - ?T("Same as top-level 'queue_type' option, but applied to this module only.")}}, + ?T("Same as top-level _`queue_type`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. diff --git a/src/mod_vcard.erl b/src/mod_vcard.erl index e7cfff819..8e0d32a4a 100644 --- a/src/mod_vcard.erl +++ b/src/mod_vcard.erl @@ -640,23 +640,23 @@ mod_doc() -> {db_type, #{value => "mnesia | sql | ldap", desc => - ?T("Same as top-level 'default_db' option, but applied to this module only.")}}, + ?T("Same as top-level _`default_db`_ option, but applied to this module only.")}}, {use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}, {vcard, #{value => ?T("vCard"), desc => diff --git a/src/mod_vcard_ldap.erl b/src/mod_vcard_ldap.erl index c81c058f5..bc6e7ebca 100644 --- a/src/mod_vcard_ldap.erl +++ b/src/mod_vcard_ldap.erl @@ -571,7 +571,7 @@ mod_doc() -> }]}}] ++ [{Opt, #{desc => - {?T("Same as top-level '~s' option, but " + {?T("Same as top-level _`~s`_ option, but " "applied to this module only."), [Opt]}}} || Opt <- [ldap_base, ldap_servers, ldap_uids, ldap_deref_aliases, ldap_encrypt, ldap_password, diff --git a/src/mod_vcard_xupdate.erl b/src/mod_vcard_xupdate.erl index ab8df2c60..59ebc7f71 100644 --- a/src/mod_vcard_xupdate.erl +++ b/src/mod_vcard_xupdate.erl @@ -228,26 +228,26 @@ mod_doc() -> "frequently their presence. However, the overhead is significantly " "reduced by the use of caching, so you probably don't want " "to set 'use_cache' to 'false'."), "", - ?T("The module depends on 'mod_vcard'."), "", + ?T("The module depends on _`mod_vcard`_."), "", ?T("NOTE: Nowadays https://xmpp.org/extensions/xep-0153.html" "[XEP-0153] is used mostly as \"read-only\", i.e. modern " "clients don't publish their avatars inside vCards. Thus " "in the majority of cases the module is only used along " - "with 'mod_avatar' module for providing backward compatibility.")], + "with _`mod_avatar`_ for providing backward compatibility.")], opts => [{use_cache, #{value => "true | false", desc => - ?T("Same as top-level 'use_cache' option, but applied to this module only.")}}, + ?T("Same as top-level _`use_cache`_ option, but applied to this module only.")}}, {cache_size, #{value => "pos_integer() | infinity", desc => - ?T("Same as top-level 'cache_size' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_size`_ option, but applied to this module only.")}}, {cache_missed, #{value => "true | false", desc => - ?T("Same as top-level 'cache_missed' option, but applied to this module only.")}}, + ?T("Same as top-level _`cache_missed`_ option, but applied to this module only.")}}, {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level 'cache_life_time' option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. From ac4f2402610e9c494421a443c7f765dc2fe074c1 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 13:53:54 +0200 Subject: [PATCH 090/105] Produce module names with specific syntax, docs Makefile will convert to links --- src/ejabberd_commands_doc.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/ejabberd_commands_doc.erl b/src/ejabberd_commands_doc.erl index f63326182..b2be8a6a6 100644 --- a/src/ejabberd_commands_doc.erl +++ b/src/ejabberd_commands_doc.erl @@ -396,7 +396,7 @@ gen_doc(#ejabberd_commands{name=Name, tags=Tags, desc=Desc, longdesc=LongDesc, end, ModuleText = case IsDefinerMod of true -> - [?TAG(h2, <<"Module:">>), ?TAG(p, ?RAW(atom_to_list(Definer)))]; + [?TAG(h2, <<"Module:">>), ?TAG(p, ?RAW("*`"++atom_to_list(Definer)++"`*"))]; false -> [] end, From 655dcbcb7467db3cb0f89cf99d34cc2244e6c84f Mon Sep 17 00:00:00 2001 From: Badlop Date: Sat, 21 Aug 2021 20:50:02 +0200 Subject: [PATCH 091/105] New command to produce markdown with tags and their associated commands --- src/ejabberd_commands.erl | 10 ++++++++++ src/ejabberd_commands_doc.erl | 22 ++++++++++++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_commands.erl b/src/ejabberd_commands.erl index 8d875e82f..c00b1469a 100644 --- a/src/ejabberd_commands.erl +++ b/src/ejabberd_commands.erl @@ -91,6 +91,16 @@ get_commands_spec() -> "that will have example invocation include in markdown document"], result_desc = "0 if command failed, 1 when succeeded", args_example = ["/home/me/docs/api.html", "mod_admin", "java,json"], + result_example = ok}, + #ejabberd_commands{name = gen_markdown_doc_for_tags, tags = [documentation], + desc = "Generates markdown documentation for ejabberd_commands", + module = ejabberd_commands_doc, function = generate_tags_md, + args = [{file, binary}], + result = {res, rescode}, + args_desc = ["Path to file where generated " + "documentation should be stored"], + result_desc = "0 if command failed, 1 when succeeded", + args_example = ["/home/me/docs/tags.md"], result_example = ok}]. start_link() -> diff --git a/src/ejabberd_commands_doc.erl b/src/ejabberd_commands_doc.erl index b2be8a6a6..05948fa6c 100644 --- a/src/ejabberd_commands_doc.erl +++ b/src/ejabberd_commands_doc.erl @@ -28,6 +28,7 @@ -export([generate_html_output/3]). -export([generate_md_output/3]). +-export([generate_tags_md/1]). -include("ejabberd_commands.hrl"). @@ -360,6 +361,13 @@ gen_param(Name, Type, Desc, HTMLOutput) -> [?TAG(dt, [?TAG_R(strong, atom_to_list(Name)), <<" :: ">>, ?RAW(format_type(Type))]), ?TAG(dd, ?RAW(Desc))]. +make_tags(HTMLOutput) -> + TagsList = ejabberd_commands:get_tags_commands(1000000), + lists:map(fun(T) -> gen_tags(T, HTMLOutput) end, TagsList). + +gen_tags({TagName, Commands}, HTMLOutput) -> + [?TAG(h1, TagName) | [?TAG(p, ?RAW("* *`"++C++"`*")) || C <- Commands]]. + gen_doc(#ejabberd_commands{name=Name, tags=Tags, desc=Desc, longdesc=LongDesc, args=Args, args_desc=ArgsDesc, note=Note, definer=Definer, result=Result, result_desc=ResultDesc}=Cmd, HTMLOutput, Langs) -> @@ -389,7 +397,7 @@ gen_doc(#ejabberd_commands{name=Name, tags=Tags, desc=Desc, longdesc=LongDesc, [?TAG(dl, [gen_param(RName, Type, ResultDesc, HTMLOutput)])] end end, - TagsText = [?RAW(atom_to_list(Tag) ++ " ") || Tag <- Tags], + TagsText = [?RAW("*`"++atom_to_list(Tag)++"`* ") || Tag <- Tags], IsDefinerMod = case Definer of unknown -> true; _ -> lists:member(gen_mod, proplists:get_value(behaviour, Definer:module_info(attributes))) @@ -482,13 +490,23 @@ generate_md_output(File, RegExp, Languages) -> Langs = binary:split(Languages, <<",">>, [global]), Header = <<"---\ntitle: Administration API reference\ntoc: true\nmenu: API Reference\norder: 1\n" "// Autogenerated with 'ejabberdctl gen_markdown_doc_for_commands'\n---\n\n" - "This section describes API of ejabberd.">>, + "This section describes API of ejabberd.\n">>, Out = lists:map(fun(C) -> gen_doc(C, false, Langs) end, Cmds4), {ok, Fh} = file:open(File, [write]), io:format(Fh, "~ts~ts", [Header, Out]), file:close(Fh), ok. +generate_tags_md(File) -> + Header = <<"---\ntitle: API Tags\ntoc: true\nmenu: API Tags\norder: 2\n" + "// Autogenerated with 'ejabberdctl gen_markdown_doc_for_tags'\n---\n\n" + "This section enumerates the tags and their associated API.\n">>, + Tags = make_tags(false), + {ok, Fh} = file:open(File, [write]), + io:format(Fh, "~ts~ts", [Header, Tags]), + file:close(Fh), + ok. + html_pre() -> " From 8b6c90c2d9ce6029b793f9715e1f3c57554eb2cb Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 15:39:01 +0200 Subject: [PATCH 092/105] Tell dialyzer that gen_tags only cares about markdown output, not html --- src/ejabberd_commands_doc.erl | 1 + 1 file changed, 1 insertion(+) diff --git a/src/ejabberd_commands_doc.erl b/src/ejabberd_commands_doc.erl index 05948fa6c..eec334d04 100644 --- a/src/ejabberd_commands_doc.erl +++ b/src/ejabberd_commands_doc.erl @@ -365,6 +365,7 @@ make_tags(HTMLOutput) -> TagsList = ejabberd_commands:get_tags_commands(1000000), lists:map(fun(T) -> gen_tags(T, HTMLOutput) end, TagsList). +-dialyzer({no_match, gen_tags/2}). gen_tags({TagName, Commands}, HTMLOutput) -> [?TAG(h1, TagName) | [?TAG(p, ?RAW("* *`"++C++"`*")) || C <- Commands]]. From 4d0503b6b36c7bc704f3eb12b10b2db30b7add01 Mon Sep 17 00:00:00 2001 From: Badlop Date: Mon, 23 Aug 2021 15:49:52 +0200 Subject: [PATCH 093/105] Fix syntax in mod_disco example configuration --- src/mod_disco.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod_disco.erl b/src/mod_disco.erl index cf888bc4e..deb9d15a2 100644 --- a/src/mod_disco.erl +++ b/src/mod_disco.erl @@ -464,11 +464,11 @@ mod_doc() -> " -", " modules: all", " name: abuse-addresses", - " urls: [mailto:abuse@shakespeare.lit]", + " urls: [\"mailto:abuse@shakespeare.lit\"]", " -", " modules: [mod_muc]", " name: \"Web chatroom logs\"", - " urls: [http://www.example.org/muc-logs]", + " urls: [\"http://www.example.org/muc-logs\"]", " -", " modules: [mod_disco]", " name: feedback-addresses", From c952cc420b345a0e43fc4e6d819b3edb3ac12cb1 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 23 Aug 2021 21:28:15 +0200 Subject: [PATCH 094/105] node_flat_sql: Avoid catch-all clauses for RSM Explicitly catch invalid and timestamps specified by clients in RSM queries, but crash on other errors, rather than silently ignoring those. --- src/node_flat_sql.erl | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/node_flat_sql.erl b/src/node_flat_sql.erl index 724958eb1..240dc3760 100644 --- a/src/node_flat_sql.erl +++ b/src/node_flat_sql.erl @@ -1064,15 +1064,14 @@ rsm_page(Count, Index, Offset, Items) -> last = Last}. encode_stamp(Stamp) -> - case catch xmpp_util:decode_timestamp(Stamp) of - {MS,S,US} -> encode_now({MS,S,US}); - _ -> Stamp + try xmpp_util:decode_timestamp(Stamp) of + Now -> + encode_now(Now) + catch _:{bad_timestamp, _} -> + Stamp % We should return a proper error to the client instead. end. decode_stamp(Stamp) -> - case catch xmpp_util:encode_timestamp(decode_now(Stamp)) of - TimeStamp when is_binary(TimeStamp) -> TimeStamp; - _ -> Stamp - end. + xmpp_util:encode_timestamp(decode_now(Stamp)). encode_now({T1, T2, T3}) -> <<(misc:i2l(T1, 6))/binary, ":", From ebf03a3745ac4ba2089adc1ef872adfcfc081d56 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Mon, 23 Aug 2021 22:04:03 +0200 Subject: [PATCH 095/105] node_flat: Avoid catch-all clauses for RSM Apply the change made in the previous commit to Mnesia storage as well. --- src/node_flat.erl | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/src/node_flat.erl b/src/node_flat.erl index 97f149f9c..c597b9ce9 100644 --- a/src/node_flat.erl +++ b/src/node_flat.erl @@ -957,15 +957,12 @@ rsm_page(Count, Index, Offset, Items) -> last = Last}. encode_stamp(Stamp) -> - case catch xmpp_util:decode_timestamp(Stamp) of - {MS,S,US} -> {MS,S,US}; - _ -> Stamp + try xmpp_util:decode_timestamp(Stamp) + catch _:{bad_timestamp, _} -> + Stamp % We should return a proper error to the client instead. end. decode_stamp(Stamp) -> - case catch xmpp_util:encode_timestamp(Stamp) of - TimeStamp when is_binary(TimeStamp) -> TimeStamp; - _ -> Stamp - end. + xmpp_util:encode_timestamp(Stamp). transform({pubsub_state, {Id, Nidx}, Is, A, Ss}) -> {pubsub_state, {Id, Nidx}, Nidx, Is, A, Ss}; From 9643e18be7c46ca8ee1bd6a1cb8ee995c455136b Mon Sep 17 00:00:00 2001 From: loong0 Date: Thu, 26 Aug 2021 20:33:37 +0800 Subject: [PATCH 096/105] minor fix --- Makefile.in | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Makefile.in b/Makefile.in index c39195ac7..6549665f7 100644 --- a/Makefile.in +++ b/Makefile.in @@ -99,12 +99,12 @@ ifneq ($(INSTALLGROUP),) endif ifeq "$(MIX)" "mix" -IS_REBAR:=6 +REBAR_VER:=6 else -IS_REBAR:=$(shell expr `$(REBAR) --version | awk -F '[ .]' '/rebar / {print $$2}'`) +REBAR_VER:=$(shell $(REBAR) --version | awk -F '[ .]' '/rebar / {print $$2}') endif -ifeq "$(IS_REBAR)" "6" +ifeq "$(REBAR_VER)" "6" REBAR=$(MIX) SKIPDEPS= LISTDEPS=deps.tree @@ -118,7 +118,7 @@ ifeq "$(IS_REBAR)" "6" REBARREL=MIX_ENV=prod $(REBAR) release --overwrite REBARDEV=MIX_ENV=dev $(REBAR) release --overwrite else -ifeq "$(IS_REBAR)" "3" +ifeq "$(REBAR_VER)" "3" SKIPDEPS= LISTDEPS=tree UPDATEDEPS=upgrade @@ -398,7 +398,7 @@ TAGS: Makefile: Makefile.in -ifeq "$(IS_REBAR)" "3" +ifeq "$(REBAR_VER)" "3" dialyzer: $(REBAR) dialyzer else From b0da69f050399b376c93f8fc2a6898c6a974a83c Mon Sep 17 00:00:00 2001 From: Badlop Date: Wed, 4 Aug 2021 10:25:39 +0200 Subject: [PATCH 097/105] Send ping from server, not bare user JID (#3658) --- src/mod_ping.erl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod_ping.erl b/src/mod_ping.erl index eee55825e..f51b929f1 100644 --- a/src/mod_ping.erl +++ b/src/mod_ping.erl @@ -154,7 +154,7 @@ handle_info({iq_reply, timeout, JID}, State) -> {noreply, State#state{timers = Timers}}; handle_info({timeout, _TRef, {ping, JID}}, State) -> Host = State#state.host, - From = jid:remove_resource(JID), + From = jid:make(Host), IQ = #iq{from = From, to = JID, type = get, sub_els = [#ping{}]}, ejabberd_router:route_iq(IQ, JID, gen_mod:get_module_proc(Host, ?MODULE), From f77686481a041812e99f46cbb1ee3d6d2770e9de Mon Sep 17 00:00:00 2001 From: Badlop Date: Thu, 26 Aug 2021 17:21:23 +0200 Subject: [PATCH 098/105] Add internal links in WebAdmin Vhosts page --- src/ejabberd_web_admin.erl | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/ejabberd_web_admin.erl b/src/ejabberd_web_admin.erl index 7dc11b571..e699ffc78 100644 --- a/src/ejabberd_web_admin.erl +++ b/src/ejabberd_web_admin.erl @@ -602,12 +602,14 @@ list_vhosts2(Lang, Hosts) -> [?AC(<<"../server/", Host/binary, "/">>, Host)]), - ?XAC(<<"td">>, + ?XAE(<<"td">>, [{<<"class">>, <<"alignright">>}], - (pretty_string_int(RegisteredUsers))), - ?XAC(<<"td">>, + [?AC(<<"../server/", Host/binary, "/users/">>, + pretty_string_int(RegisteredUsers))]), + ?XAE(<<"td">>, [{<<"class">>, <<"alignright">>}], - (pretty_string_int(OnlineUsers)))]) + [?AC(<<"../server/", Host/binary, "/users/">>, + pretty_string_int(RegisteredUsers))]), end, SHosts)))])]. From 91350ad472a13cac23af62212e0ad93c656ba2b0 Mon Sep 17 00:00:00 2001 From: Badlop Date: Fri, 27 Aug 2021 13:39:06 +0200 Subject: [PATCH 099/105] Fix WebAdmin recent change --- src/ejabberd_web_admin.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ejabberd_web_admin.erl b/src/ejabberd_web_admin.erl index e699ffc78..ee50a0031 100644 --- a/src/ejabberd_web_admin.erl +++ b/src/ejabberd_web_admin.erl @@ -608,8 +608,8 @@ list_vhosts2(Lang, Hosts) -> pretty_string_int(RegisteredUsers))]), ?XAE(<<"td">>, [{<<"class">>, <<"alignright">>}], - [?AC(<<"../server/", Host/binary, "/users/">>, - pretty_string_int(RegisteredUsers))]), + [?AC(<<"../server/", Host/binary, "/online-users/">>, + pretty_string_int(OnlineUsers))])]) end, SHosts)))])]. From caf07692dbdabcd2e083530b18ee7a4eda90ea9b Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 5 Sep 2021 13:24:51 +0200 Subject: [PATCH 100/105] mod_register_web: Handle unknown host gracefully MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Return a proper error message on registration attempts against unknown hosts, rather than crashing. Thanks to Ingo Jürgensmann for reporting the bug. --- src/mod_register_web.erl | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/mod_register_web.erl b/src/mod_register_web.erl index 28bac0558..0e216c81c 100644 --- a/src/mod_register_web.erl +++ b/src/mod_register_web.erl @@ -507,14 +507,18 @@ form_del_get(Host, Lang) -> %% {error, not_allowed} | %% {error, invalid_jid} register_account(Username, Host, Password) -> - Access = mod_register_opt:access(Host), - case jid:make(Username, Host) of - error -> {error, invalid_jid}; - JID -> - case acl:match_rule(Host, Access, JID) of - deny -> {error, not_allowed}; - allow -> register_account2(Username, Host, Password) - end + try mod_register_opt:access(Host) of + Access -> + case jid:make(Username, Host) of + error -> {error, invalid_jid}; + JID -> + case acl:match_rule(Host, Access, JID) of + deny -> {error, not_allowed}; + allow -> register_account2(Username, Host, Password) + end + end + catch _:{module_not_loaded, mod_register, _Host} -> + {error, host_unknown} end. register_account2(Username, Host, Password) -> @@ -577,6 +581,8 @@ get_error_text({error, password_incorrect}) -> ?T("Incorrect password"); get_error_text({error, invalid_jid}) -> ?T("The username is not valid"); +get_error_text({error, host_unknown}) -> + ?T("Host unknown"); get_error_text({error, not_allowed}) -> ?T("Not allowed"); get_error_text({error, account_doesnt_exist}) -> From 868387a405093fad5df3d1ac09b3a4ec01e91800 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Sun, 5 Sep 2021 20:00:05 +0200 Subject: [PATCH 101/105] mod_http_upload_quota: Avoid 'max_days' race Try to spread clean-up runs for multiple hosts, rather than scheduling them in parallel. This should reduce I/O spikes, and avoid race conditions where multiple processes detect and then try to delete the same old files (if multiple hosts have the same 'docroot'). Fixes #3497. --- src/mod_http_upload_quota.erl | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/mod_http_upload_quota.erl b/src/mod_http_upload_quota.erl index 48b7b1958..5ed7fcefb 100644 --- a/src/mod_http_upload_quota.erl +++ b/src/mod_http_upload_quota.erl @@ -27,7 +27,6 @@ -author('holger@zedat.fu-berlin.de'). -define(TIMEOUT, timer:hours(24)). --define(INITIAL_TIMEOUT, timer:minutes(10)). -define(FORMAT(Error), file:format_error(Error)). -behaviour(gen_server). @@ -64,7 +63,7 @@ max_days :: pos_integer() | infinity, docroot :: binary(), disk_usage = #{} :: disk_usage(), - timers :: [timer:tref()]}). + timer :: reference() | undefined}). -type disk_usage() :: #{{binary(), binary()} => non_neg_integer()}. -type state() :: #state{}. @@ -166,12 +165,11 @@ init([ServerHost|_]) -> DocRoot1 = mod_http_upload_opt:docroot(ServerHost), DocRoot2 = mod_http_upload:expand_home(str:strip(DocRoot1, right, $/)), DocRoot3 = mod_http_upload:expand_host(DocRoot2, ServerHost), - Timers = if MaxDays == infinity -> []; - true -> - {ok, T1} = timer:send_after(?INITIAL_TIMEOUT, sweep), - {ok, T2} = timer:send_interval(?TIMEOUT, sweep), - [T1, T2] - end, + Timer = if MaxDays == infinity -> undefined; + true -> + Timeout = p1_rand:uniform(?TIMEOUT div 2), + erlang:send_after(Timeout, self(), sweep) + end, ejabberd_hooks:add(http_upload_slot_request, ServerHost, ?MODULE, handle_slot_request, 50), {ok, #state{server_host = ServerHost, @@ -179,7 +177,7 @@ init([ServerHost|_]) -> access_hard_quota = AccessHardQuota, max_days = MaxDays, docroot = DocRoot3, - timers = Timers}}. + timer = Timer}}. -spec handle_call(_, {pid(), _}, state()) -> {noreply, state()}. handle_call(Request, From, State) -> @@ -249,6 +247,7 @@ handle_info(sweep, #state{server_host = ServerHost, max_days = MaxDays} = State) when is_integer(MaxDays), MaxDays > 0 -> ?DEBUG("Got 'sweep' message for ~ts", [ServerHost]), + Timer = erlang:send_after(?TIMEOUT, self(), sweep), case file:list_dir(DocRoot) of {ok, Entries} -> BackThen = secs_since_epoch() - (MaxDays * 86400), @@ -264,17 +263,17 @@ handle_info(sweep, #state{server_host = ServerHost, ?ERROR_MSG("Cannot open document root ~ts: ~ts", [DocRoot, ?FORMAT(Error)]) end, - {noreply, State}; + {noreply, State#state{timer = Timer}}; handle_info(Info, State) -> ?ERROR_MSG("Unexpected info: ~p", [Info]), {noreply, State}. -spec terminate(normal | shutdown | {shutdown, _} | _, state()) -> ok. -terminate(Reason, #state{server_host = ServerHost, timers = Timers}) -> +terminate(Reason, #state{server_host = ServerHost, timer = Timer}) -> ?DEBUG("Stopping upload quota process for ~ts: ~p", [ServerHost, Reason]), ejabberd_hooks:delete(http_upload_slot_request, ServerHost, ?MODULE, handle_slot_request, 50), - lists:foreach(fun timer:cancel/1, Timers). + misc:cancel_timer(Timer). -spec code_change({down, _} | _, state(), _) -> {ok, state()}. code_change(_OldVsn, #state{server_host = ServerHost} = State, _Extra) -> From 3114ce4ed28e039803af732c1d29f6d0982fba29 Mon Sep 17 00:00:00 2001 From: Holger Weiss Date: Wed, 8 Sep 2021 18:34:20 +0200 Subject: [PATCH 102/105] ejabberd_admin: Fix ejabberd_piefxis commands These days, the ejabberd_piefxis commands expect their arguments to be handed over as binary strings. --- src/ejabberd_admin.erl | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/ejabberd_admin.erl b/src/ejabberd_admin.erl index 9cebd0bb5..0174cd7ff 100644 --- a/src/ejabberd_admin.erl +++ b/src/ejabberd_admin.erl @@ -254,19 +254,19 @@ get_commands_spec() -> module = ejabberd_piefxis, function = import_file, args_desc = ["Full path to the PIEFXIS file"], args_example = ["/var/lib/ejabberd/example.com.xml"], - args = [{file, string}], result = {res, rescode}}, + args = [{file, binary}], result = {res, rescode}}, #ejabberd_commands{name = export_piefxis, tags = [mnesia], desc = "Export data of all users in the server to PIEFXIS files (XEP-0227)", module = ejabberd_piefxis, function = export_server, args_desc = ["Full path to a directory"], args_example = ["/var/lib/ejabberd/"], - args = [{dir, string}], result = {res, rescode}}, + args = [{dir, binary}], result = {res, rescode}}, #ejabberd_commands{name = export_piefxis_host, tags = [mnesia], desc = "Export data of users in a host to PIEFXIS files (XEP-0227)", module = ejabberd_piefxis, function = export_host, args_desc = ["Full path to a directory", "Vhost to export"], args_example = ["/var/lib/ejabberd/", "example.com"], - args = [{dir, string}, {host, string}], result = {res, rescode}}, + args = [{dir, binary}, {host, binary}], result = {res, rescode}}, #ejabberd_commands{name = delete_mnesia, tags = [mnesia], desc = "Delete elements in Mnesia database for a given vhost", From 5abc03ff8fdd8bd68626637814ec65ee24d1adf7 Mon Sep 17 00:00:00 2001 From: Alexey Shchepin Date: Mon, 13 Sep 2021 08:15:11 +0300 Subject: [PATCH 103/105] Optimize MucSub processing --- include/mod_muc_room.hrl | 15 +- src/mod_muc.erl | 12 +- src/mod_muc_room.erl | 336 ++++++++++++++++++++++++++------------- src/mod_muc_sql.erl | 24 ++- 4 files changed, 267 insertions(+), 120 deletions(-) diff --git a/include/mod_muc_room.hrl b/include/mod_muc_room.hrl index f981f9e7c..bbe656575 100644 --- a/include/mod_muc_room.hrl +++ b/include/mod_muc_room.hrl @@ -87,6 +87,16 @@ nick = <<>> :: binary(), nodes = [] :: [binary()]}). +-record(muc_subscribers, + {subscribers = #{} :: subscribers(), + subscriber_nicks = #{} :: subscriber_nicks(), + subscriber_nodes = #{} :: subscriber_nodes() + }). + +-type subscribers() :: #{ljid() => #subscriber{}}. +-type subscriber_nicks() :: #{binary() => [ljid()]}. +-type subscriber_nodes() :: #{binary() => subscribers()}. + -record(activity, { message_time = 0 :: integer(), @@ -106,8 +116,7 @@ jid = #jid{} :: jid(), config = #config{} :: config(), users = #{} :: users(), - subscribers = #{} :: subscribers(), - subscriber_nicks = #{} :: subscriber_nicks(), + muc_subscribers = #muc_subscribers{} :: #muc_subscribers{}, last_voice_request_time = treap:empty() :: treap:treap(), robots = #{} :: robots(), nicks = #{} :: nicks(), @@ -126,5 +135,3 @@ -type robots() :: #{jid() => {binary(), stanza()}}. -type nicks() :: #{binary() => [ljid()]}. -type affiliations() :: #{ljid() => affiliation() | {affiliation(), binary()}}. --type subscribers() :: #{ljid() => #subscriber{}}. --type subscriber_nicks() :: #{binary() => [ljid()]}. diff --git a/src/mod_muc.erl b/src/mod_muc.erl index ccecb6b66..c8c1d4126 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -40,6 +40,7 @@ room_destroyed/4, store_room/4, store_room/5, + store_changes/4, restore_room/3, forget_room/3, create_room/3, @@ -91,6 +92,7 @@ -callback init(binary(), gen_mod:opts()) -> any(). -callback import(binary(), binary(), [binary()]) -> ok. -callback store_room(binary(), binary(), binary(), list(), list()|undefined) -> {atomic, any()}. +-callback store_changes(binary(), binary(), binary(), list()) -> {atomic, any()}. -callback restore_room(binary(), binary(), binary()) -> muc_room_opts() | error. -callback forget_room(binary(), binary(), binary()) -> {atomic, any()}. -callback can_use_nick(binary(), binary(), jid(), binary()) -> boolean(). @@ -111,7 +113,8 @@ -callback get_subscribed_rooms(binary(), binary(), jid()) -> {ok, [{jid(), binary(), [binary()]}]} | {error, db_failure}. --optional_callbacks([get_subscribed_rooms/3]). +-optional_callbacks([get_subscribed_rooms/3, + store_changes/4]). %%==================================================================== %% API @@ -313,6 +316,11 @@ store_room(ServerHost, Host, Name, Opts, ChangesHints) -> Mod = gen_mod:db_mod(LServer, ?MODULE), Mod:store_room(LServer, Host, Name, Opts, ChangesHints). +store_changes(ServerHost, Host, Name, ChangesHints) -> + LServer = jid:nameprep(ServerHost), + Mod = gen_mod:db_mod(LServer, ?MODULE), + Mod:store_changes(LServer, Host, Name, ChangesHints). + restore_room(ServerHost, Host, Name) -> LServer = jid:nameprep(ServerHost), Mod = gen_mod:db_mod(LServer, ?MODULE), @@ -570,7 +578,7 @@ unhibernate_room(ServerHost, Host, Room) -> case RMod:find_online_room(ServerHost, Room, Host) of error -> Proc = procname(ServerHost, {Room, Host}), - case ?GEN_SERVER:call(Proc, {unhibernate, Room, Host}) of + case ?GEN_SERVER:call(Proc, {unhibernate, Room, Host}, 20000) of {ok, _} = R -> R; _ -> error end; diff --git a/src/mod_muc_room.erl b/src/mod_muc_room.erl index fc03e50ef..035e851fd 100644 --- a/src/mod_muc_room.erl +++ b/src/mod_muc_room.erl @@ -641,7 +641,7 @@ handle_event({service_message, Msg}, _StateName, MessagePkt = #message{type = groupchat, body = xmpp:mk_text(Msg)}, send_wrapped_multiple( StateData#state.jid, - get_users_and_subscribers(StateData), + get_users_and_subscribers_with_node(?NS_MUCSUB_NODES_MESSAGES, StateData), MessagePkt, ?NS_MUCSUB_NODES_MESSAGES, StateData), @@ -705,7 +705,7 @@ handle_sync_event({change_state, NewStateData}, _From, true -> ok; _ -> - erlang:put(muc_subscribers, NewStateData#state.subscribers) + erlang:put(muc_subscribers, NewStateData#state.muc_subscribers#muc_subscribers.subscribers) end, {reply, {ok, NewStateData}, StateName, NewStateData}; handle_sync_event({process_item_change, Item, UJID}, _From, StateName, StateData) -> @@ -717,8 +717,10 @@ handle_sync_event({process_item_change, Item, UJID}, _From, StateName, StateData {reply, {ok, NSD}, StateName, NSD} end; handle_sync_event(get_subscribers, _From, StateName, StateData) -> - JIDs = lists:map(fun jid:make/1, - maps:keys(StateData#state.subscribers)), + JIDs = muc_subscribers_fold( + fun(_LBareJID, #subscriber{jid = JID}, Acc) -> + [JID | Acc] + end, [], StateData#state.muc_subscribers), {reply, {ok, JIDs}, StateName, StateData}; handle_sync_event({muc_subscribe, From, Nick, Nodes}, _From, StateName, StateData) -> @@ -762,7 +764,8 @@ handle_sync_event({muc_unsubscribe, From}, _From, StateName, {reply, {error, get_error_text(Err)}, StateName, StateData} end; handle_sync_event({is_subscribed, From}, _From, StateName, StateData) -> - IsSubs = try maps:get(jid:split(From), StateData#state.subscribers) of + IsSubs = try muc_subscribers_get( + jid:split(From), StateData#state.muc_subscribers) of #subscriber{nick = Nick, nodes = Nodes} -> {true, Nick, Nodes} catch _:{badkey, _} -> false end, @@ -899,7 +902,8 @@ terminate(Reason, _StateName, _ -> ok end, tab_remove_online_user(JID, StateData) - end, [], get_users_and_subscribers(StateData)), + end, [], get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_PARTICIPANTS, StateData)), disable_hibernate_timer(StateData), case StateData#state.hibernate_timer of @@ -991,7 +995,7 @@ process_groupchat_message(#message{from = From, lang = Lang} = Packet, StateData end, send_wrapped_multiple( jid:replace_resource(StateData#state.jid, FromNick), - get_users_and_subscribers(StateData), + get_users_and_subscribers_with_node(Node, StateData), NewPacket, Node, NewStateData1), NewStateData2 = case has_body_or_subject(NewPacket) of true -> @@ -1197,8 +1201,8 @@ get_participant_data(From, StateData) -> #user{nick = FromNick, role = Role} -> {FromNick, Role} catch _:{badkey, _} -> - try maps:get(jid:tolower(jid:remove_resource(From)), - StateData#state.subscribers) of + try muc_subscribers_get(jid:tolower(jid:remove_resource(From)), + StateData#state.muc_subscribers) of #subscriber{nick = FromNick} -> {FromNick, none} catch _:{badkey, _} -> @@ -1329,7 +1333,7 @@ maybe_strip_status_from_presence(From, Packet, StateData) -> close_room_if_temporary_and_empty(StateData1) -> case not (StateData1#state.config)#config.persistent andalso maps:size(StateData1#state.users) == 0 - andalso maps:size(StateData1#state.subscribers) == 0 of + andalso muc_subscribers_size(StateData1#state.muc_subscribers) == 0 of true -> ?INFO_MSG("Destroyed MUC room ~ts because it's temporary " "and empty", @@ -1342,6 +1346,17 @@ close_room_if_temporary_and_empty(StateData1) -> -spec get_users_and_subscribers(state()) -> users(). get_users_and_subscribers(StateData) -> + get_users_and_subscribers_aux( + StateData#state.muc_subscribers#muc_subscribers.subscribers, + StateData). + +-spec get_users_and_subscribers_with_node(binary(), state()) -> users(). +get_users_and_subscribers_with_node(Node, StateData) -> + get_users_and_subscribers_aux( + muc_subscribers_get_by_node(Node, StateData#state.muc_subscribers), + StateData). + +get_users_and_subscribers_aux(Subscribers, StateData) -> OnlineSubscribers = maps:fold( fun(LJID, _, Acc) -> LBareJID = jid:remove_resource(LJID), @@ -1365,7 +1380,7 @@ get_users_and_subscribers(StateData) -> true -> Acc end - end, StateData#state.users, StateData#state.subscribers). + end, StateData#state.users, Subscribers). -spec is_user_online(jid(), state()) -> boolean(). is_user_online(JID, StateData) -> @@ -1375,7 +1390,7 @@ is_user_online(JID, StateData) -> -spec is_subscriber(jid(), state()) -> boolean(). is_subscriber(JID, StateData) -> LJID = jid:tolower(jid:remove_resource(JID)), - maps:is_key(LJID, StateData#state.subscribers). + muc_subscribers_is_key(LJID, StateData#state.muc_subscribers). %% Check if the user is occupant of the room, or at least is an admin or owner. -spec is_occupant_or_admin(jid(), state()) -> boolean(). @@ -1869,16 +1884,15 @@ set_subscriber(JID, Nick, Nodes, #state{room = Room, host = Host, server_host = ServerHost} = StateData) -> BareJID = jid:remove_resource(JID), LBareJID = jid:tolower(BareJID), - Subscribers = maps:put(LBareJID, - #subscriber{jid = BareJID, - nick = Nick, - nodes = Nodes}, - StateData#state.subscribers), - Nicks = maps:put(Nick, [LBareJID], StateData#state.subscriber_nicks), - NewStateData = StateData#state{subscribers = Subscribers, - subscriber_nicks = Nicks}, + MUCSubscribers = + muc_subscribers_put( + #subscriber{jid = BareJID, + nick = Nick, + nodes = Nodes}, + StateData#state.muc_subscribers), + NewStateData = StateData#state{muc_subscribers = MUCSubscribers}, store_room(NewStateData, [{add_subscription, BareJID, Nick, Nodes}]), - case not maps:is_key(LBareJID, StateData#state.subscribers) of + case not muc_subscribers_is_key(LBareJID, StateData#state.muc_subscribers) of true -> send_subscriptions_change_notifications(BareJID, Nick, subscribe, NewStateData), ejabberd_hooks:run(muc_subscribed, ServerHost, [ServerHost, Room, Host, BareJID]); @@ -1956,7 +1970,8 @@ add_user_presence_un(JID, Presence, StateData) -> -spec find_jids_by_nick(binary(), state()) -> [jid()]. find_jids_by_nick(Nick, StateData) -> Users = case maps:get(Nick, StateData#state.nicks, []) of - [] -> maps:get(Nick, StateData#state.subscriber_nicks, []); + [] -> muc_subscribers_get_by_nick( + Nick, StateData#state.muc_subscribers); Us -> Us end, [jid:make(LJID) || LJID <- Users]. @@ -2020,10 +2035,10 @@ is_nick_change(JID, Nick, StateData) -> nick_collision(User, Nick, StateData) -> UserOfNick = case find_jid_by_nick(Nick, StateData) of false -> - try maps:get(Nick, StateData#state.subscriber_nicks) of - [J] -> J - catch _:{badkey, _} -> false - end; + case muc_subscribers_get_by_nick(Nick, StateData#state.muc_subscribers) of + [J] -> J; + [] -> false + end; J -> J end, (UserOfNick /= false andalso @@ -2433,6 +2448,11 @@ send_new_presence(NJID, Reason, IsInitialPresence, StateData, OldStateData) -> false -> {none, #presence{type = unavailable}} end, Affiliation = get_affiliation(LJID, StateData), + Node1 = case is_ra_changed(NJID, IsInitialPresence, StateData, OldStateData) of + true -> ?NS_MUCSUB_NODES_AFFILIATIONS; + false -> ?NS_MUCSUB_NODES_PRESENCE + end, + Node2 = ?NS_MUCSUB_NODES_PARTICIPANTS, UserMap = case is_room_overcrowded(StateData) orelse (not (presence_broadcast_allowed(NJID, StateData) orelse @@ -2440,7 +2460,10 @@ send_new_presence(NJID, Reason, IsInitialPresence, StateData, OldStateData) -> true -> #{LNJID => UserInfo}; false -> - get_users_and_subscribers(StateData) + %% TODO: optimize further + UM1 = get_users_and_subscribers_with_node(Node1, StateData), + UM2 = get_users_and_subscribers_with_node(Node2, StateData), + maps:merge(UM1, UM2) end, maps:fold( fun(LUJID, Info, _) -> @@ -2465,10 +2488,6 @@ send_new_presence(NJID, Reason, IsInitialPresence, StateData, OldStateData) -> Packet = xmpp:set_subtag( Pres, #muc_user{items = [Item], status_codes = StatusCodes}), - Node1 = case is_ra_changed(NJID, IsInitialPresence, StateData, OldStateData) of - true -> ?NS_MUCSUB_NODES_AFFILIATIONS; - false -> ?NS_MUCSUB_NODES_PRESENCE - end, send_wrapped(jid:replace_resource(StateData#state.jid, Nick), Info#user.jid, Packet, Node1, StateData), Type = xmpp:get_type(Packet), @@ -2476,7 +2495,6 @@ send_new_presence(NJID, Reason, IsInitialPresence, StateData, OldStateData) -> IsOccupant = Info#user.last_presence /= undefined, if (IsSubscriber and not IsOccupant) and (IsInitialPresence or (Type == unavailable)) -> - Node2 = ?NS_MUCSUB_NODES_PARTICIPANTS, send_wrapped(jid:replace_resource(StateData#state.jid, Nick), Info#user.jid, Packet, Node2, StateData); true -> @@ -2607,11 +2625,13 @@ send_nick_changing(JID, OldNick, StateData, end; (_, _, _) -> ok - end, ok, get_users_and_subscribers(StateData)). + end, ok, get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_PRESENCE, StateData)). -spec maybe_send_affiliation(jid(), affiliation(), state()) -> ok. maybe_send_affiliation(JID, Affiliation, StateData) -> LJID = jid:tolower(JID), + %% TODO: there should be a better way to check IsOccupant Users = get_users_and_subscribers(StateData), IsOccupant = case LJID of {LUser, LServer, <<"">>} -> @@ -2637,7 +2657,8 @@ send_affiliation(JID, Affiliation, StateData) -> role = none}, Message = #message{id = p1_rand:get_string(), sub_els = [#muc_user{items = [Item]}]}, - Users = get_users_and_subscribers(StateData), + Users = get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_AFFILIATIONS, StateData), Recipients = case (StateData#state.config)#config.anonymous of true -> maps:filter(fun(_, #user{role = moderator}) -> @@ -3271,6 +3292,13 @@ send_kickban_presence1(MJID, UJID, Reason, Code, Affiliation, StateData) -> #user{jid = RealJID, nick = Nick} = maps:get(jid:tolower(UJID), StateData#state.users), ActorNick = get_actor_nick(MJID, StateData), + %% TODO: optimize further + UserMap = + maps:merge( + get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_AFFILIATIONS, StateData), + get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_PARTICIPANTS, StateData)), maps:fold( fun(LJID, Info, _) -> IsSelfPresence = jid:tolower(UJID) == LJID, @@ -3304,7 +3332,7 @@ send_kickban_presence1(MJID, UJID, Reason, Code, Affiliation, true -> ok end - end, ok, get_users_and_subscribers(StateData)). + end, ok, UserMap). -spec get_actor_nick(undefined | jid(), state()) -> binary(). get_actor_nick(undefined, _StateData) -> @@ -3720,7 +3748,8 @@ send_config_change_info(New, #state{config = Old} = StateData) -> id = p1_rand:get_string(), sub_els = [#muc_user{status_codes = Codes}]}, send_wrapped_multiple(StateData#state.jid, - get_users_and_subscribers(StateData), + get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_CONFIG, StateData), Message, ?NS_MUCSUB_NODES_CONFIG, StateData); @@ -3872,26 +3901,23 @@ set_opts([{Opt, Val} | Opts], StateData) -> StateData#state{config = (StateData#state.config)#config{lang = Val}}; subscribers -> - {Subscribers, Nicks} = - lists:foldl( - fun({JID, Nick, Nodes}, {SubAcc, NickAcc}) -> - BareJID = case JID of - #jid{} -> jid:remove_resource(JID); - _ -> - ?ERROR_MSG("Invalid subscriber JID in set_opts ~p", [JID]), - jid:remove_resource(jid:make(JID)) - end, - LBareJID = jid:tolower(BareJID), - {maps:put( - LBareJID, - #subscriber{jid = BareJID, - nick = Nick, - nodes = Nodes}, - SubAcc), - maps:put(Nick, [LBareJID], NickAcc)} - end, {#{}, #{}}, Val), - StateData#state{subscribers = Subscribers, - subscriber_nicks = Nicks}; + MUCSubscribers = + lists:foldl( + fun({JID, Nick, Nodes}, MUCSubs) -> + BareJID = + case JID of + #jid{} -> jid:remove_resource(JID); + _ -> + ?ERROR_MSG("Invalid subscriber JID in set_opts ~p", [JID]), + jid:remove_resource(jid:make(JID)) + end, + muc_subscribers_put( + #subscriber{jid = BareJID, + nick = Nick, + nodes = Nodes}, + MUCSubs) + end, muc_subscribers_new(), Val), + StateData#state{muc_subscribers = MUCSubscribers}; affiliations -> StateData#state{affiliations = maps:from_list(Val)}; subject -> @@ -3926,12 +3952,12 @@ set_vcard_xupdate(State) -> -spec make_opts(state()) -> [{atom(), any()}]. make_opts(StateData) -> Config = StateData#state.config, - Subscribers = maps:fold( + Subscribers = muc_subscribers_fold( fun(_LJID, Sub, Acc) -> [{Sub#subscriber.jid, Sub#subscriber.nick, Sub#subscriber.nodes}|Acc] - end, [], StateData#state.subscribers), + end, [], StateData#state.muc_subscribers), [?MAKE_CONFIG_OPT(#config.title), ?MAKE_CONFIG_OPT(#config.description), ?MAKE_CONFIG_OPT(#config.allow_change_subj), ?MAKE_CONFIG_OPT(#config.allow_query_users), @@ -4013,7 +4039,8 @@ destroy_room(DEl, StateData) -> send_wrapped(jid:replace_resource(StateData#state.jid, Nick), Info#user.jid, Packet, ?NS_MUCSUB_NODES_CONFIG, StateData) - end, ok, get_users_and_subscribers(StateData)), + end, ok, get_users_and_subscribers_with_node( + ?NS_MUCSUB_NODES_CONFIG, StateData)), forget_room(StateData), {result, undefined, stop}. @@ -4248,30 +4275,35 @@ process_iq_mucsub(From, sub_els = [#muc_subscribe{nick = Nick}]} = Packet, StateData) -> LBareJID = jid:tolower(jid:remove_resource(From)), - try maps:get(LBareJID, StateData#state.subscribers) of + try muc_subscribers_get(LBareJID, StateData#state.muc_subscribers) of #subscriber{nick = Nick1} when Nick1 /= Nick -> Nodes = get_subscription_nodes(Packet), - case {nick_collision(From, Nick, StateData), - mod_muc:can_use_nick(StateData#state.server_host, - StateData#state.host, - From, Nick)} of - {true, _} -> + case nick_collision(From, Nick, StateData) of + true -> ErrText = ?T("That nickname is already in use by another occupant"), {error, xmpp:err_conflict(ErrText, Lang)}; - {_, false} -> - Err = case Nick of - <<>> -> - xmpp:err_jid_malformed(?T("Nickname can't be empty"), - Lang); - _ -> - xmpp:err_conflict(?T("That nickname is registered" - " by another person"), Lang) - end, - {error, Err}; - _ -> - NewStateData = set_subscriber(From, Nick, Nodes, StateData), - {result, subscribe_result(Packet), NewStateData} - end; + false -> + case mod_muc:can_use_nick(StateData#state.server_host, + StateData#state.host, + From, Nick) of + false -> + Err = case Nick of + <<>> -> + xmpp:err_jid_malformed( + ?T("Nickname can't be empty"), + Lang); + _ -> + xmpp:err_conflict( + ?T("That nickname is registered" + " by another person"), Lang) + end, + {error, Err}; + true -> + NewStateData = + set_subscriber(From, Nick, Nodes, StateData), + {result, subscribe_result(Packet), NewStateData} + end + end; #subscriber{} -> Nodes = get_subscription_nodes(Packet), NewStateData = set_subscriber(From, Nick, Nodes, StateData), @@ -4298,12 +4330,9 @@ process_iq_mucsub(From, #iq{type = set, sub_els = [#muc_unsubscribe{}]}, #state{room = Room, host = Host, server_host = ServerHost} = StateData) -> BareJID = jid:remove_resource(From), LBareJID = jid:tolower(BareJID), - try maps:get(LBareJID, StateData#state.subscribers) of - #subscriber{nick = Nick} -> - Nicks = maps:remove(Nick, StateData#state.subscriber_nicks), - Subscribers = maps:remove(LBareJID, StateData#state.subscribers), - NewStateData = StateData#state{subscribers = Subscribers, - subscriber_nicks = Nicks}, + try muc_subscribers_remove_exn(LBareJID, StateData#state.muc_subscribers) of + {MUCSubscribers, #subscriber{nick = Nick}} -> + NewStateData = StateData#state{muc_subscribers = MUCSubscribers}, store_room(NewStateData, [{del_subscription, LBareJID}]), send_subscriptions_change_notifications(BareJID, Nick, unsubscribe, StateData), ejabberd_hooks:run(muc_unsubscribed, ServerHost, [ServerHost, Room, Host, BareJID]), @@ -4326,7 +4355,7 @@ process_iq_mucsub(From, #iq{type = get, lang = Lang, true -> ShowJid = IsModerator orelse (StateData#state.config)#config.anonymous == false, - Subs = maps:fold( + Subs = muc_subscribers_fold( fun(_, #subscriber{jid = J, nick = N, nodes = Nodes}, Acc) -> case ShowJid of true -> @@ -4334,7 +4363,7 @@ process_iq_mucsub(From, #iq{type = get, lang = Lang, _ -> [#muc_subscription{nick = N, events = Nodes}|Acc] end - end, [], StateData#state.subscribers), + end, [], StateData#state.muc_subscribers), {result, #muc_subscriptions{list = Subs}, StateData}; _ -> Txt = ?T("Moderator privileges required"), @@ -4347,8 +4376,7 @@ process_iq_mucsub(_From, #iq{type = get, lang = Lang}, _StateData) -> -spec remove_subscriptions(state()) -> state(). remove_subscriptions(StateData) -> if not (StateData#state.config)#config.allow_subscription -> - StateData#state{subscribers = #{}, - subscriber_nicks = #{}}; + StateData#state{muc_subscribers = muc_subscribers_new()}; true -> StateData end. @@ -4597,7 +4625,7 @@ store_room(StateData, ChangesHints) -> true -> ok; _ -> - erlang:put(muc_subscribers, StateData#state.subscribers) + erlang:put(muc_subscribers, StateData#state.muc_subscribers#muc_subscribers.subscribers) end, ShouldStore = case (StateData#state.config)#config.persistent of true -> @@ -4611,7 +4639,15 @@ store_room(StateData, ChangesHints) -> end end, if ShouldStore -> - store_room_no_checks(StateData, ChangesHints); + case erlang:function_exported(Mod, store_changes, 4) of + true when ChangesHints /= [] -> + mod_muc:store_changes( + StateData#state.server_host, + StateData#state.host, StateData#state.room, + ChangesHints); + _ -> + store_room_no_checks(StateData, ChangesHints) + end; true -> ok end. @@ -4625,22 +4661,19 @@ store_room_no_checks(StateData, ChangesHints) -> -spec send_subscriptions_change_notifications(jid(), binary(), subscribe|unsubscribe, state()) -> ok. send_subscriptions_change_notifications(From, Nick, Type, State) -> {WJ, WN} = - maps:fold( - fun(_, #subscriber{nodes = Nodes, jid = JID}, {WithJid, WithNick} = Res) -> - case lists:member(?NS_MUCSUB_NODES_SUBSCRIBERS, Nodes) of - true -> - case (State#state.config)#config.anonymous == false orelse - get_role(JID, State) == moderator orelse - get_default_role(get_affiliation(JID, State), State) == moderator of - true -> - {[JID | WithJid], WithNick}; - _ -> - {WithJid, [JID | WithNick]} - end; - false -> - Res - end - end, {[], []}, State#state.subscribers), + maps:fold( + fun(_, #subscriber{jid = JID}, {WithJid, WithNick}) -> + case (State#state.config)#config.anonymous == false orelse + get_role(JID, State) == moderator orelse + get_default_role(get_affiliation(JID, State), State) == moderator of + true -> + {[JID | WithJid], WithNick}; + _ -> + {WithJid, [JID | WithNick]} + end + end, {[], []}, + muc_subscribers_get_by_node(?NS_MUCSUB_NODES_SUBSCRIBERS, + State#state.muc_subscribers)), if WJ /= [] -> Payload1 = case Type of subscribe -> #muc_subscribe{jid = From, nick = Nick}; @@ -4684,7 +4717,7 @@ send_wrapped(From, To, Packet, Node, State) -> _ -> false end, if IsOffline -> - try maps:get(LBareTo, State#state.subscribers) of + try muc_subscribers_get(LBareTo, State#state.muc_subscribers) of #subscriber{nodes = Nodes, jid = JID} -> case lists:member(Node, Nodes) of true -> @@ -4751,12 +4784,13 @@ send_wrapped_multiple(From, Users, Packet, Node, State) -> IsOffline = LP == undefined, if IsOffline -> LBareTo = jid:tolower(jid:remove_resource(To)), - case maps:find(LBareTo, State#state.subscribers) of + case muc_subscribers_find(LBareTo, State#state.muc_subscribers) of {ok, #subscriber{nodes = Nodes}} -> case lists:member(Node, Nodes) of true -> {Direct, [To | Wrapped]}; _ -> + %% TODO: check that this branch is never called Res end; _ -> @@ -4810,6 +4844,90 @@ send_wrapped_multiple(From, Users, Packet, Node, State) -> Wra, NewPacket2, true) end. +%%%---------------------------------------------------------------------- +%%% #muc_subscribers API +%%%---------------------------------------------------------------------- + +-spec muc_subscribers_new() -> #muc_subscribers{}. +muc_subscribers_new() -> + #muc_subscribers{}. + +-spec muc_subscribers_get(ljid(), #muc_subscribers{}) -> #subscriber{}. +muc_subscribers_get({_, _, _} = LJID, MUCSubscribers) -> + maps:get(LJID, MUCSubscribers#muc_subscribers.subscribers). + +-spec muc_subscribers_find(ljid(), #muc_subscribers{}) -> + {ok, #subscriber{}} | error. +muc_subscribers_find({_, _, _} = LJID, MUCSubscribers) -> + maps:find(LJID, MUCSubscribers#muc_subscribers.subscribers). + +-spec muc_subscribers_is_key(ljid(), #muc_subscribers{}) -> boolean(). +muc_subscribers_is_key({_, _, _} = LJID, MUCSubscribers) -> + maps:is_key(LJID, MUCSubscribers#muc_subscribers.subscribers). + +-spec muc_subscribers_size(#muc_subscribers{}) -> integer(). +muc_subscribers_size(MUCSubscribers) -> + maps:size(MUCSubscribers#muc_subscribers.subscribers). + +-spec muc_subscribers_fold(Fun, Acc, #muc_subscribers{}) -> Acc when + Fun :: fun((ljid(), #subscriber{}, Acc) -> Acc). +muc_subscribers_fold(Fun, Init, MUCSubscribers) -> + maps:fold(Fun, Init, MUCSubscribers#muc_subscribers.subscribers). + +-spec muc_subscribers_get_by_nick(binary(), #muc_subscribers{}) -> [#subscriber{}]. +muc_subscribers_get_by_nick(Nick, MUCSubscribers) -> + maps:get(Nick, MUCSubscribers#muc_subscribers.subscriber_nicks, []). + +-spec muc_subscribers_get_by_node(binary(), #muc_subscribers{}) -> subscribers(). +muc_subscribers_get_by_node(Node, MUCSubscribers) -> + maps:get(Node, MUCSubscribers#muc_subscribers.subscriber_nodes, #{}). + +-spec muc_subscribers_remove_exn(ljid(), #muc_subscribers{}) -> + {#muc_subscribers{}, #subscriber{}}. +muc_subscribers_remove_exn({_, _, _} = LJID, MUCSubscribers) -> + #muc_subscribers{subscribers = Subs, + subscriber_nicks = SubNicks, + subscriber_nodes = SubNodes} = MUCSubscribers, + Subscriber = maps:get(LJID, Subs), + #subscriber{nick = Nick, nodes = Nodes} = Subscriber, + NewSubNicks = maps:remove(Nick, SubNicks), + NewSubs = maps:remove(LJID, Subs), + NewSubNodes = + lists:foldl( + fun(Node, Acc) -> + NodeSubs = maps:get(Node, Acc, #{}), + NodeSubs2 = maps:remove(LJID, NodeSubs), + maps:put(Node, NodeSubs2, Acc) + end, SubNodes, Nodes), + {#muc_subscribers{subscribers = NewSubs, + subscriber_nicks = NewSubNicks, + subscriber_nodes = NewSubNodes}, Subscriber}. + +-spec muc_subscribers_put(#subscriber{}, #muc_subscribers{}) -> + #muc_subscribers{}. +muc_subscribers_put(Subscriber, MUCSubscribers) -> + #subscriber{jid = JID, + nick = Nick, + nodes = Nodes} = Subscriber, + #muc_subscribers{subscribers = Subs, + subscriber_nicks = SubNicks, + subscriber_nodes = SubNodes} = MUCSubscribers, + LJID = jid:tolower(JID), + NewSubs = maps:put(LJID, Subscriber, Subs), + NewSubNicks = maps:put(Nick, [LJID], SubNicks), + NewSubNodes = + lists:foldl( + fun(Node, Acc) -> + NodeSubs = maps:get(Node, Acc, #{}), + NodeSubs2 = maps:put(LJID, Subscriber, NodeSubs), + maps:put(Node, NodeSubs2, Acc) + end, SubNodes, Nodes), + #muc_subscribers{subscribers = NewSubs, + subscriber_nicks = NewSubNicks, + subscriber_nodes = NewSubNodes}. + + + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Detect messange stanzas that don't have meaningful content -spec has_body_or_subject(message()) -> boolean(). diff --git a/src/mod_muc_sql.erl b/src/mod_muc_sql.erl index 569cfac49..1310cde7b 100644 --- a/src/mod_muc_sql.erl +++ b/src/mod_muc_sql.erl @@ -29,7 +29,8 @@ -behaviour(mod_muc_room). %% API --export([init/2, store_room/5, restore_room/3, forget_room/3, +-export([init/2, store_room/5, store_changes/4, + restore_room/3, forget_room/3, can_use_nick/4, get_rooms/2, get_nick/3, set_nick/4, import/3, export/1]). -export([register_online_room/4, unregister_online_room/4, find_online_room/3, @@ -83,6 +84,12 @@ store_room(LServer, Host, Name, Opts, ChangesHints) -> end, ejabberd_sql:sql_transaction(LServer, F). +store_changes(LServer, Host, Name, Changes) -> + F = fun () -> + [change_room(Host, Name, Change) || Change <- Changes] + end, + ejabberd_sql:sql_transaction(LServer, F). + change_room(Host, Room, {add_subscription, JID, Nick, Nodes}) -> SJID = jid:encode(JID), SNodes = misc:term_to_expr(Nodes), @@ -185,13 +192,20 @@ get_rooms(LServer, Host) -> {selected, Subs} -> SubsD = lists:foldl( fun({Room, Jid, Nick, Nodes}, Dict) -> - dict:append(Room, {jid:decode(Jid), - Nick, ejabberd_sql:decode_term(Nodes)}, Dict) - end, dict:new(), Subs), + Sub = {jid:decode(Jid), + Nick, ejabberd_sql:decode_term(Nodes)}, + maps:update_with( + Room, + fun(SubAcc) -> + [Sub | SubAcc] + end, + [Sub], + Dict) + end, maps:new(), Subs), lists:map( fun({Room, Opts}) -> OptsD = ejabberd_sql:decode_term(Opts), - OptsD2 = case {dict:find(Room, SubsD), lists:keymember(subscribers, 1, OptsD)} of + OptsD2 = case {maps:find(Room, SubsD), lists:keymember(subscribers, 1, OptsD)} of {_, true} -> store_room(LServer, Host, Room, mod_muc:opts_to_binary(OptsD), undefined), OptsD; From f8167fc5d091bd4eb6352b51843652e38c9b7fe9 Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 14 Sep 2021 11:24:49 +0200 Subject: [PATCH 104/105] Update documentation to match the implemented options values (#3675) --- src/ejabberd_options_doc.erl | 14 ++++++++------ src/mod_admin_extra.erl | 11 +---------- src/mod_http_upload.erl | 5 +++-- src/mod_muc.erl | 9 +++++---- src/mod_ping.erl | 2 +- src/mod_register.erl | 2 +- src/mod_stream_mgmt.erl | 4 +++- src/mod_stun_disco.erl | 2 +- 8 files changed, 23 insertions(+), 26 deletions(-) diff --git a/src/ejabberd_options_doc.erl b/src/ejabberd_options_doc.erl index 28a6f6333..a725f4572 100644 --- a/src/ejabberd_options_doc.erl +++ b/src/ejabberd_options_doc.erl @@ -61,7 +61,7 @@ doc() -> desc => ?T("The time of a cached item to keep in cache. " "Once it's expired, the corresponding item is " - "erased from cache. The default value is 'one hour'. " + "erased from cache. The default value is '1 hour'. " "Several modules have a similar option; and some core " "ejabberd parts support similar options too, see " "_`auth_cache_life_time`_, _`oauth_cache_life_time`_, " @@ -382,14 +382,15 @@ doc() -> "from the stored information; for this reason, when this " "value is configured it cannot be changed to plain anymore. " "This format allows clients to authenticate using: " - "SASL PLAIN and SASL SCRAM-SHA-1.")]}}, + "SASL PLAIN and SASL SCRAM-SHA-1."), + ?T("The default value is 'plain'.")]}}, {auth_scram_hash, #{value => "sha | sha256 | sha512", desc => ?T("Hash algorith that should be used to store password in SCRAM format. " "You shouldn't change this if you already have passwords generated with " "a different algorithm - users that have such passwords will not be able " - "to authenticate.")}}, + "to authenticate. The default value is 'sha'.")}}, {auth_use_cache, #{value => "true | false", desc => @@ -678,7 +679,8 @@ doc() -> desc => ?T("The option defines the default language of server strings " "that can be seen by XMPP clients. If an XMPP client does not " - "possess 'xml:lang' attribute, the specified language is used.")}}, + "possess 'xml:lang' attribute, the specified language is used. " + "The default value is '\"en\"'.")}}, {ldap_servers, #{value => "[Host, ...]", desc => @@ -840,7 +842,7 @@ doc() -> "must have identical value on all nodes, or it will lead to subtle " "bugs. Usually leaving default value of this is option is best, " "tweak it only if you know what you are doing. " - "The default value is '1' minute.")}}, + "The default value is '1 minute'.")}}, {new_sql_schema, #{value => "true | false", desc => @@ -1154,7 +1156,7 @@ doc() -> #{value => "timeout()", desc => ?T("A time to wait before closing an idle s2s connection. " - "The default value is '10' minutes.")}}, + "The default value is '10 minutes'.")}}, {s2s_use_starttls, #{value => "true | false | optional | required", desc => diff --git a/src/mod_admin_extra.erl b/src/mod_admin_extra.erl index fe0dd2757..9834acf01 100644 --- a/src/mod_admin_extra.erl +++ b/src/mod_admin_extra.erl @@ -1652,14 +1652,6 @@ mod_doc() -> ?T("If you want to put a group Name with blankspaces, use the " "characters \"\' and \'\" to define when the Name starts and " "ends. See an example below.")], - opts => - [{module_resource, - #{value => ?T("Resource"), - desc => - ?T("Indicate the resource that the XMPP stanzas must use " - "in the FROM or TO JIDs. This is only useful in the " - "'get_vcard*' and 'set_vcard*' commands. The default " - "value is 'mod_admin_extra'.")}}], example => [{?T("With this configuration, vCards can only be modified with " "mod_admin_extra commands:"), @@ -1670,8 +1662,7 @@ mod_doc() -> " vcard_set:", " - allow: adminextraresource", "modules:", - " mod_admin_extra:", - " module_resource: \"modadminextraf8x,31ad\"", + " mod_admin_extra: {}", " mod_vcard:", " access_set: vcard_set"]}, {?T("Content of roster file for 'pushroster' command:"), diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 3303f17c0..1ff94eb4a 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -321,12 +321,13 @@ mod_doc() -> "used for file uploads. The keyword @HOST@ is replaced " "with the virtual host name. NOTE: different virtual " "hosts cannot use the same PUT URL. " - "The default value is \"https://@HOST@:5443\".")}}, + "The default value is \"https://@HOST@:5443/upload\".")}}, {get_url, #{value => ?T("URL"), desc => ?T("This option specifies the initial part of the GET URLs " - "used for downloading the files. By default, it is set " + "used for downloading the files. The default value is 'undefined'. " + "When this option is 'undefined', this option is set " "to the same value as 'put_url'. The keyword @HOST@ is " "replaced with the virtual host name. NOTE: if GET requests " "are handled by 'mod_http_upload', the 'get_url' must match the " diff --git a/src/mod_muc.erl b/src/mod_muc.erl index c8c1d4126..05b76f2fc 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -1366,19 +1366,19 @@ mod_doc() -> desc => ?T("To configure who is allowed to create new rooms at the " "Multi-User Chat service, this option can be used. " - "By default any account in the local ejabberd server is " + "The default value is 'all', which means everyone is " "allowed to create rooms.")}}, {access_persistent, #{value => ?T("AccessName"), desc => ?T("To configure who is allowed to modify the 'persistent' room option. " - "By default any account in the local ejabberd server is allowed to " + "The default value is 'all', which means everyone is allowed to" "modify that option.")}}, {access_mam, #{value => ?T("AccessName"), desc => ?T("To configure who is allowed to modify the 'mam' room option. " - "By default any account in the local ejabberd server is allowed to " + "The default value is 'all', which means everyone is allowed to" "modify that option.")}}, {access_register, #{value => ?T("AccessName"), @@ -1494,7 +1494,8 @@ mod_doc() -> ?T("This option defines after how many users in the room, " "it is considered overcrowded. When a MUC room is considered " "overcrowed, presence broadcasts are limited to reduce load, " - "traffic and excessive presence \"storm\" received by participants.")}}, + "traffic and excessive presence \"storm\" received by participants. " + "The default value is '1000'.")}}, {min_message_interval, #{value => ?T("Number"), desc => diff --git a/src/mod_ping.erl b/src/mod_ping.erl index f51b929f1..f233b2ae8 100644 --- a/src/mod_ping.erl +++ b/src/mod_ping.erl @@ -300,7 +300,7 @@ mod_doc() -> desc => ?T("How long to wait before deeming that a client " "has not answered a given server ping request. " - "The default value is '32' seconds.")}}, + "The default value is 'undefined'.")}}, {send_pings, #{value => "true | false", desc => diff --git a/src/mod_register.erl b/src/mod_register.erl index 919440b23..379318da6 100644 --- a/src/mod_register.erl +++ b/src/mod_register.erl @@ -679,7 +679,7 @@ mod_doc() -> "https://en.wikipedia.org/wiki/Entropy_(information_theory)" "[Shannon entropy] for passwords. The value 'Entropy' is a " "number of bits of entropy. The recommended minimum is 32 bits. " - "The default is 0, i.e. no checks are performed.")}}, + "The default is '0', i.e. no checks are performed.")}}, {registration_watchers, #{value => "[JID, ...]", desc => diff --git a/src/mod_stream_mgmt.erl b/src/mod_stream_mgmt.erl index 5d2998500..f60f6722b 100644 --- a/src/mod_stream_mgmt.erl +++ b/src/mod_stream_mgmt.erl @@ -970,4 +970,6 @@ mod_doc() -> {cache_life_time, #{value => "timeout()", desc => - ?T("Same as top-level _`cache_life_time`_ option, but applied to this module only.")}}]}. + ?T("Same as top-level _`cache_life_time`_ option, " + "but applied to this module only. " + "The default value is '48 hours'.")}}]}. diff --git a/src/mod_stun_disco.erl b/src/mod_stun_disco.erl index bb701b96b..6e7592453 100644 --- a/src/mod_stun_disco.erl +++ b/src/mod_stun_disco.erl @@ -176,7 +176,7 @@ mod_doc() -> "clients. If ejabberd's built-in TURN service is used, " "TURN relays allocated using temporary credentials will " "be terminated shortly after the credentials expired. The " - "default value is '12' hours. Note that restarting the " + "default value is '12 hours'. Note that restarting the " "ejabberd node invalidates any temporary credentials " "offered before the restart unless a 'secret' is " "specified (see below).")}}, From 2f5b15129a326e9c9729779cc609bcecf05be0ee Mon Sep 17 00:00:00 2001 From: Badlop Date: Tue, 14 Sep 2021 15:13:37 +0200 Subject: [PATCH 105/105] Fix previous commit: add forgotten endline blankspaces --- src/mod_muc.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod_muc.erl b/src/mod_muc.erl index 05b76f2fc..b2ebc5c61 100644 --- a/src/mod_muc.erl +++ b/src/mod_muc.erl @@ -1372,13 +1372,13 @@ mod_doc() -> #{value => ?T("AccessName"), desc => ?T("To configure who is allowed to modify the 'persistent' room option. " - "The default value is 'all', which means everyone is allowed to" + "The default value is 'all', which means everyone is allowed to " "modify that option.")}}, {access_mam, #{value => ?T("AccessName"), desc => ?T("To configure who is allowed to modify the 'mam' room option. " - "The default value is 'all', which means everyone is allowed to" + "The default value is 'all', which means everyone is allowed to " "modify that option.")}}, {access_register, #{value => ?T("AccessName"),