// Token: 0x06000E8D RID: 3725 RVA: 0x00073120 File Offset: 0x00071320
        private IProducerConsumer CreateChain(ConverterInput input, FormatOutput output, IProgressMonitor progressMonitor)
        {
            this.locked = true;
            HtmlInjection injection = null;

            if (this.injectHead != null || this.injectTail != null)
            {
                injection = new HtmlInjection(this.injectHead, this.injectTail, this.injectionFormat, false, null, this.testBoundaryConditions, null, progressMonitor);
            }
            HtmlParser            parser  = new HtmlParser(input, this.detectEncodingFromMetaTag, false, this.testMaxTokenRuns, this.testMaxHtmlTagAttributes, this.testBoundaryConditions);
            HtmlNormalizingParser parser2 = new HtmlNormalizingParser(parser, injection, false, this.testMaxHtmlNormalizerNesting, this.testBoundaryConditions, this.testNormalizerTraceStream, this.testNormalizerTraceShowTokenNum, this.testNormalizerTraceStopOnTokenNum);
            HtmlFormatConverter   result;

            if (this.encapsulateMarkup)
            {
                result = new HtmlFormatConverterWithEncapsulation(parser2, output, this.encapsulateMarkup, false, this.testTraceStream, this.testTraceShowTokenNum, this.testTraceStopOnTokenNum, this.testFormatConverterTraceStream, progressMonitor);
            }
            else
            {
                result = new HtmlFormatConverter(parser2, output, false, this.testTraceStream, this.testTraceShowTokenNum, this.testTraceStopOnTokenNum, this.testFormatConverterTraceStream, progressMonitor);
            }
            return(result);
        }
        // Token: 0x060013EC RID: 5100 RVA: 0x0008DCE8 File Offset: 0x0008BEE8
        protected override void Process(HtmlTokenId tokenId)
        {
            this.token = this.parser.Token;
            switch (tokenId)
            {
            case HtmlTokenId.EndOfFile:
                base.CloseAllContainersAndSetEOF();
                break;

            case HtmlTokenId.Text:
                if (this.insideStyle)
                {
                    this.OutputEncapsulatedMarkup();
                    this.token.Text.WriteTo(this.cssParserInput);
                    return;
                }
                if (this.insideComment)
                {
                    this.OutputEncapsulatedMarkup();
                    return;
                }
                if (this.insidePre)
                {
                    base.ProcessPreformatedText();
                    return;
                }
                base.ProcessText();
                return;

            case HtmlTokenId.EncodingChange:
                if (this.output != null && this.output.OutputCodePageSameAsInput)
                {
                    this.output.OutputEncoding = this.token.TokenEncoding;
                    return;
                }
                break;

            case HtmlTokenId.Tag:
                this.OutputEncapsulatedMarkup();
                if (this.token.TagIndex <= HtmlTagIndex.Unknown)
                {
                    if (this.insideStyle && this.token.TagIndex == HtmlTagIndex._COMMENT)
                    {
                        this.token.Text.WriteTo(this.cssParserInput);
                        return;
                    }
                }
                else
                {
                    HtmlDtd.TagDefinition tagDefinition = HtmlFormatConverter.GetTagDefinition(this.token.TagIndex);
                    if (!this.token.IsEndTag)
                    {
                        if (this.token.IsTagBegin)
                        {
                            base.PushElement(tagDefinition, this.token.IsEmptyScope);
                        }
                        base.ProcessStartTagAttributes(tagDefinition);
                        return;
                    }
                    if (this.token.IsTagEnd)
                    {
                        base.PopElement(this.BuildStackTop - 1 - this.temporarilyClosedLevels, this.token.Argument != 1);
                        return;
                    }
                }
                break;

            case HtmlTokenId.Restart:
                break;

            case HtmlTokenId.OverlappedClose:
                this.temporarilyClosedLevels = this.token.Argument;
                return;

            case HtmlTokenId.OverlappedReopen:
                this.temporarilyClosedLevels = 0;
                return;

            default:
                return;
            }
        }
 // Token: 0x060013EF RID: 5103 RVA: 0x0008DF5D File Offset: 0x0008C15D
 public MarkupSink(HtmlFormatConverter builder)
 {
     this.builder       = builder;
     this.literalBuffer = new char[2];
 }