The following commit has been merged in the upstream branch:
commit 2c826baed37459e35b0e371e3311e1138909268e
Author: Robin Cornelius <[email protected]>
Date:   Thu Feb 26 21:10:31 2009 +0000

    Imported Upstream version 1.22.10

diff --git a/indra/llcommon/llversionviewer.h b/indra/llcommon/llversionviewer.h
index 4f28752..258a5e2 100644
--- a/indra/llcommon/llversionviewer.h
+++ b/indra/llcommon/llversionviewer.h
@@ -34,7 +34,7 @@
 
 const S32 LL_VERSION_MAJOR = 1;
 const S32 LL_VERSION_MINOR = 22;
-const S32 LL_VERSION_PATCH = 9;
+const S32 LL_VERSION_PATCH = 10;
 const S32 LL_VERSION_BUILD = 0;
 
 const char * const LL_CHANNEL = "Second Life Release";
diff --git a/indra/newview/llpreviewtexture.cpp 
b/indra/newview/llpreviewtexture.cpp
index 929fd15..82331b5 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -302,7 +302,8 @@ void LLPreviewTexture::saveAs()
        if( mLoadingFullImage ) return;
 
        LLFilePicker& file_picker = LLFilePicker::instance();
-       if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, 
LLDir::getScrubbedFileName(getItem()->getName())) )
+       const LLViewerInventoryItem* item = getItem() ;
+       if( !file_picker.getSaveFile( LLFilePicker::FFSAVE_TGA, item ? 
LLDir::getScrubbedFileName(item->getName()) : LLStringUtil::null) )
        {
                // User canceled or we failed to acquire save file.
                return;
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index 145132a..76ef87d 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -1362,10 +1362,13 @@ void LLVoiceClient::login(
        mVoiceSIPURIHostName = voice_sip_uri_hostname;
        mVoiceAccountServerURI = voice_account_server_uri;
 
-       if((getState() >= stateLoggingIn) && (getState() < stateLoggedOut))
+       if(!mAccountHandle.empty())
        {
-               // Already logged in.  This is an internal error.
-               LL_ERRS("Voice") << "Can't login again. Called from wrong 
state." << LL_ENDL;
+               // Already logged in.
+               LL_WARNS("Voice") << "Called while already logged in." << 
LL_ENDL;
+               
+               // Don't process another login.
+               return;
        }
        else if ( account_name != mAccountName )
        {
@@ -1431,12 +1434,16 @@ std::string 
LLVoiceClient::state2string(LLVoiceClient::state inState)
 
        switch(inState)
        {
+               CASE(stateDisableCleanup);
                CASE(stateDisabled);
                CASE(stateStart);
                CASE(stateDaemonLaunched);
                CASE(stateConnecting);
+               CASE(stateConnected);
                CASE(stateIdle);
-               CASE(stateNeedsProvision);
+               CASE(stateMicTuningStart);
+               CASE(stateMicTuningRunning);
+               CASE(stateMicTuningStop);
                CASE(stateConnectorStart);
                CASE(stateConnectorStarting);
                CASE(stateConnectorStarted);
@@ -1447,9 +1454,6 @@ std::string 
LLVoiceClient::state2string(LLVoiceClient::state inState)
                CASE(stateLoggedIn);
                CASE(stateCreatingSessionGroup);
                CASE(stateNoChannel);
-               CASE(stateMicTuningStart);
-               CASE(stateMicTuningRunning);
-               CASE(stateMicTuningStop);
                CASE(stateJoiningSession);
                CASE(stateSessionJoined);
                CASE(stateRunning);
@@ -1466,7 +1470,6 @@ std::string 
LLVoiceClient::state2string(LLVoiceClient::state inState)
                CASE(stateJoinSessionFailed);
                CASE(stateJoinSessionFailedWaiting);
                CASE(stateJail);
-               CASE(stateMicTuningNoLogin);
        }
 
 #undef CASE
@@ -1522,9 +1525,13 @@ void LLVoiceClient::stateMachine()
        {
                updatePosition();
        }
+       else if(mTuningMode)
+       {
+               // Tuning mode is special -- it needs to launch SLVoice even if 
voice is disabled.
+       }
        else
        {
-               if(getState() != stateDisabled)
+               if((getState() != stateDisabled) && (getState() != 
stateDisableCleanup))
                {
                        // User turned off voice support.  Send the cleanup 
messages, close the socket, and reset.
                        if(!mConnected)
@@ -1534,16 +1541,10 @@ void LLVoiceClient::stateMachine()
                                killGateway();
                        }
                        
-//                     leaveAudioSession();
                        logout();
-                       // As of SDK version 4885, this should no longer be 
necessary.  It will linger after the socket close if it needs to.
-                       // ms_sleep(2000);
                        connectorShutdown();
-                       closeSocket();
-                       deleteAllSessions();
-                       deleteAllBuddies();
                        
-                       setState(stateDisabled);
+                       setState(stateDisableCleanup);
                }
        }
        
@@ -1579,9 +1580,24 @@ void LLVoiceClient::stateMachine()
 
        switch(getState())
        {
+               //MARK: stateDisableCleanup
+               case stateDisableCleanup:
+                       // Clean up and reset everything. 
+                       closeSocket();
+                       deleteAllSessions();
+                       deleteAllBuddies();             
+                       
+                       mConnectorHandle.clear();
+                       mAccountHandle.clear();
+                       mAccountPassword.clear();
+                       mVoiceAccountServerURI.clear();
+                       
+                       setState(stateDisabled);        
+               break;
+               
                //MARK: stateDisabled
                case stateDisabled:
-                       if(mVoiceEnabled && (!mAccountName.empty() || 
mTuningMode))
+                       if(mTuningMode || (mVoiceEnabled && 
!mAccountName.empty()))
                        {
                                setState(stateStart);
                        }
@@ -1780,29 +1796,34 @@ void LLVoiceClient::stateMachine()
 
                        mPump->addChain(readChain, NEVER_CHAIN_EXPIRY_SECS);
 
-                       setState(stateIdle);
+                       setState(stateConnected);
                }
 
                break;
                
-               //MARK: stateIdle
-               case stateIdle:
+               //MARK: stateConnected
+               case stateConnected:
                        // Initial devices query
                        getCaptureDevicesSendMessage();
                        getRenderDevicesSendMessage();
 
                        mLoginRetryCount = 0;
-                       
-                       setState(stateNeedsProvision);
-                               
+
+                       setState(stateIdle);
                break;
-               
-               //MARK: stateNeedsProvision
-               case stateNeedsProvision:
-                       if(!mVoiceEnabled)
+
+               //MARK: stateIdle
+               case stateIdle:
+                       // This is the idle state where we're connected to the 
daemon but haven't set up a connector yet.
+                       if(mTuningMode)
                        {
-                               // We were never logged in.  This will shut 
down the connector.
-                               setState(stateLoggedOut);
+                               mTuningExitState = stateIdle;
+                               setState(stateMicTuningStart);
+                       }
+                       else if(!mVoiceEnabled)
+                       {
+                               // We never started up the connector.  This 
will shut down the daemon.
+                               setState(stateConnectorStopped);
                        }
                        else if(!mAccountName.empty())
                        {
@@ -1820,50 +1841,8 @@ void LLVoiceClient::stateMachine()
                                        }
                                }
                        }
-                       else if(mTuningMode)
-                       {
-                               mTuningExitState = stateNeedsProvision;
-                               setState(stateMicTuningStart);
-                       }
-               break;
-               
-               //MARK: stateConnectorStart
-               case stateConnectorStart:
-                       if(!mVoiceEnabled)
-                       {
-                               // We were never logged in.  This will shut 
down the connector.
-                               setState(stateLoggedOut);
-                       }
-                       else if(!mVoiceAccountServerURI.empty())
-                       {
-                               connectorCreate();
-                       }
-                       else if(mTuningMode)
-                       {
-                               mTuningExitState = stateConnectorStart;
-                               setState(stateMicTuningStart);
-                       }
-               break;
-               
-               //MARK: stateConnectorStarting
-               case stateConnectorStarting:    // waiting for connector handle
-                       // connectorCreateResponse() will transition from here 
to stateConnectorStarted.
-               break;
-               
-               //MARK: stateConnectorStarted
-               case stateConnectorStarted:             // connector handle 
received
-                       if(!mVoiceEnabled)
-                       {
-                               // We were never logged in.  This will shut 
down the connector.
-                               setState(stateLoggedOut);
-                       }
-                       else
-                       {
-                               // The connector is started.  Send a login 
message.
-                               setState(stateNeedsLogin);
-                       }
                break;
-                               
+
                //MARK: stateMicTuningStart
                case stateMicTuningStart:
                        if(mUpdateTimer.hasExpired())
@@ -1898,7 +1877,7 @@ void LLVoiceClient::stateMachine()
                
                //MARK: stateMicTuningRunning
                case stateMicTuningRunning:
-                       if(!mTuningMode || !mVoiceEnabled || 
mSessionTerminateRequested || mCaptureDeviceDirty || mRenderDeviceDirty)
+                       if(!mTuningMode || mCaptureDeviceDirty || 
mRenderDeviceDirty)
                        {
                                // All of these conditions make us leave tuning 
mode.
                                setState(stateMicTuningStop);
@@ -1952,7 +1931,39 @@ void LLVoiceClient::stateMachine()
                        
                }
                break;
-                                                               
+                                                                               
                
+               //MARK: stateConnectorStart
+               case stateConnectorStart:
+                       if(!mVoiceEnabled)
+                       {
+                               // We were never logged in.  This will shut 
down the connector.
+                               setState(stateLoggedOut);
+                       }
+                       else if(!mVoiceAccountServerURI.empty())
+                       {
+                               connectorCreate();
+                       }
+               break;
+               
+               //MARK: stateConnectorStarting
+               case stateConnectorStarting:    // waiting for connector handle
+                       // connectorCreateResponse() will transition from here 
to stateConnectorStarted.
+               break;
+               
+               //MARK: stateConnectorStarted
+               case stateConnectorStarted:             // connector handle 
received
+                       if(!mVoiceEnabled)
+                       {
+                               // We were never logged in.  This will shut 
down the connector.
+                               setState(stateLoggedOut);
+                       }
+                       else
+                       {
+                               // The connector is started.  Send a login 
message.
+                               setState(stateNeedsLogin);
+                       }
+               break;
+                               
                //MARK: stateLoginRetry
                case stateLoginRetry:
                        if(mLoginRetryCount == 0)
@@ -2311,11 +2322,7 @@ void LLVoiceClient::stateMachine()
 
                //MARK: stateConnectorStopped
                case stateConnectorStopped:             // connector stop 
received
-                       // Clean up and reset everything. 
-                       closeSocket();
-                       deleteAllSessions();
-                       deleteAllBuddies();
-                       setState(stateDisabled);
+                       setState(stateDisableCleanup);
                break;
 
                //MARK: stateConnectorFailed
@@ -2366,11 +2373,6 @@ void LLVoiceClient::stateMachine()
                        // We have given up.  Do nothing.
                break;
 
-               //MARK: stateMicTuningNoLogin
-               case stateMicTuningNoLogin:
-               // *TODO: Implement me.
-               LL_WARNS("Voice") << "stateMicTuningNoLogin not handled" << 
LL_ENDL;
-               break;
        }
        
        if(mAudioSession && mAudioSession->mParticipantsChanged)
@@ -2943,12 +2945,8 @@ void LLVoiceClient::daemonDied()
        // The daemon died, so the connection is gone.  Reset everything and 
start over.
        LL_WARNS("Voice") << "Connection to vivox daemon lost.  Resetting 
state."<< LL_ENDL;
 
-       closeSocket();
-       deleteAllSessions();
-       deleteAllBuddies();
-       
        // Try to relaunch the daemon
-       setState(stateDisabled);
+       setState(stateDisableCleanup);
 }
 
 void LLVoiceClient::giveUp()
@@ -5631,8 +5629,8 @@ void LLVoiceClient::setVoiceEnabled(bool enabled)
                }
                else
                {
-                       // for now, leave active channel, to auto join when 
turning voice back on
-                       //LLVoiceChannel::getCurrentVoiceChannel->deactivate();
+                       // Turning voice off looses your current channel -- 
this makes sure the UI isn't out of sync when you re-enable it.
+                       LLVoiceChannel::getCurrentVoiceChannel()->deactivate();
                }
        }
 }
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 9fc6a7d..13dd974 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -502,16 +502,19 @@ static    void updatePosition(void);
                // Note: if you change this list, please make corresponding 
changes to LLVoiceClient::state2string().
                enum state
                {
+                       stateDisableCleanup,
                        stateDisabled,                          // Voice is 
turned off.
                        stateStart,                                     // 
Class is initialized, socket is created
                        stateDaemonLaunched,            // Daemon has been 
launched
                        stateConnecting,                        // connect() 
call has been issued
+                       stateConnected,                         // connection 
to the daemon has been made, send some initial setup commands.
                        stateIdle,                                      // 
socket is connected, ready for messaging
-                       stateNeedsProvision,            // Need to do a 
ProvisionVoiceAccountRequest
+                       stateMicTuningStart,
+                       stateMicTuningRunning,          
+                       stateMicTuningStop,
                        stateConnectorStart,            // connector needs to 
be started
                        stateConnectorStarting,         // waiting for 
connector handle
                        stateConnectorStarted,          // connector handle 
received
-                       stateMicTuningNoLogin,          // mic tuning before 
login
                        stateLoginRetry,                        // need to 
retry login (failed due to changing password)
                        stateLoginRetryWait,            // waiting for retry 
timer
                        stateNeedsLogin,                        // send login 
request
@@ -519,9 +522,6 @@ static      void updatePosition(void);
                        stateLoggedIn,                          // account 
handle received
                        stateCreatingSessionGroup,      // Creating the main 
session group
                        stateNoChannel,                         // 
-                       stateMicTuningStart,
-                       stateMicTuningRunning,          
-                       stateMicTuningStop,
                        stateJoiningSession,            // waiting for session 
handle
                        stateSessionJoined,                     // session 
handle received
                        stateRunning,                           // in session, 
steady state
diff --git a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml 
b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
index 1fbc727..c9b065c 100644
--- a/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/fr/floater_report_abuse.xml
@@ -172,7 +172,7 @@
        <text name="bug_aviso">
                Indiquez la date, le lieu, la nature de l&apos;infraction, 
ainsi que
 tout chat ou IM relatif à l&apos;infraction, en étant aussi précis
-que possible. Pensez à indiquer un objet.
+que possible. Pensez à indiquer un objet si possible.
        </text>
        <text bottom_delta="-16" name="incomplete_title">
                Remarque : les rapports incomplets ne feront pas l&apos;objet 
d&apos;une
diff --git a/indra/newview/skins/default/xui/ja/alerts.xml 
b/indra/newview/skins/default/xui/ja/alerts.xml
index f4512c2..30ba935 100644
--- a/indra/newview/skins/default/xui/ja/alerts.xml
+++ b/indra/newview/skins/default/xui/ja/alerts.xml
@@ -2797,10 +2797,10 @@ F1キーを押してください。
        </alert>
        <alert name="WebLaunchExternalTarget">
                <message name="message">
-                       お使いのシステムのウェブ・ブラウザーを開いて、この内容を表示しますか?
+                       お使いのシステムのウェブ・ブラウザを開いて、この内容を表示しますか?
                </message>
                <ignore name="ignore">
-                       お使いのシステムのブラウザーを開いてウェブ・ページを表示しようとしたとき
+                       お使いのシステムのブラウザを開いてウェブ・ページを表示しようとしたとき
                </ignore>
                <option name="Open">
                        OK
@@ -2814,7 +2814,7 @@ F1キーを押してください。
                        www.secondlife.comに移動してアカウントを管理しますか?
                </message>
                <ignore name="ignore">
-                       口座を管理するため、ウェブ・ブラウザーを起動するとき
+                       アカウントを管理するため、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="OK">
                        OK
@@ -2853,10 +2853,10 @@ F1キーを押してください。
        </alert>
        <alert name="WebLaunchQAWiki">
                <message name="message">
-                       [SECOND_LIFE] QA Wikiをご覧ください。
+                       [SECOND_LIFE] 品質保証関連Wikiをご覧ください。
                </message>
                <ignore name="ignore">
-                       QA Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって
+                       品質保証関連Wikiを閲覧するためにウェブ・ブラウザを起動するにあたって
                </ignore>
                <option name="Gotopage">
                        OK
@@ -2895,10 +2895,10 @@ F1キーを押してください。
        </alert>
        <alert name="WebLaunchForums">
                <message name="message">
-                       最新のヒントおよびトリックについては、[SECOND_LIFE]の知識ベースを検索してください。
+                       最新のヒントおよびトリックについては、[SECOND_LIFE]のナレッジベースを検索してください。
                </message>
                <ignore name="ignore">
-                       知識ベースを表示するため、ウェブ・ブラウザーを起動するとき
+                       ナレッジベースを表示するため、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="Gotopage">
                        OK
@@ -2912,7 +2912,7 @@ F1キーを押してください。
                        [SECOND_LIFE]サポートにコンタクト
                </message>
                <ignore name="ignore">
-                       サポートに連絡するため、ウェブ・ブラウザーを起動するとき
+                       サポートに連絡するため、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="Gotopage">
                        OK
@@ -2926,7 +2926,7 @@ F1キーを押してください。
                        Linden公式ブログで、最新のニュースや情報を入手してください。
                </message>
                <ignore name="ignore">
-                       ブログを表示するため、ウェブ・ブラウザーを起動するとき
+                       ブログを表示するため、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="Gotopage">
                        OK
@@ -2940,7 +2940,7 @@ F1キーを押してください。
                        スクリプトガイドを開いて、スクリプトのヘルプを参照しますか?
                </message>
                <ignore name="ignore">
-                       LSLガイドを表示するため、ウェブ・ブラウザーを起動するとき
+                       LSLガイドを表示するため、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="Gotopage">
                        OK
@@ -2954,7 +2954,7 @@ F1キーを押してください。
                        LSLポータルを開いてスクリプトのヘルプを参照しますか?
                </message>
                <ignore name="ignore">
-                       LSLポータルを表示するために、ウェブ・ブラウザーを起動するとき
+                       LSLポータルを表示するために、ウェブ・ブラウザを起動するとき
                </ignore>
                <option name="Gotopage">
                        ページに移動
@@ -4154,7 +4154,7 @@ Linden社所有のメインランドの不動産での太陽の位置に
                        SecondLifeウェブ・ページを開いてアカウント履歴を確認しますか?
                </message>
                <ignore name="ignore">
-                       口座履歴のウェブ・ページをロードするとき
+                       アカウント履歴のウェブ・ページをロードするとき
                </ignore>
                <option name="Gotopage">
                        ページに移動
diff --git a/indra/newview/skins/default/xui/ja/floater_about_land.xml 
b/indra/newview/skins/default/xui/ja/floater_about_land.xml
index c1d944b..15a4c91 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -61,9 +61,9 @@
                        <text length="1" name="DwellText" type="string">
                                誤
                        </text>
-                       <button label="土地を購入..." label_selected="土地を購入..." 
name="Buy Land..."/>
+                       <button label="土地を購入..." label_selected="土地を購入..." 
name="Buy Land..." width="125" left="130"/>
                        <button label="グループ用に購入..." 
label_selected="グループ用に購入..." name="Buy For Group..."/>
-                       <button label="入場許可を購入..." label_selected="入場許可を購入..." 
name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。"/>
+                       <button label="入場許可を購入..." label_selected="入場許可を購入..." 
name="Buy Pass..." tool_tip="この土地への一時的なアクセスを許可します。" width="125" left="130"/>
                        <button label="土地を放棄..." label_selected="土地を放棄..." 
name="Abandon Land..."/>
                        <button label="土地開拓..." label_selected="土地開拓..." 
name="Reclaim Land..."/>
                        <button label="Lindenセール..." 
label_selected="Lindenセール..." name="Linden Sale..." 
tool_tip="土地が所有されており、コンテンツが設定されている必要があります。オークションの対象になっていないことも必要条件です。"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_tools.xml 
b/indra/newview/skins/default/xui/ja/floater_tools.xml
index d88f0b8..ab20496 100644
--- a/indra/newview/skins/default/xui/ja/floater_tools.xml
+++ b/indra/newview/skins/default/xui/ja/floater_tools.xml
@@ -76,7 +76,7 @@
        <check_box label="土地を隆起させる" name="radio raise" />
        <check_box label="土地を低くする" name="radio lower" />
        <check_box label="土地を滑らかにする" name="radio smooth" />
-       <check_box label="土地を荒らす" name="radio noise" />
+       <check_box label="土地を凸凹にする" name="radio noise" />
        <check_box label="土地を元に戻す" name="radio revert" />
        <combo_box name="combobox brush size">
                <combo_item name="Small">
@@ -558,7 +558,7 @@
                                </combo_item>
                        </combo_box>
                        <text name="tex scale">
-                               顔ごとに繰り返す
+                               面ごとに繰り返す
                        </text>
                        <spinner label="水平(U)" name="TexScaleU" />
                        <check_box label="反転" name="checkbox flip s" />
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml 
b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index bc7b074..af870a0 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -132,7 +132,7 @@
                        <menu_item_call label="正午" name="Noon"/>
                        <menu_item_call label="日没" name="Sunset"/>
                        <menu_item_call label="深夜" name="Midnight"/>
-                       <menu_item_call label="地域デフォルトに戻す" name="Revert to 
Region Default"/>
+                       <menu_item_call label="地域の標準設定に戻す" name="Revert to 
Region Default"/>
                        <menu_item_separator label="-----------" 
name="separator"/>
                        <menu_item_call label="環境編集" name="Environment Editor"/>
                </menu>
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general.xml 
b/indra/newview/skins/default/xui/ja/panel_region_general.xml
index cd1b7ce..a0e72b3 100644
--- a/indra/newview/skins/default/xui/ja/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_region_general.xml
@@ -27,7 +27,7 @@
        <check_box label="土地の検索表示をブロック" name="block_parcel_search_check"
             tool_tip="検索結果で、この地域と区画を人に見せる" />
        <button label="?" name="parcel_search_help" />
-       <spinner label="人物の制限" name="agent_limit_spin" />
+       <spinner label="アバター数上限" name="agent_limit_spin" />
        <button label="?" name="agent_limit_help" />
        <spinner label="物体ボーナス" name="object_bonus_spin" />
        <button label="?" name="object_bonus_help" />
diff --git a/install.xml b/install.xml
index effa413..1eb6316 100644
--- a/install.xml
+++ b/install.xml
@@ -1443,23 +1443,23 @@ anguage Infrstructure (CLI) international 
standard</string>
           <key>darwin</key>
           <map>
             <key>md5sum</key>
-            <string>c01efc0182d6f4b665ee136767830fc1</string>
+            <string>352eae0cd76bb561da7b4183fc5a2857</string>
             <key>url</key>
-            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-darwin-20090210.tar.bz2</uri>
+            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-darwin-20090218.tar.bz2</uri>
           </map>
           <key>linux</key>
           <map>
             <key>md5sum</key>
-            <string>58dcd6db82b5b92611e890c954af4901</string>
+            <string>2279e1637568a837d9a4971cd27ed5f7</string>
             <key>url</key>
-            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-linux-20090210.tar.bz2</uri>
+            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-linux-20090218.tar.bz2</uri>
           </map>
           <key>windows</key>
           <map>
             <key>md5sum</key>
-            <string>599659e6d0374533a6ac8d2e2d360c2c</string>
+            <string>311bedab0abbd3a0ddf07216711af0ea</string>
             <key>url</key>
-            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6135-windows-20090210.tar.bz2</uri>
+            
<uri>http://s3.amazonaws.com/viewer-source-downloads/install_pkgs/vivox-2.1.3010.6151-windows-20090218.tar.bz2</uri>
           </map>
         </map>
       </map>

-- 
A client for connecting to 3D metaverses such as Linden Labs Secondlife(tm) and 
OpenSim grids

_______________________________________________
Pkg-games-commits mailing list
[email protected]
http://lists.alioth.debian.org/mailman/listinfo/pkg-games-commits

Reply via email to