forked from asterisk/asterisk
-
Notifications
You must be signed in to change notification settings - Fork 1
/
asterisk-18.13.0-summary.html
149 lines (149 loc) · 23.8 KB
/
asterisk-18.13.0-summary.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-18.13.0</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-18.13.0</h3><h3 align="center">Date: 2022-06-23</h3><h3 align="center"><[email protected]></h3><hr><h2 align="center">Table of Contents</h2><ol>
<li><a href="#summary">Summary</a></li>
<li><a href="#contributors">Contributors</a></li>
<li><a href="#closed_issues">Closed Issues</a></li>
<li><a href="#commits">Other Changes</a></li>
<li><a href="#diffstat">Diffstat</a></li>
</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-18.12.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
<tr valign="top"><td width="33%">13 Naveen Albert <[email protected]><br/>3 Alexei Gradinari <[email protected]><br/>2 Kevin Harwell <[email protected]><br/>2 Sean Bright <[email protected]><br/>2 Asterisk Development Team <[email protected]><br/>2 George Joseph <[email protected]><br/>1 Trevor Peirce <[email protected]><br/>1 Moritz Fain <[email protected]><br/>1 Maximilian Fridrich <[email protected]><br/>1 Joshua C. Colp <[email protected]><br/>1 Thomas Guebels <[email protected]><br/>1 Christof Efkemann <[email protected]><br/>1 Shloime Rosenblum <[email protected]><br/></td><td width="33%">1 Moritz Fain<br/></td><td width="33%">12 N A <[email protected]><br/>2 George Joseph <[email protected]><br/>2 Alexei Gradinari <[email protected]><br/>1 Shloime Rosenblum <[email protected]><br/>1 Marco Paland <[email protected]><br/>1 Matthias Hensler <[email protected]><br/>1 Maximilian Fridrich <[email protected]><br/>1 Moritz Fain <[email protected]><br/>1 Ray Crumrine <[email protected]><br/>1 waltermoeller <[email protected]><br/>1 Josh Alberts <[email protected]><br/>1 LA <[email protected]><br/>1 Christof Efkemann <[email protected]><br/>1 Moritz Fain<br/>1 Thomas Guebels <[email protected]><br/>1 Ray Crumrine<br/></td></tr>
</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>Improvement</h3><h4>Category: Documentation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30090">ASTERISK-30090</a>: xmldocs: Use example tags for examples<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6ae9a5835e41631f66e2b6d3d42e611d1a4e940b">[6ae9a5835e]</a> Naveen Albert -- xmldocs: Improve examples.</li>
</ul><br><h4>Category: Resources/res_agi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30058">ASTERISK-30058</a>: Evaluate dialplan functions and variables in agi exec<br/>Reported by: Shloime Rosenblum<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1978732b8b8acebacf5d6f71d456f89c77bf1517">[1978732b8b]</a> Shloime Rosenblum -- res_agi: Evaluate dialplan functions and variables in agi exec if enabled</li>
</ul><br><h4>Category: Resources/res_ari_channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30027">ASTERISK-30027</a>: ari: expose channel driver's unique id (i.e. Call-ID for chan_sip/chan_pjsip) in ARI channel resource<br/>Reported by: Moritz Fain<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=aaa14d3c7d91245697255687571b5e9109caca3f">[aaa14d3c7d]</a> Moritz Fain -- ari: expose channel driver's unique id to ARI channel resource</li>
</ul><br><h4>Category: Resources/res_parking</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30086">ASTERISK-30086</a>: res_parking: Warn when invalid parking space requested<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=89f3def351a252c36445132aea2d6db24a5a3885">[89f3def351]</a> Naveen Albert -- res_parking: Warn if out of bounds parking spot requested.</li>
</ul><br><h4>Category: Resources/res_pjsip_outbound_registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29845">ASTERISK-29845</a>: res_pjsip_outbound_registration: Show time remaining until registration lapses<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d5d3788648b730efdae5caccc1f3d57ae04ba52d">[d5d3788648]</a> Naveen Albert -- res_pjsip_outbound_registration: Show time until expiration</li>
</ul><br><h4>Category: Resources/res_pjsip_pubsub</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29906">ASTERISK-29906</a>: [patch] update RLS to reflect the changes to the lists<br/>Reported by: Alexei Gradinari<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1c5f023af9ebe253f9c2ca9771ef229b6aff3360">[1c5f023af9]</a> Alexei Gradinari -- res_pjsip_pubsub: delete scheduled notification on RLS update</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29891">ASTERISK-29891</a>: [patch] provide a display name for RLS subscriptions<br/>Reported by: Alexei Gradinari<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7480ebe9ea08dad4330c2c7cb65e039f4b0ae80b">[7480ebe9ea]</a> Alexei Gradinari -- res_pjsip_pubsub: XML sanitized RLS display name</li>
</ul><br><h3>Bug</h3><h4>Category: Applications/app_sayunixtime</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30092">ASTERISK-30092</a>: DateTime application: wrong inflection for one o'clock in German<br/>Reported by: Christof Efkemann<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0e96b76d01701bf2276843488a43915e8e87e984">[0e96b76d01]</a> Christof Efkemann -- app_sayunixtime: Use correct inflection for German time.</li>
</ul><br><h4>Category: Channels/chan_dahdi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30043">ASTERISK-30043</a>: Wrong party is disconnected when hook-flashing on 3-way bridge<br/>Reported by: Josh Alberts<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1beccc9a0dce12b34f333160257ea30d47e5298e">[1beccc9a0d]</a> Naveen Albert -- sig_analog: Fix broken three-way conferencing.</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29993">ASTERISK-29993</a>: chan_dahdi: Operator control option borks both lines involved on callee disconnect<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8a041fab79fa967adbcea871130fca34103cc62a">[8a041fab79]</a> Naveen Albert -- chan_dahdi: Fix broken operator mode clearing.</li>
</ul><br><h4>Category: Channels/chan_iax2</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30064">ASTERISK-30064</a>: pbx: iax2 switch causes crash due to deadlock and assertion<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=879a6a59975704a50f9d1af74ffe7ac7deb1a086">[879a6a5997]</a> Naveen Albert -- chan_iax2: Prevent deadlock due to duplicate autoservice.</li>
</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30044">ASTERISK-30044</a>: GCC 12 issues<br/>Reported by: George Joseph<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ad6af63895f856223ec95c22e2c6b5983a528c02">[ad6af63895]</a> George Joseph -- GCC12: Fixes for 16+</li>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dfd2e4006be54c017f8d101118c5d0b284213f60">[dfd2e4006b]</a> George Joseph -- GCC12: Fixes for 18+. state_id_by_topic comparing wrong value</li>
</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30060">ASTERISK-30060</a>: loader: format warnings in dev mode<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=91ab28608695fbd10f4d0a462e54bc15f35c3ccb">[91ab286086]</a> Sean Bright -- loader.c: Use portable printf conversion specifier for int64.</li>
</ul><br><h4>Category: Core/Logging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30097">ASTERISK-30097</a>: console: Recent documentation changes for connecting to remote console are inconsistent<br/>Reported by: Matthias Hensler<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ae08471d8b0bff35fef9b6aca565bd3e85f6568d">[ae08471d8b]</a> Naveen Albert -- asterisk.c: Fix incompatibility warnings for remote console.</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30039">ASTERISK-30039</a>: cli: Targeted debug on startup deadlocks and creates unstable system<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=193688dd23d75408beeada1197cb0c15800d0e66">[193688dd23]</a> Naveen Albert -- loader: Prevent deadlock using tab completion.</li>
</ul><br><h4>Category: PBX/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30064">ASTERISK-30064</a>: pbx: iax2 switch causes crash due to deadlock and assertion<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=879a6a59975704a50f9d1af74ffe7ac7deb1a086">[879a6a5997]</a> Naveen Albert -- chan_iax2: Prevent deadlock due to duplicate autoservice.</li>
</ul><br><h4>Category: Resources/res_calendar</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29981">ASTERISK-29981</a>: res_calendar: Asterisk crashes when starting, and will not run<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d0d74d060bbd7867c403dae8815cfed4af5e47f7">[d0d74d060b]</a> Naveen Albert -- res_calendar: Prevent assertion if event ends in past.</li>
</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29603">ASTERISK-29603</a>: res_pjsip: UPDATE/re-INVITE not sent when "timers=always" is specified in pjsip.conf<br/>Reported by: Ray Crumrine<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ff80a6111827cce10810fec3632da5cd6c17b677">[ff80a61118]</a> Trevor Peirce -- res_pjsip: Actually enable session timers when timers=always</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30051">ASTERISK-30051</a>: res_pjsip: No video after un-hold with moh_passthrough=yes<br/>Reported by: Maximilian Fridrich<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6e8e5e49afb8e089cd2a2e37f9881639a09574d9">[6e8e5e49af]</a> Maximilian Fridrich -- chan_pjsip: Only set default audio stream on hold.</li>
</ul><br><h4>Category: Resources/res_pjsip_registrar</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30042">ASTERISK-30042</a>: res_pjsip_transport_websocket: Registration over websocket returns a rewritten contact<br/>Reported by: Thomas Guebels<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9f6bda1821fd2299b4f3cdd22572877014ab0792">[9f6bda1821]</a> Thomas Guebels -- res_pjsip_transport_websocket: save the original contact host</li>
</ul><br><h4>Category: Resources/res_pjsip_transport_websocket</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30065">ASTERISK-30065</a>: pjsip: Open Websocket connection is not reused for outgoing requests<br/>Reported by: LA<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c5c858287a6d7fb17af84e6abd90447afb26eb94">[c5c858287a]</a> Joshua C. Colp -- res_pjsip_transport_websocket: Also set the remote name.</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30042">ASTERISK-30042</a>: res_pjsip_transport_websocket: Registration over websocket returns a rewritten contact<br/>Reported by: Thomas Guebels<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9f6bda1821fd2299b4f3cdd22572877014ab0792">[9f6bda1821]</a> Thomas Guebels -- res_pjsip_transport_websocket: save the original contact host</li>
</ul><br><h4>Category: Sounds</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30059">ASTERISK-30059</a>: menuselect: libxml include fails under Gentoo<br/>Reported by: waltermoeller<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=db824d8f6df231b7cf8ab17b910e1d52b4fd480e">[db824d8f6d]</a> Sean Bright -- ast_pkgconfig.m4: AST_PKG_CONFIG_CHECK() relies on sed.</li>
</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24601">ASTERISK-24601</a>: [patch]Missing RFC4235 tags and attributes in PJSIP NOTIFY event: dialog XML body<br/>Reported by: Marco Paland<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa84b4c6922a36adf9f864a0b1e75b618741c0b7">[fa84b4c692]</a> Alexei Gradinari -- res_pjsip_dialog_info_body_generator: Set LOCAL target URI as local URI</li>
</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30065">ASTERISK-30065</a>: pjsip: Open Websocket connection is not reused for outgoing requests<br/>Reported by: LA<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c5c858287a6d7fb17af84e6abd90447afb26eb94">[c5c858287a]</a> Joshua C. Colp -- res_pjsip_transport_websocket: Also set the remote name.</li>
</ul><br><h3>New Feature</h3><h4>Category: Applications/app_confbridge</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30036">ASTERISK-30036</a>: app_confbridge: Add CONFBRIDGE_CHANNELS function<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b0de0675653f4e0fd28e0ad9d8929aeee16a58e6">[b0de067565]</a> Naveen Albert -- app_confbridge: Add function to retrieve channels.</li>
</ul><br><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30063">ASTERISK-30063</a>: app_voicemail: Add option to prevent deletion of messages<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0e65855b9df8897cd9f51cb7da81bc8cf0d1e536">[0e65855b9d]</a> Naveen Albert -- app_voicemail: Add option to prevent message deletion.</li>
</ul><br><h4>Category: Resources/res_parking</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-30087">ASTERISK-30087</a>: res_parking: Add music on hold override option<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c277fd02e01df8e3e656eadbf06a4bde88c3f4fb">[c277fd02e0]</a> Naveen Albert -- res_parking: Add music on hold override option.</li>
</ul><br><h4>Category: Resources/res_pjsip_outbound_registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-29965">ASTERISK-29965</a>: res_pjsip_outbound_registration: Make max registration delay configurable<br/>Reported by: N A<ul>
<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b81fbbc6dce48744af506745e7b77d61abdbf1c7">[b81fbbc6dc]</a> Naveen Albert -- res_pjsip_outbound_registration: Make max random delay configurable.</li>
</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9e716582f14e079e76ecdbb800e0a7e89a20ade6">9e716582f1</a></td><td>Asterisk Development Team</td><td>Update for 18.13.0-rc1</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=79331255357666a2090df081870fbc145d7c3855">7933125535</a></td><td>Asterisk Development Team</td><td>Update CHANGES and UPGRADE.txt for 18.13.0</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=71ffc92abf5ab9c04ae5822698d352a19e20ddca">71ffc92abf</a></td><td>Kevin Harwell</td><td>test_aeap_transport: disable part of failing unit test</td></tr>
<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6487498033dde44d29ebef28d531c216176f3268">6487498033</a></td><td>Kevin Harwell</td><td>ARI version: increase non-breaking number</td></tr>
</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>asterisk-18.12.0-summary.html | 300 ----
asterisk-18.12.0-summary.txt | 716 ----------
b/.version | 2
b/CHANGES | 43
b/ChangeLog | 436 ++++++
b/addons/Makefile | 4
b/apps/app_confbridge.c | 158 ++
b/apps/app_festival.c | 2
b/apps/app_voicemail.c | 46
b/asterisk-18.13.0-rc1-summary.html | 151 ++
b/asterisk-18.13.0-rc1-summary.txt | 395 +++++
b/autoconf/ast_pkgconfig.m4 | 1
b/channels/chan_dahdi.c | 13
b/channels/chan_iax2.c | 48
b/channels/chan_pjsip.c | 13
b/channels/chan_sip.c | 4
b/channels/sig_analog.c | 10
b/configs/samples/pjsip.conf.sample | 5
b/configure | 32
b/contrib/ast-db-manage/config/versions/18e0805d367f_max_random_initial_delay.py | 21
b/contrib/realtime/mysql/mysql_config.sql | 6
b/contrib/realtime/postgresql/postgresql_config.sql | 6
b/funcs/func_cdr.c | 4
b/funcs/func_dialgroup.c | 9
b/funcs/func_env.c | 89 -
b/funcs/func_frame_drop.c | 12
b/funcs/func_frame_trace.c | 12
b/funcs/func_math.c | 25
b/funcs/func_odbc.c | 8
b/funcs/func_periodic_hook.c | 18
b/funcs/func_pitchshift.c | 33
b/funcs/func_rand.c | 5
b/funcs/func_scramble.c | 2
b/funcs/func_sha1.c | 8
b/funcs/func_shell.c | 4
b/funcs/func_speex.c | 14
b/funcs/func_strings.c | 72 -
b/funcs/func_talkdetect.c | 24
b/funcs/func_version.c | 9
b/funcs/func_vmcount.c | 4
b/funcs/func_volume.c | 23
b/include/asterisk/module.h | 2
b/include/asterisk/stasis_channels.h | 1
b/include/asterisk/stringfields.h | 65
b/include/asterisk/strings.h | 10
b/main/asterisk.c | 8
b/main/channel_internal_api.c | 3
b/main/loader.c | 9
b/main/pbx.c | 15
b/main/say.c | 8
b/main/stasis_channels.c | 11
b/main/stasis_state.c | 2
b/main/stun.c | 8
b/menuselect/configure | 156 +-
b/res/ari/ari_model_validators.c | 16
b/res/ari/ari_model_validators.h | 1
b/res/parking/parking_applications.c | 30
b/res/parking/parking_controller.c | 2
b/res/res_agi.c | 21
b/res/res_calendar.c | 17
b/res/res_config_pgsql.c | 2
b/res/res_mutestream.c | 17
b/res/res_pjsip/pjsip_configuration.c | 2
b/res/res_pjsip_config_wizard.c | 74 -
b/res/res_pjsip_dialog_info_body_generator.c | 13
b/res/res_pjsip_header_funcs.c | 102 -
b/res/res_pjsip_outbound_registration.c | 29
b/res/res_pjsip_pubsub.c | 10
b/res/res_pjsip_transport_websocket.c | 31
b/res/res_tonedetect.c | 2
b/rest-api/api-docs/channels.json | 5
b/rest-api/resources.json | 2
b/tests/test_aeap_transport.c | 19
b/tests/test_stasis_channels.c | 2
74 files changed, 1983 insertions(+), 1499 deletions(-)</pre><br></html>