text:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package erp.mtrn.data;

import cfd.DCfd;
import erp.mhrs.data.SDataPayrollReceiptIssue;
import erp.mod.log.db.SDbBillOfLading;
import sa.lib.xml.SXmlConsts;

/**
 *
 * @author Sergio Flores
 */
public final class SCfdPacket implements java.io.Serializable {

    private int mnCfdId;                        // used in creation of SDataCfd
    private java.lang.String msCfdSeries;       // used in creation of SDataCfd
    private int mnCfdNumber;                    // used in creation of SDataCfd
    private java.lang.String msCfdCertNumber;   // used in creation of SDataCfd
    private java.lang.String msCfdStringSigned; // used in creation of SDataCfd
    private java.lang.String msCfdSignature;    // used in creation of SDataCfd
    private java.lang.String msBaseXUuid;       // used in creation of SDataCfd
    private java.lang.String msDocXml;          // used in creation of SDataCfd
    private java.lang.String msDocXmlName;      // used in creation of SDataCfd
    private java.util.Date mtXmlDatetime;       // used in creation of SDataCfd
    private java.lang.String msXmlRfcEmisor;    // used in creation of SDataCfd
    private java.lang.String msXmlRfcReceptor;  // used in creation of SDataCfd
    private double mdXmlTotalCy;                // used in creation of SDataCfd
    private java.lang.String msCfdUuid;         // used in creation of SDataCfd
    private java.lang.String msCancellationStatus;              // used in creation of SDataCfd
    private java.lang.String msAcknowledgmentCancellationXml;   // used in creation of SDataCfd
    private boolean mbIsCfdConsistent;          // used in creation of SDataCfd
    private int mnFkCfdTypeId;                  // used in creation of SDataCfd
    private int mnFkXmlTypeId;                  // used in creation of SDataCfd
    private int mnFkXmlStatusId;                // used in creation of SDataCfd
    private int mnFkXmlDeliveryTypeId;          // used in creation of SDataCfd
    private int mnFkXmlDeliveryStatusId;        // used in creation of SDataCfd
    private int mnFkUserDeliveryId;             // used in creation of SDataCfd
    private int mnFkCompanyBranchId;            // used in creation of SDataCfd
    private int mnFkFactoringBankId;            // used in creation of SDataCfd
    private int mnDpsYearId;                    // used in creation of SDataCfd
    private int mnDpsDocId;                     // used in creation of SDataCfd
    private int mnRecordEntryYearId;                    // used in creation of SDataCfd
    private int mnRecordEntryPeriodId;                  // used in creation of SDataCfd
    private int mnRecordEntryBookkeepingCenterId;       // used in creation of SDataCfd
    private java.lang.String msRecordEntryRecordTypeId; // used in creation of SDataCfd
    private int mnRecordEntryNumberId;                  // used in creation of SDataCfd
    private int mnRecordEntryEntryId;                   // used in creation of SDataCfd
    private int mnPayrollPayrollId;             // used in creation of SDataCfd
    private int mnPayrollEmployeeId;            // used in creation of SDataCfd
    private int mnPayrollBizPartnerId;          // used in creation of SDataCfd
    private int mnPayrollReceiptPayrollId;      // used in creation of SDataCfd
    private int mnPayrollReceiptEmployeeId;     // used in creation of SDataCfd
    private int mnPayrollReceiptIssueId;        // used in creation of SDataCfd
    private int mnReceiptPaymentId;             // used in creation of SDataCfd
    private int mnBillOfLadingId;               // used in creation of SDataCfd

    private int mnAuxAnnulType;
    private SDataDps moAuxDataDps;
    private SDataCfdPayment moAuxDataCfdPayment;
    private SDataPayrollReceiptIssue moAuxDataPayrollReceiptIssue;
    private SDbBillOfLading moAuxDataBillOfLading;

    private cfd.DElement moAuxCfdRootElement;
    private int mnAuxPacId;
    private int mnAuxSignAndCancelLogEntryId;
    private int mnAuxStampQuantity;
    private boolean mbAuxStampConsume;

    public SCfdPacket() {
        mnCfdId = 0;
        msCfdSeries = "";
        mnCfdNumber = 0;
        msCfdCertNumber = "";
        msCfdStringSigned = "";
        msCfdSignature = "";
        msBaseXUuid = "";
        msDocXml = "";
        msDocXmlName = "";
        mtXmlDatetime = null;
        msXmlRfcEmisor = "";
        msXmlRfcReceptor = "";
        mdXmlTotalCy = 0;
        msCfdUuid = "";
        msCancellationStatus = "";
        msAcknowledgmentCancellationXml = "";
        mbIsCfdConsistent = true;
        mnFkCfdTypeId = 0 ;
        mnFkXmlTypeId = 0 ;
        mnFkXmlStatusId = 0;
        mnFkXmlDeliveryTypeId = 0;
        mnFkXmlDeliveryStatusId = 0;
        mnFkUserDeliveryId = 0;
        mnFkCompanyBranchId = 0;
        mnDpsYearId = 0;
        mnDpsDocId = 0;
        mnRecordEntryYearId = 0;
        mnRecordEntryPeriodId = 0;
        mnRecordEntryBookkeepingCenterId = 0;
        msRecordEntryRecordTypeId = "";
        mnRecordEntryNumberId = 0;
        mnRecordEntryEntryId = 0;
        mnPayrollPayrollId = 0;
        mnPayrollEmployeeId = 0;
        mnPayrollBizPartnerId = 0;
        mnPayrollReceiptPayrollId = 0;
        mnPayrollReceiptEmployeeId = 0;
        mnPayrollReceiptIssueId = 0;
        mnReceiptPaymentId = 0;
        mnBillOfLadingId = 0;

        mnAuxAnnulType = 0;
        moAuxDataDps = null;
        moAuxDataCfdPayment = null;
        moAuxDataPayrollReceiptIssue = null;
        moAuxDataBillOfLading = null;

        moAuxCfdRootElement = null;
        mnAuxPacId = 0;
        mnAuxSignAndCancelLogEntryId = 0;
        mnAuxStampQuantity = 0;
        mbAuxStampConsume = false;
    }

    public void setCfdId(int n) { mnCfdId = n; }
    public void setCfdSeries(java.lang.String s) { msCfdSeries = s; }
    public void setCfdNumber(int n) { mnCfdNumber = n; }
    public void setCfdCertNumber(java.lang.String s) { msCfdCertNumber = s; }
    public void setCfdStringSigned(java.lang.String s) { msCfdStringSigned = s; }
    public void setCfdSignature(java.lang.String s) { msCfdSignature = s; }
    public void setBaseXUuid(java.lang.String s) { msBaseXUuid = s; }
    public void setDocXml(java.lang.String s) { msDocXml = s; }
    public void setDocXmlName(java.lang.String s) { msDocXmlName = s; }
    public void setXmlDate(java.util.Date t) { mtXmlDatetime = t; }
    public void setXmlRfcEmisor(java.lang.String s) { msXmlRfcEmisor = s; }
    public void setXmlRfcReceptor(java.lang.String s) { msXmlRfcReceptor = s; }
    public void setXmlTotalCy(double d) { mdXmlTotalCy = d; }
    public void setCfdUuid(java.lang.String s) { msCfdUuid = s; }
    public void setCancellationStatus(java.lang.String s) { msCancellationStatus = s; }
    public void setAcknowledgmentCancellationXml(java.lang.String s) { msAcknowledgmentCancellationXml = s; }
    public void setIsCfdConsistent(boolean b) { mbIsCfdConsistent = b; }
    public void setFkCfdTypeId(int n) { mnFkCfdTypeId = n; }
    public void setFkXmlTypeId(int n) { mnFkXmlTypeId = n; }
    public void setFkXmlStatusId(int n) { mnFkXmlStatusId = n; }
    public void setFkXmlDeliveryTypeId(int n) { mnFkXmlDeliveryTypeId = n; }
    public void setFkXmlDeliveryStatusId(int n) { mnFkXmlDeliveryStatusId = n; }
    public void setFkUserDeliveryId(int n) { mnFkUserDeliveryId = n; }
    public void setFkCompanyBranchId(int n) { mnFkCompanyBranchId = n; }
    public void setFkFactoringBankId(int n) { mnFkFactoringBankId = n; }
    public void setDpsYearId(int n) { mnDpsYearId = n; }
    public void setDpsDocId(int n) { mnDpsDocId = n; }
    public void setRecordEntryYearId(int n) { mnRecordEntryYearId = n; }
    public void setRecordEntryPeriodId(int n) { mnRecordEntryPeriodId = n; }
    public void setRecordEntryBookkeepingCenterId(int n) { mnRecordEntryBookkeepingCenterId = n; }
    public void setRecordEntryRecordTypeId(java.lang.String s) { msRecordEntryRecordTypeId = s; }
    public void setRecordEntryNumberId(int n) { mnRecordEntryNumberId = n; }
    public void setRecordEntryEntryId(int n) { mnRecordEntryEntryId = n; }
    public void setPayrollPayrollId(int n) { mnPayrollPayrollId = n; }
    public void setPayrollEmployeeId(int n) { mnPayrollEmployeeId = n; }
    public void setPayrollBizPartnerId(int n) { mnPayrollBizPartnerId = n; }
    public void setPayrollReceiptPayrollId(int n) { mnPayrollReceiptPayrollId = n; }
    public void setPayrollReceiptEmployeeId(int n) { mnPayrollReceiptEmployeeId = n; }
    public void setPayrollReceiptIssueId(int n) { mnPayrollReceiptIssueId = n; }
    public void setReceiptPaymentId(int n) { mnReceiptPaymentId = n; }
    public void setBillOfLadingId(int n) { mnBillOfLadingId = n; }

    public void setAuxAnnulType(int n) { mnAuxAnnulType = n; }
    public void setAuxDataDps(SDataDps o) { moAuxDataDps = o; }
    public void setAuxDataCfdPayment(SDataCfdPayment o) { moAuxDataCfdPayment = o; }
    public void setAuxDataPayrollReceiptIssue(SDataPayrollReceiptIssue o) { moAuxDataPayrollReceiptIssue = o; }
    public void setAuxDataBillOfLading(SDbBillOfLading o) { moAuxDataBillOfLading = o; }

    public void setAuxCfdRootElement(cfd.DElement o) { moAuxCfdRootElement = o; }
    public void setAuxPacId(int n) { mnAuxPacId = n; }
    public void setAuxSignAndCancelLogEntryId(int n) { mnAuxSignAndCancelLogEntryId = n; }
    public void setAuxStampQuantity(int n) { mnAuxStampQuantity = n; }
    public void setAuxStampConsume(boolean b) { mbAuxStampConsume = b; }

    public int getCfdId() { return mnCfdId; }
    public java.lang.String getCfdSeries() { return msCfdSeries; }
    public int getCfdNumber() { return mnCfdNumber; }
    //public java.lang.String getCfdCertNumber() { return msCfdCertNumber; }
    public java.lang.String getCfdStringSigned() { return msCfdStringSigned; }
    public java.lang.String getCfdSignature() { return msCfdSignature; }
    public java.lang.String getBaseXUuid() { return msBaseXUuid; }
    public java.lang.String getDocXml() { return msDocXml; }
    public java.lang.String getDocXmlName() { return msDocXmlName; }
    public java.util.Date getXmlDate() { return mtXmlDatetime; }
    //public java.lang.String getXmlRfcEmisor() { return msXmlRfcEmisor; }
    //public java.lang.String getXmlRfcReceptor() { return msXmlRfcReceptor; }
    //public double getXmlTotalCy() { return mdXmlTotalCy; }
    //public java.lang.String getCfdUuid() { return msCfdUuid; }
    public java.lang.String getCancellationStatus() { return msCancellationStatus; }
    public java.lang.String getAcknowledgmentCancellationXml() { return msAcknowledgmentCancellationXml; }
    public boolean getIsCfdConsistent() { return mbIsCfdConsistent; }
    public int getFkCfdTypeId() { return mnFkCfdTypeId; }
    public int getFkXmlTypeId() { return mnFkXmlTypeId; }
    public int getFkXmlStatusId() { return mnFkXmlStatusId; }
    public int getFkXmlDeliveryTypeId() { return mnFkXmlDeliveryTypeId; }
    public int getFkXmlDeliveryStatusId() { return mnFkXmlDeliveryStatusId; }
    public int getFkUserDeliveryId() { return mnFkUserDeliveryId; }
    public int getFkCompanyBranchId() { return mnFkCompanyBranchId; }
    public int getFkFactoringBankId() { return mnFkFactoringBankId; }
    public int getDpsYearId() { return mnDpsYearId; }
    public int getDpsDocId() { return mnDpsDocId; }
    public int getRecordEntryYearId() { return mnRecordEntryYearId; }
    public int getRecordEntryPeriodId() { return mnRecordEntryPeriodId; }
    public int getRecordEntryBookkeepingCenterId() { return mnRecordEntryBookkeepingCenterId; }
    public java.lang.String getRecordEntryRecordTypeId() { return msRecordEntryRecordTypeId; }
    public int getRecordEntryNumberId() { return mnRecordEntryNumberId; }
    public int getRecordEntryEntryId() { return mnRecordEntryEntryId; }
    public int getPayrollPayrollId() { return mnPayrollPayrollId; }
    public int getPayrollEmployeeId() { return mnPayrollEmployeeId; }
    public int getPayrollBizPartnerId() { return mnPayrollBizPartnerId; }
    public int getPayrollReceiptPayrollId() { return mnPayrollReceiptPayrollId; }
    public int getPayrollReceiptEmployeeId() { return mnPayrollReceiptEmployeeId; }
    public int getPayrollReceiptIssueId() { return mnPayrollReceiptIssueId; }
    public int getReceiptPaymentId() { return mnReceiptPaymentId; }
    public int getBillOfLadingId() { return mnBillOfLadingId; }

    public int getAuxAnnulType() { return mnAuxAnnulType; }
    public SDataDps getAuxDataDps() { return moAuxDataDps; }
    public SDataCfdPayment getAuxDataCfdPayment() { return moAuxDataCfdPayment; }
    public SDataPayrollReceiptIssue getAuxDataPayrollReceiptIssue() { return moAuxDataPayrollReceiptIssue; }
    public SDbBillOfLading getAuxDataBillOfLading() { return moAuxDataBillOfLading; }

    public cfd.DElement getAuxCfdRootElement() { return moAuxCfdRootElement; }
    public int getAuxPacId() { return mnAuxPacId; }
    public int getAuxSignAndCancelLogEntryId() { return mnAuxSignAndCancelLogEntryId; }
    public int getAuxStampQuantity() { return mnAuxStampQuantity; }
    public boolean getAuxStampConsume() { return mbAuxStampConsume; }

    /**
     * Creates a new instance of class erp.mtrn.data.SDataCfd with own data members.
     * @return new instance of class erp.mtrn.data.SDataCfd.
     * @throws java.lang.Exception
     */
    public SDataCfd createDataCfd() throws Exception {
        boolean addXmlHeader = true;

        if (moAuxCfdRootElement == null) {
            // XML, XML name and XML date are supposedly provided
            addXmlHeader = false;   // it is assumed that XML already has its header
        }
        else if (moAuxCfdRootElement instanceof cfd.ver2.DElementComprobante) {
            msDocXml = ((cfd.ver2.DElementComprobante) moAuxCfdRootElement).getElementForXml();
            msDocXmlName = DCfd.createFileName((cfd.ver2.DElementComprobante) moAuxCfdRootElement) + ".xml";
            mtXmlDatetime = ((cfd.ver2.DElementComprobante) moAuxCfdRootElement).getAttFecha().getDatetime();
        }
        else if (moAuxCfdRootElement instanceof cfd.ver32.DElementComprobante) {
            msDocXml = ((cfd.ver32.DElementComprobante) moAuxCfdRootElement).getElementForXml();
            msDocXmlName = DCfd.createFileName((cfd.ver32.DElementComprobante) moAuxCfdRootElement) + ".xml";
            mtXmlDatetime = ((cfd.ver32.DElementComprobante) moAuxCfdRootElement).getAttFecha().getDatetime();
        }
        else if (moAuxCfdRootElement instanceof cfd.ver33.DElementComprobante) {
            msDocXml = ((cfd.ver33.DElementComprobante) moAuxCfdRootElement).getElementForXml();
            msDocXmlName = DCfd.createFileName((cfd.ver33.DElementComprobante) moAuxCfdRootElement) + ".xml";
            mtXmlDatetime = ((cfd.ver33.DElementComprobante) moAuxCfdRootElement).getAttFecha().getDatetime();
        }
        else {
            throw new Exception("Not supported CFD version!");
        }

        if (addXmlHeader) {
            msDocXml = SXmlConsts.XML_HEADER + msDocXml;
        }

        SDataCfd cfd = new SDataCfd();
        cfd.setPkCfdId(mnCfdId);
        cfd.setSeries(msCfdSeries);
        cfd.setNumber(mnCfdNumber);
        cfd.setTimestamp(mtXmlDatetime);
        cfd.setCertNumber(msCfdCertNumber);
        cfd.setStringSigned(msCfdStringSigned);
        cfd.setSignature(msCfdSignature);
        cfd.setBaseXUuid(msBaseXUuid);
        cfd.setDocXml(msDocXml);
        cfd.setDocXmlName(msDocXmlName);
        cfd.setDocXmlRfcEmi(msXmlRfcEmisor);
        cfd.setDocXmlRfcRec(msXmlRfcReceptor);
        cfd.setDocXmlTot(mdXmlTotalCy);
        //cfd...
        cfd.setUuid(msCfdUuid);
        //cfd...
        cfd.setCancellationStatus(msCancellationStatus);
        cfd.setAcknowledgmentCancellationXml(msAcknowledgmentCancellationXml);
        //cfd...
        cfd.setIsConsistent(mbIsCfdConsistent);
        cfd.setFkCfdTypeId(mnFkCfdTypeId);
        cfd.setFkXmlTypeId(mnFkXmlTypeId);
        cfd.setFkXmlStatusId(mnFkXmlStatusId);
        cfd.setFkXmlDeliveryTypeId(mnFkXmlDeliveryTypeId);
        cfd.setFkXmlDeliveryStatusId(mnFkXmlDeliveryStatusId);
        cfd.setFkCompanyBranchId_n(mnFkCompanyBranchId);
        cfd.setFkFactoringBankId_n(mnFkFactoringBankId);
        cfd.setFkDpsYearId_n(mnDpsYearId);
        cfd.setFkDpsDocId_n(mnDpsDocId);
        cfd.setFkRecordYearId_n(mnRecordEntryYearId);
        cfd.setFkRecordPeriodId_n(mnRecordEntryPeriodId);
        cfd.setFkRecordBookkeepingCenterId_n(mnRecordEntryBookkeepingCenterId);
        cfd.setFkRecordRecordTypeId_n(msRecordEntryRecordTypeId);
        cfd.setFkRecordNumberId_n(mnRecordEntryNumberId);
        cfd.setFkRecordEntryId_n(mnRecordEntryEntryId);
        cfd.setFkPayrollPayrollId_n(mnPayrollPayrollId);
        cfd.setFkPayrollEmployeeId_n(mnPayrollEmployeeId);
        cfd.setFkPayrollBizPartnerId_n(mnPayrollBizPartnerId);
        cfd.setFkPayrollReceiptPayrollId_n(mnPayrollReceiptPayrollId);
        cfd.setFkPayrollReceiptEmployeeId_n(mnPayrollReceiptEmployeeId);
        cfd.setFkPayrollReceiptIssueId_n(mnPayrollReceiptIssueId);
        cfd.setFkReceiptPaymentId_n(mnReceiptPaymentId);
        cfd.setFkBillOfLadingId_n(mnBillOfLadingId);
        cfd.setFkUserProcessingId(mnFkUserDeliveryId);
        cfd.setFkUserDeliveryId(mnFkUserDeliveryId);

        cfd.setAuxRfcEmisor(msXmlRfcEmisor);
        cfd.setAuxRfcReceptor(msXmlRfcReceptor);
        cfd.setAuxTotalCy(mdXmlTotalCy);

        return cfd;
    }
}


text:
<!DOCTYPE html>

		<meta charset="UTF-8"/>
		<meta name="generator" content="org.rostlab.relna"/>
		<title>a6cbc016aa8f41988ef4779e5e464083:99243471</title>

Molecular regulation of cytokine gene expression during the immune response.

Abstract

Cytokine expression by immune system cells plays an important role in the regulation of the immune response. On first encounter with antigen, naive CD4+ T helper (Th) cells differentiate into cytokine-producing effector cells. Two types of effector cells characterized by their distinct expression of cytokine profiles have been described. Th1 cells produce IL-2 and IFN-gamma, whereas Th2 cells produce IL-4, IL-5, IL-6, IL-10, and IL-13. In many pathological situations, the balance between Th1 and Th2 immune responses determines the outcome of diverse immunologically mediated clinical syndromes including infectious, autoimmune, and allergic diseases. However, the molecular basis for the tissue-specific expression of Th1/Th2-like cytokines has remained elusive. In this review we evaluate the possible in vivo role of different transcription factors and transcriptional mechanisms in T cell differentiation and the immune response.

redpajama_set_name: RedPajamaGithub


text:
<?php

class Sidane_Threadmarks_XenForo_DataWriter_DiscussionMessage_Post extends XFCP_Sidane_Threadmarks_XenForo_DataWriter_DiscussionMessage_Post
{
  const DATA_THREADMARK = 'threadmarkInfo';

  protected function _getThreadmarkData()
  {
    if (!$threadmark = $this->getExtraData(self::DATA_THREADMARK))
    {
      $threadmark = $this->_getThreadmarksModel()->getByPostId(
        $this->get('post_id')
      );
      $this->setExtraData(self::DATA_THREADMARK, $threadmark);
    }

    return $threadmark;
  }

  protected function _messagePreSave()
  {
    parent::_messagePreSave();
    if (
      $this->isInsert() &&
      !empty(Sidane_Threadmarks_Globals::$threadmarkLabel) &&
      !empty(Sidane_Threadmarks_Globals::$threadmarkCategoryId)
    )
    {
      $post = $this->getMergedData();
      $thread = $this->getDiscussionData();
      $forum = $this->_getForumInfo();

      $threadmarksModel = $this->_getThreadmarksModel();

      $canAddThreadmark = $threadmarksModel->canAddThreadmark(
        $post,
        $thread,
        $forum,
        $null
      );
      if (!$canAddThreadmark)
      {
        $this->error(new XenForo_Phrase(
          'you_do_not_have_permission_to_add_threadmarks'
        ));
      }

      $threadmarkCategory = $threadmarksModel->getThreadmarkCategoryById(
        Sidane_Threadmarks_Globals::$threadmarkCategoryId
      );
      if (!$threadmarksModel->canUseThreadmarkCategory($threadmarkCategory))
      {
        $this->error(new XenForo_Phrase(
          'you_do_not_have_permission_to_use_threadmark_category'
        ));
      }
    }
  }

  protected function _messagePostSave()
  {
    parent::_messagePostSave();

    if ($this->isUpdate() && $this->isChanged('message_state'))
    {
      $threadmark = $this->_getThreadmarkData();
      if (!empty($threadmark))
      {
        $thread = $this->getDiscussionData();
        $dw = XenForo_DataWriter::create(
          'Sidane_Threadmarks_DataWriter_Threadmark'
        );
        $dw->setExistingData($threadmark['threadmark_id']);
        $dw->setExtraData(
          Sidane_Threadmarks_DataWriter_Threadmark::DATA_THREAD,
          $thread
        );
        $dw->set('message_state', $this->get('message_state'));
        $dw->save();
      }
    } else if (
      $this->isInsert() &&
      Sidane_Threadmarks_Globals::$threadmarkLabel &&
      Sidane_Threadmarks_Globals::$threadmarkCategoryId
    )
    {
      $post = $this->getMergedData();
      $thread = $this->getDiscussionData();
      $this->_getThreadmarksModel()->setThreadMark(
        $thread,
        $post,
        Sidane_Threadmarks_Globals::$threadmarkLabel,
        Sidane_Threadmarks_Globals::$threadmarkCategoryId
      );
    }
  }

  protected function _messagePostDelete()
  {
    parent::_messagePostDelete();

    $threadmark = $this->_getThreadmarkData();
    if (!empty($threadmark))
    {
      $thread = $this->getDiscussionData();
      $dw = XenForo_DataWriter::create(
        'Sidane_Threadmarks_DataWriter_Threadmark'
      );
      $dw->setExistingData($threadmark['threadmark_id']);
      $dw->setExtraData(
        Sidane_Threadmarks_DataWriter_Threadmark::DATA_THREAD,
        $thread
      );
      $dw->delete();
    }
  }

  /**
   * @return XenForo_Model|Sidane_Threadmarks_Model_Threadmarks
   */
  protected function _getThreadmarksModel()
  {
    return $this->getModelFromCache('Sidane_Threadmarks_Model_Threadmarks');
  }
}

if (false)
{
  class XFCP_Sidane_Threadmarks_XenForo_DataWriter_DiscussionMessage_Post extends XenForo_DataWriter_DiscussionMessage_Post {}
}


text:
/*
Main Stylus CSS File
Imports and arranges all other stylus files.
*/
html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td,
article,
aside,
canvas,
details,
embed,
figure,
figcaption,
footer,
header,
hgroup,
menu,
nav,
output,
ruby,
section,
summary,
time,
mark,
audio,
video {
  margin: 0;
  padding: 0;
  border: 0;
  font-size: 100%;
  font: inherit;
  vertical-align: baseline;
}
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
menu,
nav,
section {
  display: block;
}
body {
  line-height: 1;
}
ol,
ul {
  list-style: none;
}
blockquote,
q {
  quotes: none;
}
blockquote:before,
blockquote:after,
q:before,
q:after {
  content: '';
  content: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
td {
  vertical-align: top;
}
@font-face {
  font-family: 'noticia';
  src: url("/admin/ui/fonts/noticiatext-italic-webfont.eot");
  src: url("/admin/ui/fonts/noticiatext-italic-webfont.eot?#iefix") format('embedded-opentype'), url("/admin/ui/fonts/noticiatext-italic-webfont.woff") format('woff'), url("/admin/ui/fonts/noticiatext-italic-webfont.ttf") format('truetype'), url("/admin/ui/fonts/noticiatext-italic-webfont.svg#noticia_textitalic") format('svg');
  font-weight: normal;
  font-style: italic;
}
@font-face {
  font-family: 'noticia';
  src: url("/admin/ui/fonts/noticiatext-regular-webfont.eot");
  src: url("/admin/ui/fonts/noticiatext-regular-webfont.eot?#iefix") format('embedded-opentype'), url("/admin/ui/fonts/noticiatext-regular-webfont.woff") format('woff'), url("/admin/ui/fonts/noticiatext-regular-webfont.ttf") format('truetype'), url("/admin/ui/fonts/noticiatext-regular-webfont.svg#noticia_textregular") format('svg');
  font-weight: normal;
  font-style: normal;
}
@font-face {
  font-family: 'titillium';
  src: url("/admin/ui/fonts/titilliumtext25l002-webfont.eot");
  src: url("/admin/ui/fonts/titilliumtext25l002-webfont.eot?#iefix") format('embedded-opentype'), url("/admin/ui/fonts/titilliumtext25l002-webfont.woff") format('woff'), url("/admin/ui/fonts/titilliumtext25l002-webfont.ttf") format('truetype'), url("/admin/ui/fonts/titilliumtext25l002-webfont.svg#titilliumtext25l600_wt") format('svg');
  font-weight: bold;
  font-style: normal;
}
@font-face {
  font-family: 'titillium';
  src: url("/admin/ui/fonts/titilliumtext25l005-webfont.eot");
  src: url("/admin/ui/fonts/titilliumtext25l005-webfont.eot?#iefix") format('embedded-opentype'), url("/admin/ui/fonts/titilliumtext25l005-webfont.woff") format('woff'), url("/admin/ui/fonts/titilliumtext25l005-webfont.ttf") format('truetype'), url("/admin/ui/fonts/titilliumtext25l005-webfont.svg#titilliumtext25l1_wt") format('svg');
  font-weight: normal;
  font-style: normal;
}
html {
  background: url("/admin/ui/images/gui-bg.jpg") left top repeat #2d2d2d;
}
body {
  padding: 0;
}
a {
  text-decoration: none;
}
a:visited {
  color: #efefef;
}
h1,
h2,
h3 {
  display: block;
}
h1 {
  font-size: 48px;
  letter-spacing: 0;
  padding-bottom: 5px;
  padding-left: 15px;
  padding-right: 15px;
}
h2 {
  font-size: 38px;
  letter-spacing: 0;
  padding-bottom: 12px;
  color: #efefef;
}
h3 {
  font-family: 'noticia', georgia, serif;
  font-size: 20px;
  letter-spacing: 0;
  padding-bottom: 8px;
  color: #ccc;
  font-style: italic;
}
h4 {
  font-size: 16px;
  letter-spacing: 0;
  padding-bottom: 3px;
}
nav {
  background: transparent;
  float: right;
}
table {
  width: 100%;
  height: auto;
  border-collapse: collapse;
}
td {
  font-family: 'menlo', 'consolas', 'monaco', monospace;
  padding: 6px 5px 6px;
  vertical-align: middle;
}
tr:first-child td {
  padding-top: 8px;
}
th {
  text-align: left;
  padding: 0 5px 5px;
}
#header {
  width: 100%;
  height: 53px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  background: #171717;
  margin: 0 0 22px 0;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 10;
}
#navbar {
  width: auto;
  height: 49px;
  background: #383838;
  background: -moz-linear-gradient(top, #606060 0%, #383838 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #606060), color-stop(100%, #383838));
  background: -webkit-linear-gradient(top, #606060 0%, #383838 100%);
  background: -o-linear-gradient(top, #606060 0%, #383838 100%);
  background: -ms-linear-gradient(top, #606060 0%, #383838 100%);
  background: linear-gradient(top bottom, #606060 0%, #383838 100%);
  -webkit-box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
  -moz-box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
}
#nav-ul {
  width: auto;
  height: 49px;
}
.nav-li {
  width: 63px;
  height: 49px;
  background: #3a3a3a;
  background: -moz-linear-gradient(top, #606060 0%, #3a3a3a 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #606060), color-stop(100%, #3a3a3a));
  background: -webkit-linear-gradient(top, #606060 0%, #3a3a3a 100%);
  background: -o-linear-gradient(top, #606060 0%, #3a3a3a 100%);
  background: -ms-linear-gradient(top, #606060 0%, #3a3a3a 100%);
  background: linear-gradient(top bottom, #606060 0%, #3a3a3a 100%);
  -webkit-box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
  -moz-box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.18);
  border-left: 1px solid #171717;
  float: right;
  position: relative;
}
.nav-li:hover {
  background: #484848;
  background: -moz-linear-gradient(top, #6b6b6b 0%, #484848 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #6b6b6b), color-stop(100%, #484848));
  background: -webkit-linear-gradient(top, #6b6b6b 0%, #484848 100%);
  background: -o-linear-gradient(top, #6b6b6b 0%, #484848 100%);
  background: -ms-linear-gradient(top, #6b6b6b 0%, #484848 100%);
  background: linear-gradient(top bottom, #6b6b6b 0%, #484848 100%);
}
.nav-li:hover a {
  opacity: 1;
  filter: alpha(opacity=100);
}
.nav-li a {
  opacity: 0.6;
  filter: alpha(opacity=60);
}
#nav-snapshot  a {
  background-position: 15px -343px;
}
#nav-cluster   a {
  background-position: 16px 10px;
}
#nav-ring      a {
  background-position: 15px -39px;
}
#nav-objects   a {
  background-position: 14px -90px;
}
#nav-mapreduce a {
  background-position: 14px -140px;
}
#nav-graphs    a {
  background-position: 14px -192px;
}
#nav-logs      a {
  background-position: 14px -248px;
}
#nav-support   a {
  background-position: 14px -300px;
}
#nav-nodes     a {
  background-position: 15px -392px;
}
.nav-item {
  width: 63px;
  height: 49px;
  background: url("/admin/ui/images/nav-icons.png") -100px 100px no-repeat transparent;
  display: block;
  font-size: 18px;
  vertical-align: middle;
}
.indicator {
  width: 63px;
  height: 4px;
  -webkit-box-shadow: inset 0 1px 2px rgba(255,255,255,0.4);
  -moz-box-shadow: inset 0 1px 2px rgba(255,255,255,0.4);
  box-shadow: inset 0 1px 2px rgba(255,255,255,0.4);
  display: block;
  background: #767676;
  border-top: 1px solid #171717;
  position: absolute;
  bottom: 0;
  left: 0;
}
.nav-li.active {
  -webkit-box-shadow: inset 0 0 18px rgba(0,0,0,0.7);
  -moz-box-shadow: inset 0 0 18px rgba(0,0,0,0.7);
  box-shadow: inset 0 0 18px rgba(0,0,0,0.7);
  background: #363636;
}
.nav-li.active a {
  opacity: 1;
  filter: alpha(opacity=100);
}
.nav-li.active span {
  -webkit-box-shadow: 0 0 20px #f99d33;
  -moz-box-shadow: 0 0 20px #f99d33;
  box-shadow: 0 0 20px #f99d33;
  background: #f99d33;
  background: -moz-linear-gradient(top, #fbbd76 0%, #f99d33 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #fbbd76), color-stop(100%, #f99d33));
  background: -webkit-linear-gradient(top, #fbbd76 0%, #f99d33 100%);
  background: -o-linear-gradient(top, #fbbd76 0%, #f99d33 100%);
  background: -ms-linear-gradient(top, #fbbd76 0%, #f99d33 100%);
  background: linear-gradient(top bottom, #fbbd76 0%, #f99d33 100%);
}
.nav-li .nav-item:hover {
  cursor: pointer;
}
#riak-control-logo {
  width: 224px;
  height: 42px;
  display: block;
  background: url("/admin/ui/images/riak-control-logo.png") right bottom no-repeat transparent;
  float: left;
}
#wrapper {
  width: auto;
  height: auto;
  background: transparent;
  margin: 75px auto 8px;
  z-index: 1;
}
#content-well {
  overflow: hidden;
  background: transparent;
  padding: 5px 25px 0;
  margin-bottom: 50px;
}
#title-container,
footer {
  text-align: center;
}
.side-line,
.title-box {
  vertical-align: top;
  float: left;
}
.side-line {
  width: 26%;
  height: 30px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
}
.title-box {
  width: 48%;
  height: auto;
  padding: 0 0 8px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  position: relative;
}
.vert-border,
.vert-border-left,
.vert-border-right {
  width: 1px;
  height: 100%;
  display: block;
  background: rgba(255,255,255,0.18);
  position: absolute;
  top: 0;
}
.vert-border-left {
  left: 0;
}
.vert-border-right {
  right: 0;
}
footer {
  padding: 0 25px 0;
  margin-bottom: 25px;
}
footer .title-box {
  width: 16%;
  height: auto;
  border-bottom: none;
  margin-bottom: 25px;
}
footer .side-line {
  width: 42%;
  height: 25px;
}
#basho-logo {
  display: block;
  background: transparent;
}
#tooltips {
  font-family: 'noticia', georgia, serif;
  width: 100%;
  height: auto;
  position: fixed;
  bottom: 0;
  left: 0;
  border-top: 2px solid #777;
}
#display-tips {
  background: rgba(0,0,0,0.85);
  line-height: 1.5;
  font-style: italic;
  font-size: 15px;
  color: #aaa;
  padding: 25px 25px 25px;
}
.gui-dropdown-wrapper {
  width: auto;
  height: 30px;
  background: url("/admin/ui/images/dropdown-left.png") left top no-repeat transparent;
  position: relative;
  max-width: 250px;
}
.gui-dropdown-wrapper.long {
  width: 292px;
  height: auto;
  max-width: 1000px;
}
.gui-dropdown-bg {
  width: auto;
  height: 22px;
  font-family: 'titillium', helvetica, arial, sans-serif;
  padding: 8px 0 0 5px;
  font-size: 14px;
  background: url("/admin/ui/images/dropdown-bg.png") left top repeat-x transparent;
  margin: 0 28px 0 10px;
}
.gui-dropdown-cap {
  width: 30px;
  height: 30px;
  position: absolute;
  right: 0;
  top: 0;
  background: url("/admin/ui/images/dropdown-right.png") right top no-repeat transparent;
}
.gui-dropdown {
  width: 100%;
  height: 30px;
  opacity: 0;
  filter: alpha(opacity=0);
  border: 0;
  outline: none;
  float: left;
  margin-top: -30px;
}
.gui-point-button,
.gui-rect-button,
.gui-point-button-right {
  width: 137px;
  height: 40px;
  display: inline-block;
  cursor: pointer;
  border: 0;
  margin-top: 3px;
}
.gui-point-button {
  background: url("/admin/ui/images/pointbutton-sprite.png") left top no-repeat transparent;
}
.gui-point-button-right {
  background: url("/admin/ui/images/pointbutton-right-sprite.png") left top no-repeat transparent;
}
.gui-rect-button {
  background: url("/admin/ui/images/rectbutton-sprite.png") left top no-repeat transparent;
}
.gui-button-msg {
  font-family: 'titillium', helvetica, arial, sans-serif;
  font-weight: bold;
  font-size: 15px;
  display: block;
  padding-top: 8px;
  text-align: center;
}
.gui-point-button-right .gui-button-msg {
  padding-right: 11px;
}
.gui-point-button:hover,
.gui-rect-button:hover,
.gui-point-button-right:hover {
  background-position: left -40px;
}
.gui-point-button:active,
.gui-point-button.pressed,
.gui-rect-button:active,
.gui-rect-button.pressed,
.gui-point-button-right:active,
.gui-point-button-right.pressed {
  background-position: left -80px !important;
}
.gui-point-button:active        .gui-button-msg,
.gui-point-button.pressed       .gui-button-msg,
.gui-rect-button:active         .gui-button-msg,
.gui-rect-button.pressed        .gui-button-msg,
.gui-point-button-right:active  .gui-button-msg,
.gui-point-button-right.pressed .gui-button-msg {
  padding-top: 9px;
}
input.gui-point-button,
input.gui-rect-button,
input.gui-point-button-right {
  padding-bottom: 12px;
}
input.gui-point-button:active,
input.gui-rect-button:active,
input.gui-point-button-right:active {
  padding-bottom: 9px;
}
.button-column {
  width: 150px;
  height: auto;
}
.gui-switch {
  width: 78px;
  height: 37px;
  background: url("/admin/ui/images/hide-show-toggle.png") no-repeat transparent;
  display: inline-block;
  vertical-align: middle;
}
.gui-switch.on {
  background-position: left top;
}
.gui-switch.off {
  background-position: left bottom;
}
.gui-checkbox-wrapper,
.gui-radio-wrapper {
  width: auto;
  height: 24px;
  background: url("/admin/ui/images/checkbox-sprite.png") left top no-repeat transparent;
  vertical-align: middle;
  margin-top: 5px;
}
.gui-checkbox-wrapper.default,
.gui-radio-wrapper.default {
  background-position: left bottom;
}
.gui-checkbox-wrapper span,
.gui-radio-wrapper span,
.gui-checkbox-wrapper label,
.gui-radio-wrapper label {
  font-family: 'titillium', helvetica, arial, sans-serif;
  font-weight: bold;
  display: inline-block;
  margin: 5px 0 0 8px;
  color: #efefef;
}
.gui-checkbox-wrapper span.serif,
.gui-radio-wrapper span.serif,
.gui-checkbox-wrapper label.serif,
.gui-radio-wrapper label.serif {
  font-family: 'noticia', georgia, serif;
  font-weight: normal;
  color: #ccc;
  font-style: italic;
}
.gui-radio-wrapper {
  background: url("/admin/ui/images/radio-sprite.png") left top no-repeat transparent;
}
.gui-checkbox,
.gui-radio {
  width: 25px;
  height: 24px;
  opacity: 0;
  filter: alpha(opacity=0);
  display: inline-block;
  float: left;
  margin: 0;
}
.gui-checkbox-wrapper .gui-text,
.gui-radio-wrapper .gui-text {
  width: auto;
  height: 24px;
  display: block;
  float: left;
  padding-left: 5px;
  font-size: 15px;
}
.pagination {
  text-align: center;
  font-size: 12px;
  cursor: pointer;
  padding-top: 25px;
}
.pagination li {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  display: inline-block;
  background: #1d1d1d;
  padding: 2px;
  margin: 0 1px 10px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
}
.pagination li.dots {
  background: none;
  border: 0;
  letter-spacing: 1px;
  padding: 2px 4px;
}
.pagination-bottom {
  margin-bottom: 36px;
  margin-top: 25px;
}
.paginator {
  font-family: 'titillium', helvetica, arial, sans-serif;
  -webkit-border-radius: 3px;
  -moz-border-radius: 3px;
  border-radius: 3px;
  background: #434343;
  background: -moz-linear-gradient(top, #616161 0%, #434343 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #616161), color-stop(100%, #434343));
  background: -webkit-linear-gradient(top, #616161 0%, #434343 100%);
  background: -o-linear-gradient(top, #616161 0%, #434343 100%);
  background: -ms-linear-gradient(top, #616161 0%, #434343 100%);
  background: linear-gradient(top bottom, #616161 0%, #434343 100%);
  color: #fff;
  display: block;
  border-top: 1px solid #777;
  cursor: pointer;
  padding: 3px 8px 4px;
}
.paginator:hover {
  background: #434343;
  background: -moz-linear-gradient(top, #777 0%, #434343 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #777), color-stop(100%, #434343));
  background: -webkit-linear-gradient(top, #777 0%, #434343 100%);
  background: -o-linear-gradient(top, #777 0%, #434343 100%);
  background: -ms-linear-gradient(top, #777 0%, #434343 100%);
  background: linear-gradient(top bottom, #777 0%, #434343 100%);
}
.paginator:active {
  background: #535353;
  cursor: pointer;
}
.paginator.pageNumber {
  opacity: 0.4;
  filter: alpha(opacity=40);
}
.paginator.pageNumber:hover,
.paginator.pageNumber:active,
.pageNumber.active {
  opacity: 1;
  filter: alpha(opacity=100);
}
.pagination li.disabled .paginator:hover,
.pagination li.disabled .paginator:active,
.pageNumber.active:hover,
.pageNumber.active:active {
  background: #434343;
  background: -moz-linear-gradient(top, #616161 0%, #434343 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #616161), color-stop(100%, #434343));
  background: -webkit-linear-gradient(top, #616161 0%, #434343 100%);
  background: -o-linear-gradient(top, #616161 0%, #434343 100%);
  background: -ms-linear-gradient(top, #616161 0%, #434343 100%);
  background: linear-gradient(top bottom, #616161 0%, #434343 100%);
  cursor: default;
}
.gui-text-flat,
.gui-text,
.gui-text-bold,
#cluster-page .plan-details {
  text-shadow: none;
  color: #ccc;
  font-size: 14px;
}
.gui-text,
.gui-text-bold {
  text-shadow: 0 2px 0 #000;
}
.gui-text-bold {
  font-family: 'noticia', georgia, serif;
  font-weight: bold;
  color: #efefef;
}
.gui-headline,
.gui-headline-bold {
  font-family: 'titillium', helvetica, arial, sans-serif;
  text-shadow: 0 2px 0 #000;
  text-shadow: 0 2px 0 #000;
}
.gui-headline-bold {
  font-family: 'titillium', helvetica, arial, sans-serif;
  font-weight: bold;
  color: #efefef;
  font-weight: bold;
}
.gui-field,
.gui-input {
  font-family: 'menlo', 'consolas', 'monaco', monospace;
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  -webkit-box-shadow: inset 0 1px 3px rgba(0,0,0,0.35);
  -moz-box-shadow: inset 0 1px 3px rgba(0,0,0,0.35);
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.35);
  background: rgba(0,0,0,0.35);
  padding: 10px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  margin-right: 2em;
}
.gui-input {
  width: 100%;
  height: auto;
  padding: 8px;
  border-left: 0;
  border-right: 0;
  border-top: 0;
}
.gui-input:focus {
  outline: none;
}
.gui-light {
  background: url("/admin/ui/images/light-sprite.png") left top no-repeat transparent;
  padding: 11px 0 9px 33px;
  min-height: 14px;
  min-width: 14px;
  display: inline-block;
}
.gui-light.gray {
  background-position: -4px -145px;
}
.gui-light.green {
  background-position: -4px 0;
}
.gui-light.red {
  background-position: -4px -36px;
}
.gui-light.blue {
  background-position: -4px -109px;
}
.gui-light.orange {
  background-position: -4px -73px;
}
.has-cut,
.cut {
  background: url("/admin/ui/images/cut-bg.png") left bottom repeat-x transparent;
}
.cut {
  width: 100%;
  height: 2px;
  margin-top: 15px;
}
.bulleted {
  list-style-type: disc;
}
.clear {
  clear: both;
}
.hide {
  display: none;
}
.italic {
  font-family: 'noticia', georgia, serif;
  font-style: italic;
}
.serif {
  font-family: 'noticia', georgia, serif;
}
.left {
  float: left;
}
.disabled {
  opacity: 0.4;
  filter: alpha(opacity=40);
}
.unreachable {
  color: #f05f5f;
}
.inline-block {
  display: inline-block;
}
@media screen and (min-width : 1100px) {
  #wrapper {
    max-width: 1500px;
  }
}
@media screen and (max-width : 699px) {
  h1 {
    font-size: 36px;
    letter-spacing: 0;
    padding-bottom: 5px;
    padding-left: 15px;
    padding-right: 15px;
  }
  h2 {
    font-size: 26px;
    letter-spacing: 0;
    padding-bottom: 12px;
    color: #efefef;
  }
  h3 {
    font-family: 'noticia', georgia, serif;
    font-size: 16px;
    letter-spacing: 0;
    padding-bottom: 8px;
    color: #ccc;
    font-style: italic;
  }
  .gui-field,
  .gui-input {
    margin-right: 0;
  }
  .side-line {
    width: 18%;
  }
  .title-box {
    width: 64%;
  }
}
@media screen and (max-width : 699px) {
  #content-well {
    padding: 5px 15px 0;
  }
  #riak-control-logo {
    width: 212px;
  }
}
@media screen and (max-width : 499px) {
  #header {
    height: 44px;
  }
  #navbar,
  #nav-ul {
    height: 41px;
  }
  .nav-li {
    width: 45px;
    height: 41px;
  }
  .nav-li .nav-item {
    width: 45px;
    height: 41px;
    background: url("/admin/ui/images/nav-icons-small.png") center bottom no-repeat transparent;
  }
  .nav-li .indicator {
    width: 45px;
    height: 2px;
  }
  #riak-control-logo {
    width: 123px;
    height: 32px;
    background: url("/admin/ui/images/riak-control-logo-small.png") right bottom no-repeat transparent;
    margin: 6px 0 0 10px;
  }
  #nav-snapshot a {
    background-position: 8px -237px;
  }
  #nav-cluster a {
    background-position: 8px 11px;
  }
  #nav-nodes a {
    background-position: 7px -269px;
  }
  #nav-ring a {
    background-position: 8px -24px;
  }
  h1 {
    font-size: 30px;
    letter-spacing: 0;
    padding-bottom: 5px;
  }
}
#snapshot-page #healthy-cluster,
#snapshot-page #unhealthy-cluster {
  padding-top: 25px;
}
#snapshot-page #healthy-cluster section,
#snapshot-page #unhealthy-cluster section {
  padding-left: 336px;
}
#snapshot-page #healthy-cluster h2,
#snapshot-page #unhealthy-cluster h2 {
  padding-top: 20px;
}
#snapshot-page #healthy-cluster h3,
#snapshot-page #unhealthy-cluster h3 {
  margin-top: 30px;
  line-height: 1.5;
}
#snapshot-page #healthy-cluster h4,
#snapshot-page #unhealthy-cluster h4 {
  font-family: 'noticia', georgia, serif;
  margin-top: 20px;
  font-size: 14px;
  font-style: italic;
  line-height: 1.5;
}
#snapshot-page #healthy-cluster ul,
#snapshot-page #unhealthy-cluster ul {
  margin: 10px 0 0 20px;
}
#snapshot-page #healthy-cluster li,
#snapshot-page #unhealthy-cluster li {
  font-family: 'titillium', helvetica, arial, sans-serif;
  line-height: 1.5;
  font-size: 15px;
}
#snapshot-page #healthy-cluster li a,
#snapshot-page #unhealthy-cluster li a {
  color: #efefef;
}
#snapshot-page #health-indicator {
  float: left;
  margin-right: 25px;
}
#snapshot-page #healthy-cluster #health-indicator {
  width: 337px;
  height: 310px;
}
#snapshot-page #unhealthy-cluster #health-indicator {
  width: 311px;
  height: 309px;
}
@media screen and (max-width : 899px) {
  #snapshot-page #healthy-cluster #health-indicator {
    width: 279px;
    height: 249px;
  }
  #snapshot-page #unhealthy-cluster #health-indicator {
    width: 250px;
    height: 249px;
  }
  #snapshot-page #healthy-cluster section,
  #snapshot-page #unhealthy-cluster section {
    padding-left: 275px;
  }
}
@media screen and (max-width : 499px) {
  #snapshot-page .health-info {
    text-align: center;
  }
  #snapshot-page #health-indicator {
    margin: 0 auto;
    float: none;
    display: block;
  }
  #snapshot-page #healthy-cluster section,
  #snapshot-page #unhealthy-cluster section {
    padding-left: 0;
    margin: 0 auto;
    text-align: left;
  }
}
#cluster-page .warning {
  display: block;
  padding: 10px 0 0;
  color: #f05f5f;
}
#cluster-page #current-area,
#cluster-page #planned-area {
  float: left;
  width: 47%;
}
#cluster-page #current-area {
  margin: 0 0 45px 0;
}
#cluster-page #area-separator {
  width: 6%;
  height: 450px;
  float: left;
  text-align: center;
}
#cluster-page #area-separator div {
  margin: 0 auto;
  width: 1px;
  height: 100%;
  background: rgba(255,255,255,0.18);
}
#cluster-page span.gui-text-flat {
  line-height: 1.5;
}
#cluster-page h3 {
  font-family: 'noticia', georgia, serif;
}
#cluster-page .spinner-box {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  text-align: center;
  background: rgba(255,255,255,0.05);
  padding: 25px;
}
#cluster-page .spinner-box img,
#cluster-page .spinner-box h4 {
  vertical-align: middle;
}
#cluster-page .spinner-box h4 {
  opacity: 0.8;
  filter: alpha(opacity=80);
  display: inline-block;
  padding-top: 6px;
  padding-left: 10px;
  line-height: 1.2;
}
#cluster-page .actions-container {
  -webkit-transition: height 0.4s ease;
  -moz-transition: height 0.4s ease;
  -ms-transition: height 0.4s ease;
  -webkit-transition: height 0.4s ease;
  -moz-transition: height 0.4s ease;
  -o-transition: height 0.4s ease;
  transition: height 0.4s ease;
  overflow: hidden;
  height: 0;
  margin-bottom: 0;
}
#cluster-page .open .actions-container {
  -webkit-transition: height 0.4s ease;
  -moz-transition: height 0.4s ease;
  -ms-transition: height 0.4s ease;
  -webkit-transition: height 0.4s ease;
  -moz-transition: height 0.4s ease;
  -o-transition: height 0.4s ease;
  transition: height 0.4s ease;
  height: 375px;
  margin-bottom: 25px;
}
#cluster-page .gui-light {
  vertical-align: middle;
  padding: 9px 5px 9px 14px;
  margin-left: -6px;
  margin-top: -7px;
}
#cluster-page .field-container {
  width: 75%;
  vertical-align: middle;
}
#cluster-page .gui-field {
  margin-right: 0;
  overflow: hidden;
}
#cluster-page #add-node {
  padding-top: 40px;
  margin-bottom: 45px;
}
#cluster-page .add-node-table tr td {
  padding-top: 25px;
}
#cluster-page .list-header {
  min-height: 18px;
}
#cluster-page .list-header li {
  float: left;
  margin-bottom: 30px;
}
#cluster-page .list-header li h4 {
  display: inline-block;
}
#cluster-page #node-list,
#cluster-page #planned-list {
  margin-top: 20px;
}
#cluster-page #node-list .item1 {
  width: 18%;
}
#cluster-page #node-list .item2 {
  width: 42%;
}
#cluster-page #node-list .item3 {
  width: 18%;
}
#cluster-page #node-list .item4 {
  width: 22%;
}
#cluster-page .node {
  margin-bottom: 10px;
  position: relative;
}
#cluster-page .node > div {
  float: left;
}
#cluster-page .node > div.clear {
  float: none;
}
#cluster-page .toggle-container {
  overflow: visible;
  padding: 0;
}
#cluster-page .toggle-container .actions-toggle {
  width: 82px;
  height: 30px;
  position: relative;
  overflow: visible;
  padding: 0;
  background: url("/admin/ui/images/actions-toggle-text.png") -5px top no-repeat rgba(0,0,0,0.3);
  margin-top: 3px;
}
#cluster-page .toggle-container .actions-toggle a {
  width: 48px;
  height: 34px;
  -webkit-transition: left 0.2s ease;
  -moz-transition: left 0.2s ease;
  -ms-transition: left 0.2s ease;
  -webkit-transition: left 0.2s ease;
  -moz-transition: left 0.2s ease;
  -o-transition: left 0.2s ease;
  transition: left 0.2s ease;
  position: absolute;
  display: inline-block;
  background: url("/admin/ui/images/actions-toggle-slider.png") left top no-repeat transparent;
  top: 0;
  left: -5px;
}
#cluster-page .open .actions-toggle a {
  -webkit-transition: left 0.2s ease;
  -moz-transition: left 0.2s ease;
  -ms-transition: left 0.2s ease;
  -webkit-transition: left 0.2s ease;
  -moz-transition: left 0.2s ease;
  -o-transition: left 0.2s ease;
  transition: left 0.2s ease;
  left: 38px;
}
#cluster-page .name-box {
  overflow: visible;
}
#cluster-page .ring-pct,
#cluster-page .used-memory,
#cluster-page .action-name {
  font-family: 'menlo', 'consolas', 'monaco', monospace;
}
#cluster-page .used-memory {
  display: inline-block;
  padding: 0 0 0 5px;
  vertical-align: middle;
}
#cluster-page .action-name {
  display: inline-block;
  padding-top: 8px;
}
#cluster-page .replacing-box .field-container {
  width: 100%;
}
#cluster-page #planned-list .item1 {
  width: 40%;
}
#cluster-page #planned-list .item2 {
  width: 17%;
}
#cluster-page #planned-list .item3 {
  width: 17%;
}
#cluster-page #planned-list .item4 {
  width: 26%;
}
#cluster-page .plan-details-header {
  margin-top: 30px;
  padding: 10px 0;
}
#cluster-page .accept-plan {
  position: relative;
  padding: 15px 0;
  margin-top: 15px;
}
#cluster-page .clear-plan-box {
  border-top: 1px solid rgba(255,255,255,0.18);
  margin-top: 25px;
  padding-top: 25px;
}
#cluster-page .clear-plan-box a {
  display: block;
  margin-top: 15px;
  margin-left: -5px;
}
#cluster-page .plan-details {
  font-family: 'noticia', georgia, serif;
  line-height: 1.5;
}
#cluster-page #commit-button {
  position: absolute;
  right: 0;
  top: 12px;
}
#cluster-page .button-column {
  text-align: right;
}
#cluster-page .pct-box {
  margin-top: 8px;
  display: inline-block;
  vertical-align: middle;
}
#cluster-page .pct-arrows {
  width: 19px;
  height: 33px;
  background: url("/admin/ui/images/pct-arrows-sprite.png") no-repeat transparent;
  margin: 0 5px 0 0;
  display: inline-block;
  vertical-align: middle;
}
#cluster-page .pct-gaining {
  background-position: -19px top;
}
#cluster-page .pct-losing {
  background-position: -38px top;
}
#cluster-page .pct-static {
  background-position: left top;
}
#cluster-page .green-pct-arrow {
  width: 19px;
  height: 33px;
  background: url("/admin/ui/images/pct-arrows-sprite.png") no-repeat -57px top transparent;
  margin: 0 5px 0 0;
  display: none;
}
#cluster-page .error-message {
  font-family: 'noticia', georgia, serif;
  -webkit-box-shadow: 0 2px 3px rgba(0,0,0,0.35);
  -moz-box-shadow: 0 2px 3px rgba(0,0,0,0.35);
  box-shadow: 0 2px 3px rgba(0,0,0,0.35);
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  font-size: 14px;
  font-style: italic;
  color: #ccc;
  padding: 8px 10px 9px 12px;
  background: rgba(232,78,78,0.5);
  border: 1px solid rgba(235,105,105,0.5);
}
#cluster-page .error-message .error-link {
  font-family: 'titillium', helvetica, arial, sans-serif;
  font-weight: bold;
  padding-left: 5px;
}
#cluster-page .error-message .error-link:hover {
  text-decoration: underline;
}
#cluster-page .error-message .close-error {
  width: 16px;
  height: 16px;
  opacity: 0.6;
  filter: alpha(opacity=60);
  cursor: pointer;
  display: inline-block;
  float: right;
  vertical-align: middle;
  background: url("/admin/ui/images/close-error.png") left top no-repeat transparent;
}
#cluster-page .error-message .close-error:hover {
  opacity: 1;
  filter: alpha(opacity=100);
}
#cluster-page .memory-box {
  width: 175px;
}
#cluster-page .membar-bg {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  width: 79px;
  height: 30px;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
#cluster-page .membar-fg {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  background: rgba(255,255,255,0.05);
  background: -moz-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255,255,255,0.4)), color-stop(100%, rgba(255,255,255,0.05)));
  background: -webkit-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -o-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -ms-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: linear-gradient(top bottom, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  width: 100%;
  height: 26px;
  position: absolute;
  left: 0;
  top: 0;
  width: 75px;
  z-index: 5;
  border: 2px solid #1d1d1d;
}
#cluster-page .mem-colors {
  width: 75px;
  height: 26px;
  float: left;
  margin: 2px 0 0 2px;
}
#cluster-page .membar-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
}
#cluster-page .non-erlang-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: rgba(65,179,243,0.8);
}
#cluster-page .erlang-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: rgba(70,166,55,0.8);
}
#cluster-page .unknown-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: #404040;
  width: 100%;
}
#cluster-page .actions-pointer {
  width: 72px;
  height: 13px;
  background: url("/admin/ui/images/pointer.png") center top no-repeat transparent;
  margin-top: 8px;
}
#cluster-page .actions-box {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  width: 92%;
  background: rgba(0,0,0,0.35);
  margin-bottom: 15px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  padding: 18px;
  margin-right: 33px;
  position: relative;
}
#cluster-page .actions-box > h4 {
  display: block;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  padding: 0 0 12px;
}
#cluster-page .actions-box > div > span {
  font-family: 'noticia', georgia, serif;
  color: #efefef;
  padding-left: 3px;
}
#cluster-page .extra-actions {
  opacity: 0.32;
  filter: alpha(opacity=32);
  padding-bottom: 25px;
  height: 35px;
  position: relative;
}
#cluster-page .extra-actions > div {
  float: left;
}
#cluster-page .extra-actions .gui-checkbox-wrapper {
  margin-left: 15px;
}
#cluster-page .extra-actions.active {
  opacity: 1;
  filter: alpha(opacity=100);
}
#cluster-page .replacement-controls {
  width: auto;
  margin-top: 18px;
  border-bottom: 1px solid rgba(255,255,255,0.18);
  margin-bottom: 10px;
}
#cluster-page .replacement-controls div {
  margin-bottom: 8px;
}
#cluster-page .replacement-controls select {
  margin-top: -38px;
}
#cluster-page .replacement-node-dropdown {
  margin-bottom: 5px;
}
#cluster-page .right-angle-arrow {
  width: 15px;
  height: 18px;
  background: url("/admin/ui/images/right-angle-arrow.png") left top no-repeat transparent;
  margin: 0 10px 0 10px;
}
#cluster-page .disabler {
  background: #f00;
  opacity: 0.2;
  filter: alpha(opacity=20);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: transparent;
}
#cluster-page .stage-button {
  float: right;
}
#cluster-page .stage-instructions {
  float: left;
  display: block;
  width: 50%;
}
#cluster-page .no-joining-nodes {
  padding-top: 6px;
}
#cluster-page .slide-up {
  margin-top: -35px;
}
#cluster-page .semi-transparent {
  opacity: 0.32;
  filter: alpha(opacity=32);
}
@media screen and (max-width : 1200px) {
  #cluster-page #area-separator {
    display: none;
  }
  #cluster-page #current-area,
  #cluster-page #planned-area {
    width: 100%;
  }
  #cluster-page #planned-area {
    padding-top: 30px;
    border-top: 1px solid rgba(255,255,255,0.18);
  }
  #cluster-page .field-container {
    width: 90%;
  }
  #cluster-page #node-list .item1 {
    width: 100px;
  }
  #cluster-page #node-list .item2 {
    width: 500px;
  }
  #cluster-page #node-list .item3 {
    width: 100px;
  }
  #cluster-page #node-list .item4 {
    width: 150px;
  }
  #cluster-page #planned-list .item1 {
    width: 300px;
  }
  #cluster-page #planned-list .item2 {
    width: 100px;
    margin-left: 25px;
  }
  #cluster-page #planned-list .item3 {
    width: 100px;
  }
  #cluster-page #planned-list .item4 {
    width: 350px;
  }
}
@media screen and (max-width : 950px) {
  #cluster-page #node-list .item1 {
    width: 100px;
  }
  #cluster-page #node-list .item2 {
    width: 400px;
  }
  #cluster-page #node-list .item3 {
    width: 100px;
  }
  #cluster-page #node-list .item4 {
    width: 150px;
  }
  #cluster-page #planned-list .item1 {
    width: 275px;
  }
  #cluster-page #planned-list .item2 {
    width: 100px;
  }
  #cluster-page #planned-list .item3 {
    width: 100px;
  }
  #cluster-page #planned-list .item4 {
    width: 225px;
  }
}
@media screen and (max-width : 850px) {
  #cluster-page #node-list .item1 {
    width: 100px;
  }
  #cluster-page #node-list .item2 {
    width: 300px;
  }
  #cluster-page #node-list .item2 .field-container {
    width: 75%;
  }
  #cluster-page #node-list .item3 {
    width: 100px;
  }
  #cluster-page #node-list .item4 {
    width: 150px;
  }
  #cluster-page #planned-list .item3 {
    display: none;
  }
  #cluster-page .used-memory {
    display: none;
  }
}
@media screen and (max-width : 700px) {
  #cluster-page #node-list .item1 {
    width: 100px;
  }
  #cluster-page #node-list .item2 {
    width: 200px;
  }
  #cluster-page #node-list .item2 .field-container {
    width: 75%;
  }
  #cluster-page #node-list .item3 {
    width: 100px;
  }
  #cluster-page #node-list .item4 {
    width: 150px;
  }
  #cluster-page #planned-list .item1 {
    width: 200px;
  }
  #cluster-page #planned-list .item2 {
    width: 100px;
    margin-left: 0;
  }
  #cluster-page #planned-list .item4 {
    width: 200px;
  }
  #cluster-page .gui-light {
    display: none;
  }
}
@media screen and (max-width : 600px) {
  #cluster-page #node-list .item1 {
    display: none;
  }
  #cluster-page #node-list .item2 {
    width: 40%;
  }
  #cluster-page #node-list .item2 .field-container {
    width: 95%;
  }
  #cluster-page #node-list .item4 {
    width: 100px;
  }
  #cluster-page #planned-list .item1 {
    width: 40%;
  }
  #cluster-page #planned-list .item1 .field-container {
    width: 95%;
  }
  #cluster-page #planned-list .item2 {
    width: 20%;
    margin-right: 2%;
  }
  #cluster-page #planned-list .item4 {
    width: 38%;
  }
  #cluster-page #planned-list .item4 .field-container {
    width: 95%;
  }
  #cluster-page .actions-container {
    display: none;
  }
}
#nodes-page .right {
  float: right;
}
#nodes-page .gui-point-button-right,
#nodes-page .gui-rect-button {
  margin-right: 10px;
  margin-top: 35px;
}
#nodes-page #current-area {
  max-width: 850px;
  margin: 0 auto 45px auto;
  padding-top: 40px;
}
#nodes-page #current-area > span.gui-text-flat {
  line-height: 1.5;
  display: block;
}
#nodes-page h3 {
  font-family: 'noticia', georgia, serif;
}
#nodes-page .spinner-box {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  text-align: center;
  background: rgba(255,255,255,0.05);
  padding: 25px;
}
#nodes-page .spinner-box img,
#nodes-page .spinner-box h4 {
  vertical-align: middle;
}
#nodes-page .spinner-box h4 {
  opacity: 0.8;
  filter: alpha(opacity=80);
  display: inline-block;
  padding-top: 6px;
  padding-left: 10px;
  line-height: 1.2;
}
#nodes-page .gui-light {
  vertical-align: middle;
  padding: 9px 5px 9px 14px;
  margin-left: -6px;
  margin-top: -7px;
}
#nodes-page .field-container {
  width: 86%;
  vertical-align: middle;
}
#nodes-page .gui-field {
  margin-right: 0;
  overflow: hidden;
}
#nodes-page .list-header {
  min-height: 18px;
}
#nodes-page .list-header li {
  float: left;
  margin-bottom: 30px;
}
#nodes-page .list-header li h4 {
  display: inline-block;
}
#nodes-page #node-list {
  margin-top: 20px;
}
#nodes-page #node-list .item1 {
  width: 6%;
}
#nodes-page #node-list .item2 {
  width: 10%;
}
#nodes-page #node-list .item3 {
  width: 56%;
}
#nodes-page #node-list .item4 {
  width: 13%;
}
#nodes-page #node-list .item5 {
  width: 15%;
}
#nodes-page .node {
  margin-bottom: 10px;
  position: relative;
}
#nodes-page .node > div {
  float: left;
}
#nodes-page .node > div.clear {
  float: none;
}
#nodes-page .node .gui-radio-wrapper {
  width: 25px;
  height: 24px;
  text-align: center;
  display: inline-block;
  position: relative;
}
#nodes-page .node .gui-radio-wrapper .disabler {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  opacity: 0;
  filter: alpha(opacity=0);
  display: none;
}
#nodes-page .node .gui-radio-wrapper .disabler.show {
  display: block;
}
#nodes-page .node .item1 .gui-radio-wrapper {
  margin-left: 4px;
}
#nodes-page .node .item2 .gui-radio-wrapper {
  margin-left: 8px;
}
#nodes-page .node input[type=radio] {
  display: inline;
  float: none;
}
#nodes-page .name-box {
  overflow: visible;
}
#nodes-page .ring-pct,
#nodes-page .used-memory,
#nodes-page .action-name {
  font-family: 'menlo', 'consolas', 'monaco', monospace;
}
#nodes-page .used-memory {
  display: inline-block;
  padding: 0 0 0 5px;
  vertical-align: middle;
}
#nodes-page .pct-box {
  margin-top: 8px;
  display: inline-block;
  vertical-align: middle;
}
#nodes-page .pct-arrows {
  width: 19px;
  height: 33px;
  background: url("/admin/ui/images/pct-arrows-sprite.png") no-repeat transparent;
  margin: 0 5px 0 0;
  display: inline-block;
  vertical-align: middle;
}
#nodes-page .pct-gaining {
  background-position: -19px top;
}
#nodes-page .pct-losing {
  background-position: -38px top;
}
#nodes-page .pct-static {
  background-position: left top;
}
#nodes-page .green-pct-arrow {
  width: 19px;
  height: 33px;
  background: url("/admin/ui/images/pct-arrows-sprite.png") no-repeat -57px top transparent;
  margin: 0 5px 0 0;
  display: none;
}
#nodes-page .memory-box {
  width: 175px;
}
#nodes-page .membar-bg {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  width: 79px;
  height: 30px;
  position: relative;
  display: inline-block;
  vertical-align: middle;
}
#nodes-page .membar-fg {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  background: rgba(255,255,255,0.05);
  background: -moz-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, rgba(255,255,255,0.4)), color-stop(100%, rgba(255,255,255,0.05)));
  background: -webkit-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -o-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: -ms-linear-gradient(top, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  background: linear-gradient(top bottom, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  -webkit-box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  -moz-box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  box-shadow: 0 1px 0 rgba(255,255,255,0.18);
  width: 100%;
  height: 26px;
  position: absolute;
  left: 0;
  top: 0;
  width: 75px;
  z-index: 5;
  border: 2px solid #1d1d1d;
}
#nodes-page .mem-colors {
  width: 75px;
  height: 26px;
  float: left;
  margin: 2px 0 0 2px;
}
#nodes-page .membar-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
}
#nodes-page .non-erlang-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: rgba(65,179,243,0.8);
}
#nodes-page .erlang-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: rgba(70,166,55,0.8);
}
#nodes-page .unknown-mem {
  width: auto;
  height: 26px;
  background: url("/admin/ui/images/mem-bar-overlay.png") left top repeat transparent;
  float: left;
  z-index: 1;
  background-color: #404040;
  width: 100%;
}
#nodes-page .slide-up {
  margin-top: -35px;
}
#nodes-page .semi-transparent {
  opacity: 0.32;
  filter: alpha(opacity=32);
}
@media screen and (max-width : 800px) {
  #nodes-page #node-list .item1 {
    width: 8%;
  }
  #nodes-page #node-list .item2 {
    width: 10%;
  }
  #nodes-page #node-list .item3 {
    width: 49%;
  }
  #nodes-page #node-list .item4 {
    width: 15%;
  }
  #nodes-page #node-list .item5 {
    width: 18%;
  }
  #nodes-page #node-list .field-container {
    width: 75%;
  }
}
@media screen and (max-width : 670px) {
  #nodes-page #node-list .memory-box {
    padding-top: 7px;
  }
  #nodes-page #node-list .membar-bg {
    display: none;
  }
}
@media screen and (max-width : 570px) {
  #nodes-page #node-list .item1 {
    width: 12%;
  }
  #nodes-page #node-list .item2 {
    width: 15%;
  }
  #nodes-page #node-list .item3 {
    width: 53%;
  }
  #nodes-page #node-list .item4 {
    display: none;
  }
  #nodes-page #node-list .item5 {
    width: 20%;
  }
}
@media screen and (max-width : 400px) {
  #nodes-page #node-list .item1 {
    width: 12%;
  }
  #nodes-page #node-list .item2 {
    width: 15%;
  }
  #nodes-page #node-list .item3 {
    width: 47%;
  }
  #nodes-page #node-list .item4 {
    display: none;
  }
  #nodes-page #node-list .item5 {
    width: 15%;
  }
}
#ring-page #ring-filter {
  text-align: left;
  padding-left: 25px;
  margin-top: -5px;
  float: right;
}
#ring-page #ring-filter .gui-dropdown-wrapper {
  width: 100%;
  height: 30px;
  min-width: 169px;
}
#ring-page h3 {
  color: #efefef;
}
#ring-page #partition-list {
  margin-top: 13px;
}
#ring-page tr:hover {
  background-color: rgba(255,255,255,0.08);
}
#ring-page thead tr:hover,
#ring-page tr.no-highlight:hover {
  background-color: transparent;
}
@media screen and (max-width : 750px) {
  #ring-page #ring-filter {
    position: absolute;
    left: 50%;
    top: 100px;
    width: 200px;
    padding-left: 0;
    float: none;
    margin: 66px 0 0 -100px;
  }
  #ring-page .pagination.first {
    margin-top: 60px;
  }
}
@media screen and (max-width : 649px) {
  #ring-page .gui-light span {
    display: none;
  }
}
@media screen and (max-width : 500px) {
  #ring-page #ring-filter {
    margin-top: 40px;
  }
  #ring-page .pagination.first {
    margin-top: 30px;
  }
}


text:
/// Copyright (c) 2012 Ecma International.  All rights reserved.
/// Ecma International makes this code available under the terms and conditions set
/// forth on http://hg.ecmascript.org/tests/test262/raw-file/tip/LICENSE (the
/// "Use Terms").   Any redistribution of this code must retain the above
/// copyright and this notice and otherwise comply with the Use Terms.
/**
 * @path ch15/15.2/15.2.3/15.2.3.6/15.2.3.6-3-129.js
 * @description Object.defineProperty - 'value' property in 'Attributes' is an inherited data property  (8.10.5 step 5.a)
 */

function testcase() {
        var obj = { };

        var proto = {
            value: "inheritedDataProperty"
        };

        var ConstructFun = function () { };
        ConstructFun.prototype = proto;

        var child = new ConstructFun();

        Object.defineProperty(obj, "property", child);

        return obj.property === "inheritedDataProperty";
    }
runTestCase(testcase);


text:
package subscription

import (
	"encoding/json"
	"errors"
	"testing"

	"gotest.tools/v3/assert"

	clientv1 "knative.dev/client/pkg/messaging/v1"
	"knative.dev/client/pkg/util"
	messagingv1 "knative.dev/eventing/pkg/apis/messaging/v1"
)

func TestDescribeSubscriptionErrorCase(t *testing.T) {
	cClient := clientv1.NewMockKnSubscriptionsClient(t)
	cRecorder := cClient.Recorder()
	_, err := executeSubscriptionCommand(cClient, nil, "describe")
	assert.Error(t, err, "'kn subscription describe' requires the subscription name given as single argument")
	cRecorder.Validate()
}

func TestDescribeSubscriptionErrorCaseNotFound(t *testing.T) {
	cClient := clientv1.NewMockKnSubscriptionsClient(t)
	cRecorder := cClient.Recorder()
	cRecorder.GetSubscription("sub0", nil, errors.New("not found"))
	_, err := executeSubscriptionCommand(cClient, nil, "describe", "sub0")
	assert.Error(t, err, "not found")
	cRecorder.Validate()
}

func TestDescribeSubscription(t *testing.T) {
	cClient := clientv1.NewMockKnSubscriptionsClient(t)
	cRecorder := cClient.Recorder()

	subscription := createSubscription("sub0", "imc0", "ksvc0", "b0", "b1")

	t.Run("default output", func(t *testing.T) {
		cRecorder.GetSubscription("sub0", subscription, nil)
		out, err := executeSubscriptionCommand(cClient, nil, "describe", "sub0")
		assert.NilError(t, err, "subscription should be described")
		assert.Assert(t, util.ContainsAll(out,
			"sub0",
			"Channel", "imc0", "messaging.knative.dev", "v1", "InMemoryChannel",
			"Subscriber", "ksvc0", "serving.knative.dev", "v1", "Service",
			"Reply", "b0", "eventing.knative.dev", "v1", "Broker",
			"DeadLetterSink", "b1"))
	})

	t.Run("json format output", func(t *testing.T) {
		cRecorder.GetSubscription("sub0", subscription, nil)
		out, err := executeSubscriptionCommand(cClient, nil, "describe", "sub0", "-o", "json")
		assert.NilError(t, err, "subscription should be described")

		result := &messagingv1.Subscription{}
		err = json.Unmarshal([]byte(out), result)
		assert.NilError(t, err, "subscription should be in json format")
		assert.DeepEqual(t, subscription, result)
	})

	cRecorder.Validate()
}


text:
require 'csv'

class JuniorStory < ApplicationRecord
  include Filterable

  validates :salary, presence: true
  validates :currency, presence: true
  validates :freelancer, presence: true

  before_save :sanitize_city, :sanitize_gender

  CONSENT_ATTRIBUTES = %w(happy_in_job happy_info other)

  def job_sentence
    "I am working as a #{job}." if job.present?
  end

  def gender_sentence
    "I identify as #{gender}." if gender.present?
  end

  def person_of_colour_sentence
    "I am a person of colour." if person_of_colour?
  end

  def person_with_disability_sentence
    "I am a person with a disability." if person_with_disability?
  end

  def age_sentence
    "I am #{age} years old." if age.present?
  end

  def city_sentence
    "I live in the city of #{city}." if city.present?
  end

  def country_sentence
    "I live in the country of #{country}." if country.present?
  end

  def education_sentence
    "My educational field when it comes to programming is #{education}." if education.present?
  end

  def freelancer_sentence
    if freelancer == 'yes'
      "I am a freelancer."
    else
      "I am not a freelancer."
    end
  end

  def first_job_sentence
    if first_job.present?
      if first_job == 'yes'
        "This is my first junior/intern job."
      else
        "This is not my first junior/intern job."
      end
    end
  end

  def technology_sentence
    "My primary technology at work is #{technology}." if technology.present?
  end

  def focus_sentence
    "I am a #{focus} developer." if focus.present?
  end

  def years_working_at_job_sentence
    "I have been working at my current job for #{years_working_at_job}." if years_working_at_job.present?
  end

  def years_working_total_sentence
    "I have been working in the industry for #{years_working_total}." if years_working_total.present?
  end

  def full_time_sentence
    "I work #{days_per_week} days per week." if days_per_week.present?
  end

  def remote_sentence
    if remote.present?
      if remote == 'yes'
        "I work remotely."
      else
        "I do not work remotely."
      end
    end
  end

  def company_size_sentence
    "My company consists of #{company_size}." if company_size.present?
  end

  def tech_team_size_sentence
    "My tech team consists of #{tech_team_size}." if tech_team_size.present?
  end

  def company_age_sentence
    "My company is #{company_age} years old." if company_age.present?
  end

  def salary_sentence
    "My salary is #{salary} #{currency} per year before taxes."
  end

  def can_publish?
    publishing_consent?
  end

  def happy_in_job_sentence
    "On a scale of 1 - 5, my happiness level in my job is a #{happy_in_job}." if can_publish? && happy_in_job.present?
  end

  def happy_info_sentence
    "Additional information when it comes to my happiness: #{happy_info}." if can_publish? && happy_info.present?
  end

  def other_sentence
    "Additional information: #{other}." if can_publish? && other.present?
  end

  def publishable_attributes
    values = attributes
    unless can_publish?
      CONSENT_ATTRIBUTES.each do |attribute|
        values[attribute] = ''
      end
    end
    values
  end

  def self.to_csv(options = {})
    column_names = attribute_names.delete_if { |i| ['id', 'created_at', 'updated_at', 'publishing_consent'].include?(i) }

    CSV.generate(options) do |csv|
      csv << column_names
      find_each do |story|
        csv << story.publishable_attributes.values_at(*column_names)
      end
    end
  end

  private

  def sanitize_city
    self.city = city.strip.capitalize if city.present?
  end

  def sanitize_gender
    self.gender = gender.strip.downcase if gender.present?
  end
end


text:
<?php

namespace Flowcode\FinancialBundle\Model\Manager;

use Flowcode\FinancialBundle\Model\Core\AccountInterface;

/**
 * Interface AccountManagerInterface
 */
interface AccountManagerInterface
{

}


text:
#ifndef ENUM_MAPPER_H
#define ENUM_MAPPER_H

#include <jni.h>
#include "svn_client.h"
#include "svn_wc.h"
#include "svn_repos.h"
#include "svn_types.h"

class JNIStringHolder;

/**
 * This class contains all the mappers between the C enum's and the
 * matching Java enums's.
 */
class EnumMapper
{
 public:
  /* Converting to C enum's */
  static svn_depth_t toDepth(jobject jdepth);
  static svn_opt_revision_kind toRevisionKind(jobject jkind);
  static svn_wc_conflict_choice_t toConflictChoice(jobject jchoice);
  static int toMergeinfoLogKind(jobject jLogKind);
  static int toLogLevel(jobject jLogLevel);

  /* Converting from C enum's */
  static jint mapCommitMessageStateFlags(apr_byte_t flags);
  static jobject mapChangePathAction(const char action);
  static jobject mapNotifyState(svn_wc_notify_state_t state);
  static jobject mapNotifyAction(svn_wc_notify_action_t action);
  static jobject mapReposNotifyNodeAction(svn_node_action action);
  static jobject mapReposNotifyAction(svn_repos_notify_action_t action);
  static jobject mapNodeKind(svn_node_kind_t nodeKind);
  static jobject mapNotifyLockState(svn_wc_notify_lock_state_t state);
  static jobject mapStatusKind(svn_wc_status_kind svnKind);
  static jobject mapScheduleKind(svn_wc_schedule_t schedule);
  static jobject mapChecksumKind(svn_checksum_kind_t kind);
  static jobject mapConflictKind(svn_wc_conflict_kind_t kind);
  static jobject mapConflictAction(svn_wc_conflict_action_t action);
  static jobject mapConflictReason(svn_wc_conflict_reason_t reason);
  static jobject mapDepth(svn_depth_t depth);
  static jobject mapOperation(svn_wc_operation_t);
  static jobject mapTristate(svn_tristate_t);
  static jobject mapSummarizeKind(svn_client_diff_summarize_kind_t);
 private:
  static jobject mapEnum(const char *clazzName, int offset);
  static int getOrdinal(const char *clazzName, jobject jenum);
};

#endif  // ENUM_MAPPER_H


text:
class ChangeBlogsImageToString < ActiveRecord::Migration
  def up
    remove_attachment :blogs, :image
    add_column :blogs, :image, :string
  end

  def down
    remove_column :blogs, :image
    add_attachment :blogs, :image
  end
end


text:
class os_error_t : public exec_stream_t::error_t {
public:
    os_error_t( std::string const & msg );
    os_error_t( std::string const & msg,  exec_stream_t::error_code_t code );
private:
    void compose( std::string const & msg, exec_stream_t::error_code_t code );
};

class pipe_t {
public:
    pipe_t();
    ~pipe_t();
    HANDLE r() const;
    HANDLE w() const;
    void close_r();
    void close_w();
    void close();
    void open();
private:
    enum direction_t{ closed, read, write, both };
    direction_t m_direction;
    HANDLE m_r;
    HANDLE m_w;
};

class set_stdhandle_t {
public:
    set_stdhandle_t( DWORD kind, HANDLE handle );
    ~set_stdhandle_t();
private:
    DWORD m_kind;
    HANDLE m_save_handle;
};

class wait_result_t {
public:
    wait_result_t();
    wait_result_t( DWORD wait_result, int objects_count, HANDLE const * objects );

    bool ok();
    bool is_signaled( class event_t & event );
    bool timed_out();
    DWORD error_code();
    char const * error_message();

private:

    HANDLE m_signaled_object;
    bool m_timed_out;
    DWORD m_error_code;
    char const * m_error_message;
};

class event_t {
public:
    event_t();
    ~event_t();
    bool set();
    bool reset();

private:
    HANDLE m_handle;

    friend wait_result_t wait( event_t & e, DWORD timeout );
    friend wait_result_t wait( event_t & e1, event_t & e2, DWORD timeout );
    friend class wait_result_t;
};

wait_result_t wait( HANDLE e, DWORD timeout );
wait_result_t wait( event_t & e, DWORD timeout );
wait_result_t wait( event_t & e1, event_t & e2, DWORD timeout ); // waits for any one of e1, e2

class mutex_t {
public:
    mutex_t();
    ~mutex_t();

private:
    HANDLE m_handle;
    friend class grab_mutex_t;
};

class grab_mutex_t {
public:
    grab_mutex_t( mutex_t & mutex, DWORD timeout );
    ~grab_mutex_t();

    bool ok();
    DWORD error_code();
    char const * error_message();

private:
    HANDLE m_mutex;
    wait_result_t m_wait_result;
};

class thread_buffer_t {
public:
    thread_buffer_t();
    ~thread_buffer_t();

    // those three may be called only before the thread is started
    void set_wait_timeout( DWORD milliseconds );
    void set_thread_termination_timeout( DWORD milliseconds );
    void set_buffer_limit( std::size_t limit );
    void set_read_buffer_size( std::size_t size );
    void set_binary_mode();
    void set_text_mode();

    void start_reader_thread( HANDLE pipe );
    void start_writer_thread( HANDLE pipe);

    void get( exec_stream_t::stream_kind_t kind, char * dst, std::size_t & size, bool & no_more );          // may be called only after start_reader_thread
    void put( char * const src, std::size_t & size, bool & no_more );// may be called only after start_writer_thread

    bool stop_thread();
    bool abort_thread();

private:
    enum direction_t { dir_none, dir_read, dir_write };
    direction_t m_direction; // set by start_thread

    buffer_list_t m_buffer_list;
    mutex_t m_mutex; // protecting m_buffer_list

    char const * m_message_prefix; // error occured in the thread, if any
    DWORD m_error_code;                 // they are examined only after the thread has terminated
    char const * m_error_message;  // so setting them anywhere in the thread is safe

    DWORD m_wait_timeout;            // parameters used in thread
    std::size_t m_buffer_limit;      // they are set before the thread is started,
    DWORD m_read_buffer_size;        // so accessing them anywhere in the thread is safe

    HANDLE m_thread;
    event_t m_want_data; // for synchronisation between get and reader_thread
    event_t m_got_data;   // or between put and writer_thread
    event_t m_stop_thread;
    HANDLE m_pipe;
    DWORD m_thread_termination_timeout;
    bool m_translate_crlf;

    void start_thread( HANDLE pipe, direction_t direction );
    static DWORD WINAPI reader_thread( LPVOID param );
    static DWORD WINAPI writer_thread( LPVOID param );

    void check_error( std::string const & message_prefix, DWORD error_code, std::string const & error_message );
    void note_thread_error( char const * message_prefix, DWORD error_code, char const * error_message );
    bool check_thread_stopped();
};


text:
namespace douban {
namespace mc {

typedef enum {
  MODE_UNDEFINED,
  MODE_END_STATE,
  MODE_COUNTING
} ParserMode;

class PacketParser {
 public:
  PacketParser();
  explicit PacketParser(io::BufferReader* reader);
  ~PacketParser();
  void setBufferReader(io::BufferReader* reader);
  void setMode(ParserMode md);
  void addRequestKey(const char* const key, const size_t len);
  std::vector<struct iovec>* getRequestKeys();
  struct iovec* currentRequestKey();
  size_t requestKeyCount();
  void process_packets(err_code_t &err);
  void reset();
  void rewind();

  types::RetrievalResultList* getRetrievalResults();
  types::MessageResultList* getMessageResults();
  types::LineResultList* getLineResults();
  types::UnsignedResultList* getUnsignedResults();

 protected:
  int start_state(err_code_t& err);
  bool canEndParse();
  void processMessageResult(message_result_type tp);
  void processLineResult(err_code_t& err);

  std::vector<struct iovec> m_requestKeys;
  io::BufferReader* m_buffer_reader;
  parser_state_t m_state;
  ParserMode m_mode;
  size_t m_expectedResultCount;
  size_t m_requestKeyIdx;

  types::RetrievalResultList m_retrievalResults;
  types::MessageResultList m_messageResults;
  types::LineResultList m_lineResults;
  types::UnsignedResultList m_unsignedResults;

  // mt means Member-Tmp-variable
  types::RetrievalResult* mt_kvPtr;
};

inline bool PacketParser::canEndParse() {
  assert(m_mode == MODE_END_STATE || m_mode == MODE_COUNTING);
  return m_mode == MODE_END_STATE ? IS_END_STATE(m_state) : m_requestKeyIdx == m_requestKeys.size();
}

} // namespace mc
} // namespace douban


text:
//=====================================================================
//
//File:      $RCSfile: TestPlugin.java,v $
//Version:   $Revision: 1.8 $
//Modified:  $Date: 2013/01/10 23:00:36 $
//
//(c) Copyright 2004-2014 by Mentor Graphics Corp. All rights reserved.
//
//=====================================================================
// Licensed under the Apache License, Version 2.0 (the "License"); you may not
// use this file except in compliance with the License.  You may obtain a copy
// of the License at
//
//       http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   See the
// License for the specific language governing permissions and limitations under
// the License.
//=====================================================================

package com.mentor.nucleus.bp.als.oal.test;

import org.eclipse.ui.plugin.*;
import org.eclipse.core.runtime.*;
import org.eclipse.core.resources.*;
import org.osgi.framework.Constants;

import java.util.*;

/**
 * The main plugin class to be used in the desktop.
 */
public class TestPlugin extends AbstractUIPlugin {
	//The shared instance.
	private static TestPlugin plugin;
	//Resource bundle.
	private ResourceBundle resourceBundle;

	/**
	 * The constructor.
	 */
	public TestPlugin() {
		super();
		plugin = this;
		try {
			resourceBundle= ResourceBundle.getBundle("com.mentor.nucleus.bp.als.oal.test.TestPluginResources");
		} catch (MissingResourceException x) {
			resourceBundle = null;
		}
	}

	/**
	 * Returns the shared instance.
	 */
	public static TestPlugin getDefault() {
		return plugin;
	}

	/**
	 * Returns the workspace instance.
	 */
	public static IWorkspace getWorkspace() {
		return ResourcesPlugin.getWorkspace();
	}

	/**
	 * Returns the string from the plugin's resource bundle,
	 * or 'key' if not found.
	 */
	public static String getResourceString(String key) {
		ResourceBundle bundle= TestPlugin.getDefault().getResourceBundle();
		try {
			return bundle.getString(key);
		} catch (MissingResourceException e) {
			return key;
		}
	}

	/**
	 * Returns the plugin's resource bundle,
	 */
	public ResourceBundle getResourceBundle() {
		return resourceBundle;
	}

    /**
     * Logs the given exception (with accompanying message) to this
     * plug-in's log.
     */
    public static void log(String msg, Exception e)
    {
        TestPlugin plugin = getDefault();
        Status status = new Status(IStatus.ERROR,
            (String)plugin.getBundle().getHeaders().get(Constants.BUNDLE_NAME),
            IStatus.ERROR, msg, e);
        plugin.getLog().log(status);
    }
}


text:
namespace Nancy.ViewEngines.NDjango.Tests
{
    using System.IO;
    using Nancy.Tests;
    using Xunit;

    public class NDjangoViewCompilerFixture
    {
        private readonly NDjangoViewEngine engine;

        public NDjangoViewCompilerFixture()
        {
            this.engine = new NDjangoViewEngine();
        }

        [Fact]
        public void GetCompiledView_should_render_to_stream()
        {
            // Given
            var location = new ViewLocationResult(
                string.Empty,
                "django",
                new StringReader(@"{% ifequal a a %}
Hello Mr. test
{% endifequal %}")
            );

            var stream = new MemoryStream();

            // When
            var action = engine.RenderView(location, null);
            action.Invoke(stream);

            // Then
            stream.ShouldEqual("
Hello Mr. test
");
        }
    }
}


text:
layout: post
title: Migrating a Single Page Webapp to Real-time Event Driven Architecture
date: 2013-04-23 05:48:37.000000000 -07:00
categories: []
tags: []
status: draft
type: post
published: false
---

Introduce Messaging to Your Web Clients

* Add in a web messaging component.  Kaazing Messaging Gateway offers many clients, enterprise-class features and is free to try for up to 50 connections.

Security, Authentication and Authorization

* Deploy a message queue for each customer in your system.

* Integrate messaging security with your existing authentication regime

* Implement an Authorization factory

Replace all XHR calls with asynchronous messaging

* Adapt all XHR calls in your web application to become XHR-RequestMessage and XHR-ResponseMessage objects on the message bus.

Example Application Spec

Let's say you have a single page webapp to combine results from multiple search engines.

The user enters in one or two search terms, and results are found and displayed on a per-engine basis.  Each result has an associated URL.  The first way of combining results is to group each engine's results by origin of the URL, and assign a score to each group (# results in group to start).  All groups across engines are combined, and ranked according to combined score from each engine.

For example:

Search: tesla s rentals

Bing:

The Tesla Model S Comes to MPG Car Rental -- LOS ANGELES, …

http://www.prnewswire.com/news-releases/the-tesla-model-s-comes-to-mpg-car-rental-201310001.html PR Newswire2 days ago

The Tesla Model S Comes to MPG Car Rental. History Making Motor Trend 2013 Car of the Year Comes to Southern California's Premier Green Car Rental Agency.

Tesla Motors Electric Car Rentals - Exotic Car Rental Luxury Car …

www.exoticcarrentals.biz/tesla-electric-car.html

Tesla electric car rentals. ... Electric Car Rentals: I couldn't believe it when I heard about the Tesla Electric car. 100% electric and it looks great.

The Tesla Model S Comes to MPG Car Rental - Automotive World

www.automotiveworld.com/.../the-tesla-model-s-comes-to-mpg-car-rental

History Making Motor Trend 2013 Car of the Year Comes to Southern California's Premier Green Car Rental Agency It's not every day that you even get to l

Tesla's fuzzy math would put a Model S in your driveway for $543 ...

www.montereyherald.com/digitalextras/ci_22934250/teslas-fuzzy-math...

Apr 03, 2013 · Tesla's somewhat fuzzy math assumes your time is worth $100 an hour, ... 2 ROOMS FOR RENT (Top Rentals) 1BA/1BA (Top Rentals) Monterey 3bd 2ba (Top Rentals)

The Tesla Model S Comes to MPG Car Rental - KOTA Territory …

www.kotatv.com/.../21872768/the-tesla-model-s-comes-to-mpg-car-rental

KOTATV.com, KOTA-TV, KOTA Territory news,Rapid City news,Black Hills news,Spearfish news,Sturgis news,Lead-Deadwood news,Custer news,Gillette …

Google:

The Tesla Model S Comes to MPG Car Rental

www.cnbc.com/id/100614201

2 days ago – LOS ANGELES, April 3, 2013/ PRNewswire/-- It's not every day that you even get to look at– much less drive– a car that is poised to make some ...

 The Tesla Model S Comes to MPG Car Rental | Reuters

www.reuters.com/.../ca-mpg-rental-tesla-s-idUSnPnLA88475+...

2 days ago – For best results when printing this announcement, please click on the ...

Tesla Model S Performance Edition Rentals | Club Sportiva

clubsportiva.com/...rentals/tesla-model-s-performance-edition

Year: 2012. MSRP: $105,000. Seats: 5. Engine: 310kW Electric Motor. Horsepower: 416 HP. Torque: 443 ft/lbs. Transmission: Automatic. Driveline: RWD. Weight ...

 Tesla Model S: An Electrifying Feat of American Engineering You ...

blog.clubsportiva.com/tesla-model-s-an-electrifying-feat-of-a...

Jan 10, 2013 – Our Tesla Model S rental is a vehicle that is hard to contain your excitement over, so let's dive right into the best part, the center of the loaf, ...

 Rent a White Tesla Roadster in San Francisco - Getaround

www.getaround.com/Halo

This Tesla Roadster S has all the upgrades including a premium suspension system ...http://www.teslamotors.com/roadster Estimate 25 miles in range per rental ..

Bing (Grouped by origin, with scores)

Google (Grouped by origin, with scores)

Combined (Grouped by origin, with scores)


text:
using ::testing::AtLeast;
using ::testing::Invoke;
using ::testing::Return;
using ::testing::StrictMock;

namespace net {

namespace {

// Subclass of NetworkChangeNotifierWin that overrides functions so that no
// Windows API networking functions are ever called.
class TestNetworkChangeNotifierWin : public NetworkChangeNotifierWin {
 public:
  TestNetworkChangeNotifierWin() {}

  virtual ~TestNetworkChangeNotifierWin() {
    // This is needed so we don't try to stop watching for IP address changes,
    // as we never actually started.
    set_is_watching(false);
  }

  // From NetworkChangeNotifier.
  virtual NetworkChangeNotifier::ConnectionType
      GetCurrentConnectionType() const OVERRIDE {
    return NetworkChangeNotifier::CONNECTION_UNKNOWN;
  }

  // From NetworkChangeNotifierWin.
  MOCK_METHOD0(WatchForAddressChangeInternal, bool());

 private:
  DISALLOW_COPY_AND_ASSIGN(TestNetworkChangeNotifierWin);
};

class TestIPAddressObserver
    : public net::NetworkChangeNotifier::IPAddressObserver {
 public:
  TestIPAddressObserver() {
    NetworkChangeNotifier::AddIPAddressObserver(this);
  }

  ~TestIPAddressObserver() {
    NetworkChangeNotifier::RemoveIPAddressObserver(this);
  }

  MOCK_METHOD0(OnIPAddressChanged, void());

 private:
  DISALLOW_COPY_AND_ASSIGN(TestIPAddressObserver);
};

bool ExitMessageLoopAndReturnFalse() {
  base::MessageLoop::current()->Quit();
  return false;
}

}  // namespace

class NetworkChangeNotifierWinTest : public testing::Test {
 public:
  // Calls WatchForAddressChange, and simulates a WatchForAddressChangeInternal
  // success.  Expects that |network_change_notifier_| has just been created, so
  // it's not watching anything yet, and there have been no previous
  // WatchForAddressChangeInternal failures.
  void StartWatchingAndSucceed() {
    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(0);
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        .Times(1)
        .WillOnce(Return(true));

    network_change_notifier_.WatchForAddressChange();

    EXPECT_TRUE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    // If a task to notify observers of the IP address change event was
    // incorrectly posted, make sure it gets run to trigger a failure.
    base::MessageLoop::current()->RunUntilIdle();
  }

  // Calls WatchForAddressChange, and simulates a WatchForAddressChangeInternal
  // failure.
  void StartWatchingAndFail() {
    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(0);
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        // Due to an expected race, it's theoretically possible for more than
        // one call to occur, though unlikely.
        .Times(AtLeast(1))
        .WillRepeatedly(Return(false));

    network_change_notifier_.WatchForAddressChange();

    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_LT(0, network_change_notifier_.sequential_failures());

    // If a task to notify observers of the IP address change event was
    // incorrectly posted, make sure it gets run.
    base::MessageLoop::current()->RunUntilIdle();
  }

  // Simulates a network change event, resulting in a call to OnObjectSignaled.
  // The resulting call to WatchForAddressChangeInternal then succeeds.
  void SignalAndSucceed() {
    EXPECT_TRUE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(1);
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        .Times(1)
        .WillOnce(Return(true));

    network_change_notifier_.OnObjectSignaled(INVALID_HANDLE_VALUE);

    EXPECT_TRUE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    // Run the task to notify observers of the IP address change event.
    base::MessageLoop::current()->RunUntilIdle();
  }

  // Simulates a network change event, resulting in a call to OnObjectSignaled.
  // The resulting call to WatchForAddressChangeInternal then fails.
  void SignalAndFail() {
    EXPECT_TRUE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(1);
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        // Due to an expected race, it's theoretically possible for more than
        // one call to occur, though unlikely.
        .Times(AtLeast(1))
        .WillRepeatedly(Return(false));

    network_change_notifier_.OnObjectSignaled(INVALID_HANDLE_VALUE);

    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_LT(0, network_change_notifier_.sequential_failures());

    // Run the task to notify observers of the IP address change event.
    base::MessageLoop::current()->RunUntilIdle();
  }

  // Runs the message loop until WatchForAddressChange is called again, as a
  // result of the already posted task after a WatchForAddressChangeInternal
  // failure.  Simulates a success on the resulting call to
  // WatchForAddressChangeInternal.
  void RetryAndSucceed() {
    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_LT(0, network_change_notifier_.sequential_failures());

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(1)
        .WillOnce(
            Invoke(base::MessageLoop::current(), &base::MessageLoop::Quit));
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        .Times(1).WillOnce(Return(true));

    base::MessageLoop::current()->Run();

    EXPECT_TRUE(network_change_notifier_.is_watching());
    EXPECT_EQ(0, network_change_notifier_.sequential_failures());
  }

  // Runs the message loop until WatchForAddressChange is called again, as a
  // result of the already posted task after a WatchForAddressChangeInternal
  // failure.  Simulates a failure on the resulting call to
  // WatchForAddressChangeInternal.
  void RetryAndFail() {
    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_LT(0, network_change_notifier_.sequential_failures());

    int initial_sequential_failures =
        network_change_notifier_.sequential_failures();

    EXPECT_CALL(test_ip_address_observer_, OnIPAddressChanged()).Times(0);
    EXPECT_CALL(network_change_notifier_, WatchForAddressChangeInternal())
        // Due to an expected race, it's theoretically possible for more than
        // one call to occur, though unlikely.
        .Times(AtLeast(1))
        .WillRepeatedly(Invoke(ExitMessageLoopAndReturnFalse));

    base::MessageLoop::current()->Run();

    EXPECT_FALSE(network_change_notifier_.is_watching());
    EXPECT_LT(initial_sequential_failures,
              network_change_notifier_.sequential_failures());

    // If a task to notify observers of the IP address change event was
    // incorrectly posted, make sure it gets run.
    base::MessageLoop::current()->RunUntilIdle();
  }

 private:
  // Note that the order of declaration here is important.

  // Allows creating a new NetworkChangeNotifier.  Must be created before
  // |network_change_notifier_| and destroyed after it to avoid DCHECK failures.
  NetworkChangeNotifier::DisableForTest disable_for_test_;

  StrictMock<TestNetworkChangeNotifierWin> network_change_notifier_;

  // Must be created after |network_change_notifier_|, so it can add itself as
  // an IPAddressObserver.
  StrictMock<TestIPAddressObserver> test_ip_address_observer_;
};

TEST_F(NetworkChangeNotifierWinTest, NetChangeWinBasic) {
  StartWatchingAndSucceed();
}

TEST_F(NetworkChangeNotifierWinTest, NetChangeWinFailStart) {
  StartWatchingAndFail();
}

// https://code.google.com/p/chromium/issues/detail?id=356401
TEST_F(NetworkChangeNotifierWinTest, FLAKY_NetChangeWinFailStartOnce) {
  StartWatchingAndFail();
  RetryAndSucceed();
}

// https://code.google.com/p/chromium/issues/detail?id=356401
TEST_F(NetworkChangeNotifierWinTest, FLAKY_NetChangeWinFailStartTwice) {
  StartWatchingAndFail();
  RetryAndFail();
  RetryAndSucceed();
}

TEST_F(NetworkChangeNotifierWinTest, NetChangeWinSignal) {
  StartWatchingAndSucceed();
  SignalAndSucceed();
}

// https://code.google.com/p/chromium/issues/detail?id=356401
TEST_F(NetworkChangeNotifierWinTest, FLAKY_NetChangeWinFailSignalOnce) {
  StartWatchingAndSucceed();
  SignalAndFail();
  RetryAndSucceed();
}

// https://code.google.com/p/chromium/issues/detail?id=356401
TEST_F(NetworkChangeNotifierWinTest, FLAKY_NetChangeWinFailSignalTwice) {
  StartWatchingAndSucceed();
  SignalAndFail();
  RetryAndFail();
  RetryAndSucceed();
}

}  // namespace net