 | us-gaap:GainContingencyDescription | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:FormerGainContingencyRecognizedInCurrentPeriod | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:GainContingencyUnrecordedAmount | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:GainContingencyQuantitiesPatentsAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:GainLossRelatedToLitigationSettlementAbstract | parent-child | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingencies |
 | us-gaap:GainContingenciesTable | all | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |
 | us-gaap:GainContingencyDescription | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |
 | us-gaap:FormerGainContingencyRecognizedInCurrentPeriod | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |
 | us-gaap:GainContingencyUnrecordedAmount | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |
 | us-gaap:GainContingencyQuantitiesPatentsAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |
 | us-gaap:GainLossRelatedToLitigationSettlementAbstract | domain-member | http://fasb.org/us-gaap/role/disclosure/CommitmentAndContingenciesGainContingenciesTable |