Skip to content

Commit

Permalink
Fixed spelling
Browse files Browse the repository at this point in the history
  • Loading branch information
grodansparadis committed Aug 30, 2018
1 parent 2d8f923 commit 0b51cfe
Show file tree
Hide file tree
Showing 13 changed files with 81 additions and 79 deletions.
2 changes: 1 addition & 1 deletion src/vscp/common/dm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7724,7 +7724,7 @@ bool CDM::loadFromXML( void )

wxXmlDocument doc;
if ( !doc.Load ( m_staticXMLPath ) ) {
gpobj->logMsg( _("[DM] ") + _("Faild to load DM. Check format!\n"),
gpobj->logMsg( _("[DM] ") + _("Failed to load DM. Check format!\n"),
DAEMON_LOGMSG_NORMAL, DAEMON_LOGTYPE_DM );
return false;
}
Expand Down
4 changes: 2 additions & 2 deletions src/vscp/common/old/udpthread.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ void *UDPSendThread::Entry()
sizeof( on));

if (1 == bind(m_sendsock, (struct sockaddr*) &addr, sizeof( addr))) {
m_pCtrlObject->logMsg(_("vscpd: Faild to bind send socket. Functionality disabled."), DAEMON_LOGMSG_ERROR);
m_pCtrlObject->logMsg(_("vscpd: Failed to bind send socket. Functionality disabled."), DAEMON_LOGMSG_ERROR);
#ifdef WIN32
if (NULL != m_sendsock) closesocket(m_sendsock);
m_sendsock = NULL;
Expand All @@ -187,7 +187,7 @@ void *UDPSendThread::Entry()
}

} else {
m_pCtrlObject->logMsg(_("vscpd: Faild to create send socket. Functionality disabled."), DAEMON_LOGMSG_ERROR);
m_pCtrlObject->logMsg(_("vscpd: Failed to create send socket. Functionality disabled."), DAEMON_LOGMSG_ERROR);
#ifdef WIN32
m_sendsock = NULL;
#else
Expand Down
2 changes: 1 addition & 1 deletion src/vscp/common/tcpipsrv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2430,7 +2430,7 @@ void TCPClientThread::handleChallenge( void )
memset( m_pClientItem->m_sid, 0, sizeof( m_pClientItem->m_sid ) );
if ( !gpobj->generateSessionId( (const char *)m_pClientItem->m_currentCommand.mbc_str(),
m_pClientItem->m_sid ) ) {
write( MSG_FAILD_TO_GENERATE_SID, strlen ( MSG_FAILD_TO_GENERATE_SID ) );
write( MSG_FAILED_TO_GENERATE_SID, strlen ( MSG_FAILED_TO_GENERATE_SID ) );
return;
}

Expand Down
2 changes: 1 addition & 1 deletion src/vscp/common/tcpipsrv.h
Original file line number Diff line number Diff line change
Expand Up @@ -93,7 +93,7 @@ WX_DECLARE_LIST( struct stcp_connection, TCPIPCLIENTS );
#define MSG_VARIABLE_NOT_DEFINED "-OK - Variable is not defined.\r\n"
#define MSG_MOT_ALLOWED_TO_SEND_EVENT "-OK - Not allowed to sen this event (contact admin).\r\n"
#define MSG_INVALID_PATH "-OK - Invalid path.\r\n"
#define MSG_FAILD_TO_GENERATE_SID "-OK - Failed to generate sid.\r\n"
#define MSG_FAILED_TO_GENERATE_SID "-OK - Failed to generate sid.\r\n"

#define MSG_FAILED_TO_CREATE_TABLE "-OK - Failed to create (one or more) table(s).\r\n"
#define MSG_FAILED_TO_ADD_TABLE_TO_DB "-OK - Failed to add table to database.\r\n"
Expand Down
6 changes: 3 additions & 3 deletions src/vscp/common/version.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,10 +34,10 @@
// I M P O T A N T ! ! ! Lines below must be located at line 35/36/37/40/42/43 I M P O T A N T ! ! !
#define VSCPD_MAJOR_VERSION 13
#define VSCPD_MINOR_VERSION 1
#define VSCPD_RELEASE_VERSION 0
#define VSCPD_BUILD_VERSION 14
#define VSCPD_RELEASE_VERSION 1
#define VSCPD_BUILD_VERSION 0

#define VSCPD_DISPLAY_VERSION "13.1.0.14 Aluminium"
#define VSCPD_DISPLAY_VERSION "13.1.1.0 Aluminium"

#define VSCPD_COPYRIGHT "Copyright (C) 2000-2018, Grodans Paradis AB, https://www.grodansparadis.com"
#define VSCPD_COPYRIGHT_HTML "Copyright (C) 2000-2018, <a href=\"mailto:info@grodansparadis.com\">Grodans Paradis AB</a>, <a hrefs=\"https://www.grodansparadis.com\">https://www.grodansparadis.com</a>"
Expand Down
60 changes: 30 additions & 30 deletions src/vscp/common/websocket.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,20 +79,20 @@ enum {
WEBSOCK_ERROR_TABLE_LOG_MISSING_VALUE, // Missing value
WEBSOCK_ERROR_TABLE_LOG_FAILED, // Failed to log data
WEBSOCK_ERROR_TABLE_NEED_SQL, // Missing SQL expression
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_RECORDS, // Failed to get # records
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_FIRSTDATE,// Failed to get first date
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_LASTDATE, // Failed to get last date
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_SUM, // Failed to get sum
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MIN, // Failed to get min
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MAX, // Failed to get max
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_AVERAGE, // Failed to get average
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MEDIAN, // Failed to get median
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_STDDEV, // Failed to get stddev
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_VARIANCE, // Failed to get variance
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MODE, // Failed to get mode
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_UPPERQ, // Failed to get upperq
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_LOWERQ, // Failed to get lowerq
WEBSOCK_ERROR_TABLE_FAILD_COMMAND_CLEAR // Failed to clear entries
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_RECORDS, // Failed to get # records
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_FIRSTDATE,// Failed to get first date
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_LASTDATE, // Failed to get last date
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_SUM, // Failed to get sum
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MIN, // Failed to get min
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MAX, // Failed to get max
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_AVERAGE, // Failed to get average
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MEDIAN, // Failed to get median
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_STDDEV, // Failed to get stddev
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_VARIANCE, // Failed to get variance
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MODE, // Failed to get mode
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_UPPERQ, // Failed to get upperq
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_LOWERQ, // Failed to get lowerq
WEBSOCK_ERROR_TABLE_FAILED_COMMAND_CLEAR // Failed to clear entries
};

#define WEBSOCK_STR_ERROR_NO_ERROR "Everything is OK"
Expand All @@ -114,28 +114,28 @@ enum {
#define WEBSOCK_STR_ERROR_TABLE_NO_DATA "No data in table"
#define WEBSOCK_STR_ERROR_TABLE_ERROR_READING "Error reading table"
#define WEBSOCK_STR_ERROR_TABLE_CREATE_FORMAT "Table create format was wrong"
#define WEBSOCK_STR_ERROR_TABLE_DELETE_FAILED "Table delete faild"
#define WEBSOCK_STR_ERROR_TABLE_LIST_FAILED "Table list faild"
#define WEBSOCK_STR_ERROR_TABLE_DELETE_FAILED "Table delete failed"
#define WEBSOCK_STR_ERROR_TABLE_LIST_FAILED "Table list failed"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_TO_GET "Failed to get table (is it available?)"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_GET_DATA "Failed to get table data"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_CLEAR "Failed to clear table"
#define WEBSOCK_STR_ERROR_TABLE_LOG_MISSING_VALUE "A value is needed"
#define WEBSOCK_STR_ERROR_TABLE_LOG_FAILED "Failed to log data"
#define WEBSOCK_STR_ERROR_TABLE_NEED_SQL "Missing SQL expression"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_RECORDS "Faild to get number of records"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_FIRSTDATE "Faild to get first date"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_LASTDATE "Faild to get last date"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_SUM "Faild to get sum"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MIN "Faild to get min"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MAX "Faild to get max"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_AVERAGE "Faild to get average"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MEDIAN "Faild to get median"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_STDDEV "Faild to get stddev"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_VARIANCE "Faild to get variance"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MODE "Faild to get mode"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_UPPERQ "Faild to get upperq"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_LOWERQ "Faild to get lowerq"
#define WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_CLEAR "Faild to clear table enteries"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_RECORDS "Failed to get number of records"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_FIRSTDATE "Failed to get first date"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_LASTDATE "Failed to get last date"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_SUM "Failed to get sum"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MIN "Failed to get min"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MAX "Failed to get max"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_AVERAGE "Failed to get average"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MEDIAN "Failed to get median"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_STDDEV "Failed to get stddev"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_VARIANCE "Failed to get variance"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MODE "Failed to get mode"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_UPPERQ "Failed to get upperq"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_LOWERQ "Failed to get lowerq"
#define WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_CLEAR "Failed to clear table enteries"

WX_DECLARE_LIST(vscpEventFilter, TRIGGERLIST);

Expand Down
60 changes: 30 additions & 30 deletions src/vscp/common/websocketsrv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3582,8 +3582,8 @@ ws1_command( struct web_connection *conn,
double count;
if ( !pTable->getNumberOfRecordsForRange( wxStart, wxEnd, &count ) ) {
wxstr = wxString::Format( _("-;TBL_RECORDS;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_RECORDS,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_RECORDS );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_RECORDS,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_RECORDS );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -3709,8 +3709,8 @@ ws1_command( struct web_connection *conn,
wxDateTime first;
if ( !pTable->getFirstDate( first ) ) {
wxstr = wxString::Format( _("-;TBL_FIRSTDATE;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_FIRSTDATE,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_FIRSTDATE );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_FIRSTDATE,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_FIRSTDATE );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -3835,8 +3835,8 @@ ws1_command( struct web_connection *conn,
wxDateTime last;
if ( !pTable->getLastDate( last ) ) {
wxstr = wxString::Format( _("-;TBL_LASTDATE;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_LASTDATE,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_LASTDATE );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_LASTDATE,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_LASTDATE );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -3961,8 +3961,8 @@ ws1_command( struct web_connection *conn,
double sum;
if ( !pTable->getSumValue( wxStart, wxEnd, &sum ) ) {
wxstr = wxString::Format( _("-;TBL_SUM;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_SUM,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_SUM );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_SUM,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_SUM );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4087,8 +4087,8 @@ ws1_command( struct web_connection *conn,
double min;
if ( !pTable->getMinValue( wxStart, wxEnd, &min ) ) {
wxstr = wxString::Format( _("-;TBL_MIN;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MIN,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MIN );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MIN,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MIN );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4213,8 +4213,8 @@ ws1_command( struct web_connection *conn,
double max;
if ( !pTable->getMaxValue( wxStart, wxEnd, &max ) ) {
wxstr = wxString::Format( _("-;TBL_MAX;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MAX,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MAX );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MAX,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MAX );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4339,8 +4339,8 @@ ws1_command( struct web_connection *conn,
double average;
if ( !pTable->getSumValue( wxStart, wxEnd, &average ) ) {
wxstr = wxString::Format( _("-;TBL_AVERAGE;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_AVERAGE,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_AVERAGE );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_AVERAGE,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_AVERAGE );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4465,8 +4465,8 @@ ws1_command( struct web_connection *conn,
double median;
if ( !pTable->getMedianValue( wxStart, wxEnd, &median ) ) {
wxstr = wxString::Format( _("-;TBL_MEDIAN;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MEDIAN,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MEDIAN );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MEDIAN,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MEDIAN );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4591,8 +4591,8 @@ ws1_command( struct web_connection *conn,
double stddev;
if ( !pTable->getStdevValue( wxStart, wxEnd, &stddev ) ) {
wxstr = wxString::Format( _("-;TBL_STDDEV;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_STDDEV,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_STDDEV );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_STDDEV,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_STDDEV );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4717,8 +4717,8 @@ ws1_command( struct web_connection *conn,
double variance;
if ( !pTable->getVarianceValue( wxStart, wxEnd, &variance ) ) {
wxstr = wxString::Format( _("-;TBL_VARIANCE;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_VARIANCE,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_VARIANCE );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_VARIANCE,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_VARIANCE );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4843,8 +4843,8 @@ ws1_command( struct web_connection *conn,
double mode;
if ( !pTable->getModeValue( wxStart, wxEnd, &mode ) ) {
wxstr = wxString::Format( _("-;TBL_MODE;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_MODE,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_MODE );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_MODE,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_MODE );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -4969,8 +4969,8 @@ ws1_command( struct web_connection *conn,
double lowerq;
if ( !pTable->getLowerQuartileValue( wxStart, wxEnd, &lowerq ) ) {
wxstr = wxString::Format( _("-;TBL_LOWERQ;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_LOWERQ,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_LOWERQ );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_LOWERQ,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_LOWERQ );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -5095,8 +5095,8 @@ ws1_command( struct web_connection *conn,
double upperq;
if ( !pTable->getUppeQuartileValue( wxStart, wxEnd, &upperq ) ) {
wxstr = wxString::Format( _("-;TBL_UPPERQ;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_UPPERQ,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_UPPERQ );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_UPPERQ,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_UPPERQ );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down Expand Up @@ -5226,8 +5226,8 @@ ws1_command( struct web_connection *conn,
if ( bClearAll ) {
if ( !pTable->clearTable() ) {
wxstr = wxString::Format( _("-;TBL_CLEAR;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_CLEAR,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_CLEAR );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_CLEAR,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_CLEAR );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand All @@ -5240,8 +5240,8 @@ ws1_command( struct web_connection *conn,
else {
if ( !pTable->clearTableRange( wxStart, wxEnd ) ) {
wxstr = wxString::Format( _("-;TBL_CLEAR;%d;%s"),
(int)WEBSOCK_ERROR_TABLE_FAILD_COMMAND_CLEAR,
WEBSOCK_STR_ERROR_TABLE_FAILD_COMMAND_CLEAR );
(int)WEBSOCK_ERROR_TABLE_FAILED_COMMAND_CLEAR,
WEBSOCK_STR_ERROR_TABLE_FAILED_COMMAND_CLEAR );

web_websocket_write( conn,
WEB_WEBSOCKET_OPCODE_TEXT,
Expand Down

0 comments on commit 0b51cfe

Please sign in to comment.