public RazorFreeState (
			HtmlTagState tagState,
			HtmlClosingTagState closingTagState,
			XmlCommentState commentState,
			XmlCDataState cDataState,
			XmlDocTypeState docTypeState,
			XmlProcessingInstructionState processingInstructionState,
			RazorCodeBlockState codeBlockState,
			RazorExpressionState expressionState,
			RazorCommentState razorCommentState,
			RazorSpeculativeState speculativeState
			)
			: base (tagState, closingTagState, commentState, cDataState, docTypeState, processingInstructionState)
		{
			CodeBlockState = codeBlockState;
			ExpressionState = expressionState;
			ServerCommentState = razorCommentState;
			SpeculativeState = speculativeState;

			Adopt (CodeBlockState);
			Adopt (ExpressionState);
			Adopt (ServerCommentState);
			Adopt (SpeculativeState);

			UseSimplifiedBracketTracker = false;
		}
		public AspNetFreeState (
			HtmlTagState tagState,
			HtmlClosingTagState closingTagState,
			XmlCommentState commentState,
			XmlCDataState cDataState,
			XmlDocTypeState docTypeState,
		        XmlProcessingInstructionState processingInstructionState,
			AspNetExpressionState expressionState,
			AspNetDirectiveState directiveState,
			AspNetServerCommentState serverCommentState
			)
			: base (tagState, closingTagState, commentState, cDataState, docTypeState, processingInstructionState)
		{
			this.expressionState = expressionState;
			this.directiveState = directiveState;
			this.serverCommentState = serverCommentState;
			
			Adopt (this.ExpressionState);
			Adopt (this.DirectiveState);
			Adopt (this.ServerCommentState);
		}
		public XmlFreeState (
			XmlTagState tagState,
			XmlClosingTagState closingTagState,
			XmlCommentState commentState,
			XmlCDataState cDataState,
			XmlDocTypeState docTypeState,
		        XmlProcessingInstructionState processingInstructionState)
		{
			this.tagState = tagState;
			this.closingTagState = closingTagState;
			this.commentState = commentState;
			this.cDataState = cDataState;
			this.docTypeState = docTypeState;
			this.processingInstructionState = processingInstructionState;
			
			Adopt (this.TagState);
			Adopt (this.ClosingTagState);
			Adopt (this.CommentState);
			Adopt (this.CDataState);
			Adopt (this.DocTypeState);
			Adopt (this.ProcessingInstructionState);
		}
        public XmlFreeState(
            XmlTagState tagState,
            XmlClosingTagState closingTagState,
            XmlCommentState commentState,
            XmlCDataState cDataState,
            XmlDocTypeState docTypeState,
            XmlProcessingInstructionState processingInstructionState)
        {
            this.tagState                   = tagState;
            this.closingTagState            = closingTagState;
            this.commentState               = commentState;
            this.cDataState                 = cDataState;
            this.docTypeState               = docTypeState;
            this.processingInstructionState = processingInstructionState;

            Adopt(this.TagState);
            Adopt(this.ClosingTagState);
            Adopt(this.CommentState);
            Adopt(this.CDataState);
            Adopt(this.DocTypeState);
            Adopt(this.ProcessingInstructionState);
        }