                                Release Summary

                               asterisk-1.8.12.0

                                Date: 2012-05-02

                           <asteriskteam@digium.com>

     ----------------------------------------------------------------------

                               Table of Contents

    1. Summary
    2. Contributors
    3. Closed Issues
    4. Other Changes
    5. Diffstat

     ----------------------------------------------------------------------

                                    Summary

                                 [Back to Top]

   This release includes only bug fixes. The changes included were made only
   to address problems that have been identified in this release series.
   Users should be able to safely upgrade to this version if this release
   series is already in use. Users considering upgrading from a previous
   release series are strongly encouraged to review the UPGRADE.txt document
   as well as the CHANGES document for information about upgrading to this
   release series.

   The data in this summary reflects changes that have been made since the
   previous release, asterisk-1.8.11.0.

     ----------------------------------------------------------------------

                                  Contributors

                                 [Back to Top]

   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 closed by commits that went into this
   release.

     Coders                   Testers                  Reporters              
   22 russell               3 Matt Jordan            3 microlana              
   14 rmudgett              2 Thomas Arimont         2 jamicque               
   11 jrose                 1 Kris Shaw              2 mjordan                
   8 twilson                1 Maciej Krajewski       2 tomaso                 
   7 bebuild                1 rmudgett               2 wimpy                  
   6 kmoore                                          1 andrew                 
   3 mjordan                                         1 ciscogeek              
   3 mmichelson                                      1 clint                  
   3 pabelanger                                      1 cpuvampier             
   3 tilghman                                        1 ebroad                 
   2 Mark                                            1 falves11               
   2 seanbright                                      1 gentlec                
   1 alecdavis                                       1 irontec                
   1 Andrew                                          1 jkroon                 
   1 Birger                                          1 johan                  
   1 file                                            1 kmoore                 
   1 Igor                                            1 lathama                
   1 Irontec                                         1 lvl                    
   1 kpfleming                                       1 makoto                 
   1 Kris                                            1 ornix                  
   1 Makoto                                          1 p_lindheimer           
   1 tzafrir                                         1 schmoozecom            
   1 wdoekes                                         1 shawkris               

     ----------------------------------------------------------------------

                                 Closed Issues

                                 [Back to Top]

   This is a list of all issues from the issue tracker that were closed by
   changes that went into this release.

  Category: . I did not set the category correctly.

   ASTERISK-19367: Update Debian Install Prerequisite install
   Revision: 360138
   Reporter: lathama
   Coders: Andrew

  Category: Applications/app_chanspy

   ASTERISK-19461: ChanSpy - Improper refcounts avoid channel release
   Revision: 357809
   Reporter: irontec
   Coders: Irontec

   ASTERISK-19493: ChanSpy onto a Local channel can leave a hung channel
   Revision: 359892
   Reporter: lvl
   Coders: jrose

  Category: Applications/app_directed_pickup

   ASTERISK-19183: (Sporadically) missing connectedline event to caller
   channel in directed pickup app
   Revision: 360884
   Reporter: tomaso
   Testers: Thomas Arimont
   Coders: Mark

  Category: Applications/app_meetme

   ASTERISK-19335: MeetMeAdmin(confno,N) mutes admins
   Revision: 361090
   Reporter: johan
   Coders: jrose

  Category: Applications/app_milliwatt

   ASTERISK-19541: Security Vulnerability: remotely exploitable stack overrun
   in Milliwatt
   Revision: 359656
   Reporter: mjordan
   Testers: Matt Jordan
   Coders: mjordan

  Category: Applications/app_page

   ASTERISK-19310: 'i' option is defined twice at AST_APP_OPTIONS macro in
   app_page.c
   Revision: 357352
   Reporter: makoto
   Coders: Makoto

  Category: CDR/cdr_adaptive_odbc

   ASTERISK-19334: Adaptive CDR via ODBC driver can't handle UTF8-type fields
   in database
   Revision: 357455
   Reporter: microlana
   Coders: Igor

  Category: Channels/chan_bridge

   ASTERISK-17541: Calls from VOIP to Dahdi requiring transcoding fail
   Revision: 359344
   Reporter: clint
   Coders: rmudgett

  Category: Channels/chan_dahdi

   ASTERISK-16901: DISA "Cannot handle frames in gsm format"
   Revision: 359344
   Reporter: gentlec
   Coders: rmudgett

   ASTERISK-17541: Calls from VOIP to Dahdi requiring transcoding fail
   Revision: 359344
   Reporter: clint
   Coders: rmudgett

   ASTERISK-19388: Make it possible to put any connected call on hold, not
   just bridged ones
   Revision: 357894
   Reporter: wimpy
   Testers: rmudgett
   Coders: rmudgett

   ASTERISK-19397: Fix cause code for no channel available
   Revision: 357407
   Reporter: wimpy
   Coders: Birger

  Category: Channels/chan_dahdi/SS7

   ASTERISK-19312: No DTMF decoding on outbound call via SS7 E1 channel
   Revision: 358260
   Reporter: microlana
   Coders: rmudgett

   ASTERISK-19372: BUSY/INCOMPLETE/CONGESTION indications not passed to SS7
   channel
   Revision: 358278
   Reporter: microlana
   Coders: rmudgett

  Category: Channels/chan_local

   ASTERISK-19384: REGRESSION - CLONE - CDR(accountcode) not accessable to
   'Local' channels
   Revision: 357575
   Reporter: jamicque
   Coders: wdoekes

  Category: Channels/chan_sip/CallCompletionSupplementaryServices

   ASTERISK-19422: CCSS does not function if "sip" is used instead of "SIP"
   when dialing
   Revision: 357940
   Reporter: kmoore
   Coders: kmoore

  Category: Channels/chan_sip/General

   ASTERISK-19223: Called party keeps ringing until calling party has send a
   cancel
   Revision: 357761
   Reporter: cpuvampier
   Coders: mmichelson

   ASTERISK-19303: Asterisk does not acknowledge the ACK received to
   terminate the dialog.
   Revision: 358115
   Reporter: ciscogeek
   Coders: kmoore

   ASTERISK-19365: Remote SIP Call legs are frequently not released in a
   cross-linked Asterisk scenario (directmedia & sendrpid)
   Revision: 360086
   Reporter: tomaso
   Testers: Thomas Arimont
   Coders: mjordan

  Category: Channels/chan_sip/Interoperability

   ASTERISK-19321: Transfer application ignores port information
   Revision: 358643
   Reporter: falves11
   Coders: jrose

  Category: Channels/chan_sip/Messaging

   ASTERISK-19430: 1.8.9.1 SIP NOTIFY crashes 2wire (U-Verse) routers
   Revision: 357665
   Reporter: schmoozecom
   Coders: kmoore

  Category: Channels/chan_sip/Subscriptions

   ASTERISK-16702: [patch] Hints for non-existent devices are in an Idle
   state
   Revision: 358943
   Reporter: ebroad
   Coders: twilson

   ASTERISK-16735: bad dialog-info remote information
   Revision: 360862
   Reporter: jamicque
   Testers: Maciej Krajewski
   Coders: Mark

  Category: Core/CodecInterface

   ASTERISK-16821: SLIN/SLIN16 translation path is not optimal
   Revision: 357760
   Reporter: andrew
   Coders: mmichelson

  Category: Core/Configuration

   ASTERISK-19487: AMI module reload causes deadlock
   Revision: 359979
   Reporter: p_lindheimer
   Coders: rmudgett

  Category: Core/HTTP

   ASTERISK-19542: Security Vulnerability: remotely exploitable stack
   overflow in main/utils ast_parse_digest
   Revision: 359706
   Reporter: mjordan
   Testers: Matt Jordan
   Coders: mjordan

  Category: Core/Jitterbuffer

   ASTERISK-18964: Stuttering jittery audio after MOH
   Revision: 359356
   Reporter: shawkris
   Testers: Kris Shaw, Matt Jordan
   Coders: Kris

  Category: Core/ManagerInterface

   ASTERISK-18453: manager.c: HTTP Manager, fdopen failed: Bad file
   descriptor!
   Revision: 358214
   Reporter: jkroon
   Coders: jrose

   ASTERISK-19487: AMI module reload causes deadlock
   Revision: 359979
   Reporter: p_lindheimer
   Coders: rmudgett

   ASTERISK-19542: Security Vulnerability: remotely exploitable stack
   overflow in main/utils ast_parse_digest
   Revision: 359706
   Reporter: mjordan
   Testers: Matt Jordan
   Coders: mjordan

  Category: Core/PBX

   ASTERISK-19487: AMI module reload causes deadlock
   Revision: 359979
   Reporter: p_lindheimer
   Coders: rmudgett

  Category: PBX/pbx_spool

   ASTERISK-19385: "Callerid:" in call-files and Asterisk Manager doesn't
   work
   Revision: 357093
   Reporter: ornix
   Coders: rmudgett

     ----------------------------------------------------------------------

                      Commits Not Associated with an Issue

                                 [Back to Top]

   This is a list of all changes that went into this release that did not
   directly close an issue from the issue tracker. The commits may have been
   marked as being related to an issue. If that is the case, the issue
   numbers are listed here, as well.

   +------------------------------------------------------------------------+
   |Revision|Author    |Summary                              |Issues        |
   |        |          |                                     |Referenced    |
   |--------+----------+-------------------------------------+--------------|
   |357212  |kpfleming |Make COMPILE_DOUBLE magic actually   |              |
   |        |          |work.                                |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Changes transport option in sip.conf |              |
   |357266  |jrose     |so that using multiple instances     |              |
   |        |          |doesn't stack.                       |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Adds UPGRADE.txt notes to r357266    |              |
   |357356  |jrose     |indicating changes to transport      |ASTERISK-19352|
   |        |          |option                               |              |
   |--------+----------+-------------------------------------+--------------|
   |357386  |jrose     |Moves UPGRADE.txt notes from r357356 |ASTERISK-19352|
   |        |          |to a new section specific to 1.8.12  |              |
   |--------+----------+-------------------------------------+--------------|
   |357416  |tilghman  |Correctly reset the dialplan         |              |
   |        |          |priority.                            |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Adding transport=udp to sample       |              |
   |357490  |jrose     |sip.conf - Also changes version of   |ASTERISK-19352|
   |        |          |Asterisk 1.8 in UPGRADE              |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |The default value for mohinterpret is|              |
   |357811  |seanbright|the empty string, so when resetting  |              |
   |        |          |to                                   |              |
   |--------+----------+-------------------------------------+--------------|
   |357986  |twilson   |Make chan_usbradio compile under dev |              |
   |        |          |mode                                 |              |
   |--------+----------+-------------------------------------+--------------|
   |358011  |twilson   |Correct some set-but-unused variable |              |
   |        |          |warnings in the mISDN library.       |              |
   |--------+----------+-------------------------------------+--------------|
   |358029  |twilson   |Fix unused-but-set-variable warnings |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Defer sending the connected line     |              |
   |358162  |file      |reinvite if a reinvite is already in |ASTERISK-19355|
   |        |          |progress.                            |              |
   |--------+----------+-------------------------------------+--------------|
   |358377  |rmudgett  |Fix ring cadance setup for outgoing  |              |
   |        |          |calls on FXS ports.                  |              |
   |--------+----------+-------------------------------------+--------------|
   |358435  |twilson   |Add detection for ODBC WCHAR fields  |              |
   |--------+----------+-------------------------------------+--------------|
   |358438  |twilson   |Set snarkiness = 0 in                |              |
   |        |          |cdr_adaptive_odbc.conf.sample        |              |
   |--------+----------+-------------------------------------+--------------|
   |358484  |seanbright|Return g729 and g723.1 frames with   |              |
   |        |          |the number of samples set properly.  |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Change directly setting _softhangup  |              |
   |358530  |rmudgett  |in sig_ss7.c to use                  |ASTERISK-19372|
   |        |          |ast_softhangup_nolock().             |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Enable macros in 1.8 to find the next|              |
   |358810  |tilghman  |highest "h" extension in a context,  |              |
   |        |          |like in 1.4.                         |              |
   |--------+----------+-------------------------------------+--------------|
   |358859  |tilghman  |Requested changes documenting the    |              |
   |        |          |fixed AEL functionality.             |              |
   |--------+----------+-------------------------------------+--------------|
   |358978  |twilson   |Fix setting CDR variables in the     |              |
   |        |          |hangup extension                     |              |
   |--------+----------+-------------------------------------+--------------|
   |359050  |russell   |Remove chan_usbradio and app_rpt.    |              |
   |--------+----------+-------------------------------------+--------------|
   |359053  |russell   |Dump cache of published events when a|              |
   |        |          |node joins the cluster.              |              |
   |--------+----------+-------------------------------------+--------------|
   |359056  |russell   |Don't use a buffer after it goes out |              |
   |        |          |of scope.                            |              |
   |--------+----------+-------------------------------------+--------------|
   |359059  |russell   |Fix incorrect sizeof() on a pointer  |              |
   |        |          |in MD5Final().                       |              |
   |--------+----------+-------------------------------------+--------------|
   |359069  |russell   |Fix incorrect sizeof() usage in      |              |
   |        |          |features.c.                          |              |
   |--------+----------+-------------------------------------+--------------|
   |359088  |russell   |Fix broken usage of sizeof() in      |              |
   |        |          |res_adsi.                            |              |
   |--------+----------+-------------------------------------+--------------|
   |359110  |russell   |Fix incorrect usage of sizeof() in   |              |
   |        |          |res_crypto.                          |              |
   |--------+----------+-------------------------------------+--------------|
   |359116  |russell   |Fix incorrect sizeof() in astman.    |              |
   |--------+----------+-------------------------------------+--------------|
   |359157  |russell   |Fix inaccurate sizeof() in sched.c.  |              |
   |--------+----------+-------------------------------------+--------------|
   |359211  |russell   |Fix invalid reads/writes due to      |              |
   |        |          |incorrect sizeof().                  |              |
   |--------+----------+-------------------------------------+--------------|
   |359259  |russell   |Fix bogus reads/writes of console log|              |
   |        |          |levels in asterisk.c                 |              |
   |--------+----------+-------------------------------------+--------------|
   |359451  |rmudgett  |Fix deadlock potential with some     |              |
   |        |          |ast_indicate/ast_indicate_data calls.|              |
   |--------+----------+-------------------------------------+--------------|
   |359452  |russell   |app.h: Always initialize             |              |
   |        |          |AST_DECLARE_APP_ARGS().              |              |
   |--------+----------+-------------------------------------+--------------|
   |359457  |russell   |udptl: Ensure fec[] in               |              |
   |        |          |udptl_build_packet() is initialized. |              |
   |--------+----------+-------------------------------------+--------------|
   |359486  |russell   |app_chanisavail: Fix use of          |              |
   |        |          |uninitialized variable.              |              |
   |--------+----------+-------------------------------------+--------------|
   |359508  |russell   |chan_gtalk: Fix potential use of     |              |
   |        |          |uninitialized variable.              |              |
   |--------+----------+-------------------------------------+--------------|
   |359534  |russell   |chan_gtalk: Fix use of uninitialized |              |
   |        |          |vars in config handling.             |              |
   |--------+----------+-------------------------------------+--------------|
   |359558  |russell   |chan_iax2: Fix use of uninitialized  |              |
   |        |          |sockaddr_in in try_transfer().       |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Add missing connected line macro     |              |
   |359609  |rmudgett  |calls to initial dial for Dial and   |              |
   |        |          |Queue apps.                          |              |
   |--------+----------+-------------------------------------+--------------|
   |359809  |alecdavis |Missed lastinvite CSeq int to        |              |
   |        |          |uint32_t change                      |              |
   |--------+----------+-------------------------------------+--------------|
   |360033  |kmoore    |Prevent Echo() from relaying control,|              |
   |        |          |null, and modem frames               |              |
   |--------+----------+-------------------------------------+--------------|
   |360087  |tzafrir   |Also detect gmime 2.6                |              |
   |--------+----------+-------------------------------------+--------------|
   |360262  |rmudgett  |Add missing initialization of        |              |
   |        |          |update_redirecting in chan_sip.c     |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Make number not available            |              |
   |360309  |rmudgett  |presentation also set screening to   |              |
   |        |          |network provided.                    |              |
   |--------+----------+-------------------------------------+--------------|
   |360356  |russell   |expression parser: Fix (theoretical) |              |
   |        |          |memory leak.                         |              |
   |--------+----------+-------------------------------------+--------------|
   |360357  |russell   |Rebuild parsers.                     |              |
   |--------+----------+-------------------------------------+--------------|
   |360360  |russell   |app_jack: fix datastore memory leak  |              |
   |        |          |in error handling path.              |              |
   |--------+----------+-------------------------------------+--------------|
   |360363  |russell   |app_page: Fix a memory leak on every |              |
   |        |          |Page().                              |              |
   |--------+----------+-------------------------------------+--------------|
   |360413  |russell   |func_curl: Fix leak of an ast_str in |              |
   |        |          |error handling code path.            |              |
   |--------+----------+-------------------------------------+--------------|
   |360471  |pabelanger|Increase verbosity level for ast_verb|              |
   |        |          |messages                             |              |
   |--------+----------+-------------------------------------+--------------|
   |360473  |pabelanger|Fix Asterisk version typo            |              |
   |--------+----------+-------------------------------------+--------------|
   |360474  |pabelanger|Update CHANGES for r360471           |              |
   |--------+----------+-------------------------------------+--------------|
   |360488  |jrose     |Fix BETTER_BACKTRACES library        |              |
   |        |          |detection for Fedora/RedHat/CentOS   |              |
   |--------+----------+-------------------------------------+--------------|
   |360574  |jrose     |Updates config with bootstrap where I|ASTERISK-17842|
   |        |          |changed configure.ac in r360488      |              |
   |--------+----------+-------------------------------------+--------------|
   |360625  |mmichelson|Make a debug message regarding       |              |
   |        |          |subscription changes more accurate.  |              |
   |--------+----------+-------------------------------------+--------------|
   |360712  |twilson   |Destroy configs when they are no     |              |
   |        |          |longer used                          |              |
   |--------+----------+-------------------------------------+--------------|
   |360933  |rmudgett  |Fix logger deadlock on Asterisk      |ASTERISK-19463|
   |        |          |shutdown.                            |              |
   |--------+----------+-------------------------------------+--------------|
   |360987  |kmoore    |Stop sending out RTCP if RTP is      |              |
   |        |          |inactive                             |              |
   |--------+----------+-------------------------------------+--------------|
   |361040  |kmoore    |Fix the display of documentation for |ASTERISK-18168|
   |        |          |Transfer                             |              |
   |--------+----------+-------------------------------------+--------------|
   |        |          |Replace GNU old-style field          |              |
   |361142  |jrose     |designator extensions to fix clang   |ASTERISK-19540|
   |        |          |warnings                             |              |
   |--------+----------+-------------------------------------+--------------|
   |363329  |bebuild   |Create 1.8.12.0-rc2 tag              |              |
   |--------+----------+-------------------------------------+--------------|
   |363331  |bebuild   |Merge r363102, r363106, r363141 for  |              |
   |        |          |rc2                                  |              |
   |--------+----------+-------------------------------------+--------------|
   |363333  |bebuild   |Importing release summary for        |              |
   |        |          |1.8.12.0-rc2 release.                |              |
   |--------+----------+-------------------------------------+--------------|
   |363334  |bebuild   |Use autotagged externals             |              |
   |--------+----------+-------------------------------------+--------------|
   |364759  |bebuild   |Create tag for 1.8.12.0-rc3          |              |
   |--------+----------+-------------------------------------+--------------|
   |364763  |bebuild   |Merge 364706 for 1.8.12.0-rc3        |              |
   |--------+----------+-------------------------------------+--------------|
   |364764  |bebuild   |Importing release summary for        |              |
   |        |          |1.8.12.0-rc3 release.                |              |
   +------------------------------------------------------------------------+

     ----------------------------------------------------------------------

                                Diffstat Results

                                 [Back to Top]

   This is a summary of the changes to the source code that went into this
   release that was generated using the diffstat utility.

 .version                              |    2
 CHANGES                               |   20
 ChangeLog                             |   18
 Makefile.rules                        |    6
 UPGRADE.txt                           |   14
 addons/cdr_mysql.c                    |    2
 addons/chan_ooh323.c                  |    9
 apps/app_chanisavail.c                |    4
 apps/app_chanspy.c                    |    5
 apps/app_dial.c                       |  145
 apps/app_echo.c                       |   12
 apps/app_externalivr.c                |    8
 apps/app_jack.c                       |    8
 apps/app_meetme.c                     |    2
 apps/app_milliwatt.c                  |    8
 apps/app_page.c                       |    3
 apps/app_queue.c                      |    8
 apps/app_rpt.c                        |15194 ----------------------------------
 apps/app_stack.c                      |  155
 apps/app_transfer.c                   |    4
 asterisk-1.8.12.0-rc2-summary.html    |   62
 asterisk-1.8.12.0-rc2-summary.txt     |   91
 asterisk-1.8.12.0-rc3-summary.html    |   64
 asterisk-1.8.12.0-rc3-summary.txt     |   98
 build_tools/menuselect-deps.in        |    1
 cdr/cdr_adaptive_odbc.c               |    6
 cel/cel_odbc.c                        |    5
 channels/chan_agent.c                 |    4
 channels/chan_dahdi.c                 |   26
 channels/chan_gtalk.c                 |    9
 channels/chan_iax2.c                  |   23
 channels/chan_jingle.c                |    1
 channels/chan_misdn.c                 |    3
 channels/chan_sip.c                   |  149
 channels/chan_usbradio.c              | 4032 ---------
 channels/misdn/isdn_lib.c             |   15
 channels/misdn/isdn_msg_parser.c      |   60
 channels/sig_pri.c                    |   95
 channels/sig_ss7.c                    |   61
 channels/sig_ss7.h                    |    1
 channels/sip/include/sip.h            |    2
 codecs/codec_dahdi.c                  |    2
 configs/cdr_adaptive_odbc.conf.sample |   31
 configs/sip.conf.sample               |    3
 configure.ac                          |   10
 contrib/scripts/install_prereq        |    7
 funcs/func_curl.c                     |    1
 funcs/func_dialplan.c                 |    6
 include/asterisk/app.h                |    2
 include/asterisk/autoconfig.h.in      |   16
 include/asterisk/channel.h            |    2
 include/asterisk/devicestate.h        |   11
 include/asterisk/logger.h             |    2
 include/asterisk/manager.h            |    2
 include/asterisk/strings.h            |   20
 main/acl.c                            |    9
 main/app.c                            |    6
 main/ast_expr2.c                      |  705 -
 main/ast_expr2.h                      |   14
 main/ast_expr2.y                      |    3
 main/ast_expr2f.c                     |   32
 main/ccss.c                           |   10
 main/channel.c                        |   98
 main/devicestate.c                    |  100
 main/dnsmgr.c                         |   14
 main/event.c                          |   41
 main/features.c                       |   17
 main/jitterbuf.c                      |   89
 main/logger.c                         |   18
 main/manager.c                        |   45
 main/md5.c                            |    2
 main/pbx.c                            |    2
 main/sched.c                          |    2
 main/translate.c                      |  108
 main/udptl.c                          |    2
 main/utils.c                          |  128
 makeopts.in                           |    3
 pbx/pbx_loopback.c                    |   12
 pbx/pbx_realtime.c                    |   12
 res/ael/ael.tab.c                     | 1286 +-
 res/ael/ael.tab.h                     |   14
 res/ael/ael_lex.c                     |   32
 res/ael/pval.c                        |   79
 res/ais/ais.h                         |    9
 res/ais/clm.c                         |   24
 res/ais/evt.c                         |   27
 res/res_adsi.c                        |    2
 res/res_ais.c                         |   62
 res/res_crypto.c                      |    1
 tests/test_devicestate.c              |    4
 tests/test_event.c                    |   19
 tests/test_gosub.c                    |   12
 utils/ael_main.c                      |   30
 utils/astman.c                        |    2
 utils/conf2ael.c                      |   30
 95 files changed, 2621 insertions(+), 21034 deletions(-)

     ----------------------------------------------------------------------
