<?xml version="1.0" encoding="utf-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You 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.
-->
	<flow:TextFlow xmlns:flow="http://ns.adobe.com/textLayout/2008" fontSize="24" tabStops="s700" fontFamily="Times New Roman">
		Loose text in "Default=Collapse" TextFlow followed by a tab element <flow:tab/> followed by more loose text in TextFlow
MORE
		<flow:p>
			Loose text in Paragraph followed by a tab element <flow:tab/> followed by more loose text in Paragraph
MORE
			<flow:span>Span element in Paragraph</flow:span>
			<flow:span>Span element with new line,
4 spaces,    a tab,	and embedded break element <flow:br/> in Paragraph</flow:span>
			<flow:span whiteSpaceCollapse="preserve">"Preserve" Span element with new line,
4 spaces,    a tab,	and embedded break element <flow:br/> in Paragraph</flow:span>
		</flow:p>
		Loose text in TextFlow after intervening paragraph
	</flow:TextFlow>

