View Issue Details

IDProjectCategoryView StatusLast Update
0016049ScribusText Frames / Story Editorpublic2026-09-23 10:47
Reportersreerajp Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
Status newResolutionopen 
PlatformWindowsOS10OS Version1909
Product Version1.5.6.svn 
Summary0016049: Span Columns for selected text
DescriptionIt will be very useful if we can span selected text to multiple columns. This feature is there in Indesign and will relieve the user from managing TextFrame grouping. With this feature the heading and body text can be managed in a single Text Frame which will be a great feature.
Tags#please_test
Attached Files
PatchNo

Relationships

related to 0002039 acknowledged column span 

Activities

JLuc

2020-02-15 08:37

developer   ~0047386

I do not understand your request. Can you describe an example ?

sreerajp

2020-02-15 09:42

reporter   ~0047387

Suppose I have a text frame which is splitted to 5 columns. I want to add a headline to 5 column content which will cover the 5 columns. In scribus, now, I have to create another text frame to type the headline and set the style then adjust the text frame to 2 columns. Then I have to group both the frames to make it bounded.

I have attached images of both scribus and Indesign.
scribus.png (143,919 bytes)   
scribus.png (143,919 bytes)   
Indesign.png (100,597 bytes)   
Indesign.png (100,597 bytes)   

JLuc

2020-02-15 09:57

developer   ~0047388

Ok i understand that the results are the same but you prefer how you achieve this with indesign.
So how do you achive this with ID ?
Is there some sort of "colspan=2" paragraph property ?

sreerajp

2020-02-15 10:11

reporter   ~0047390

Actually both are not same. One is having grouping of text boxes which will cause some work for user if we want to edit anything in Heading or content matter. But in Indesign there is no such extra work.

Yes Indesign uses Span column in paragraph style. Attached a screen shot of the same
IndesignSpan.png (21,385 bytes)   
IndesignSpan.png (21,385 bytes)   

BN_Dev

2024-09-06 15:13

reporter   ~0051305

Hi all,

We would like to add our support for this feature request. We use QuarkXPress and this feature is invaluable when you are editing a large amount of stories in a short space of time. This may be one of the most important missing features which blocks adoption of Scribus for us because it will add a few extra hours of work a day. The column flow/column spanning feature really is a huge boost to productivity when an entire story can be contained in a single text frame and repositioned in one action without having to deal with grouping/ungrouping/realigning/wrapping/runaround/etc. each time you reposition something.

Many thanks,
Paul
qxpcolflow.png (821,058 bytes)   
qxpcolflow.png (821,058 bytes)   

BN_Dev

2024-09-06 15:32

reporter   ~0051306

FYI: quick explanation of the tool options in QXP
qxpflowoptions.png (148,650 bytes)   
qxpflowoptions.png (148,650 bytes)   

JLuc

2024-09-06 15:52

developer   ~0051307

I would use this feature for sure

PeterBenedek

2024-09-07 11:13

developer   ~0051308

Last edited: 2024-09-07 11:19

I like the solution of Scribus.
The Weld Item solution in Scribus gives similar results as the Indesign solution, but it can be used more flexibly.

A similar result can be achieved if I set the "Columns & Text Distances -- Top" property of the frame containing the columns to the height of the title and place the text frame containing the title here, then "Weld Items"

nitramr

2024-09-07 12:31

developer   ~0051309

Last edited: 2024-09-07 12:37

@PeterBenedek your approach could be a starting point for the implementation. As far as I understood from Quark XPress's documentation, you can span any paragraph within a text frame, not only the first one.
I see a lot of similarities with a table. From a technical point of view, I have some ideas for an implementation. We could have a new base class to handle layouts in rows and cols (simple content blocks). This base class could inherit for text frames and tables. For tables, of course, you would have more cell styling.

Here some more text frame examples
https://www.quark.com/documentation/quarkxpress/2024/english/User%20Guide/_5_3719690306931965E7_6.html#_C1CD3DD4933948A5ADB104A01E4DB3D4_6_7_4
screenshot_20240907-140520.png (564,311 bytes)   
screenshot_20240907-140520.png (564,311 bytes)   

BN_Dev

2024-09-07 14:52

reporter   ~0051310

Yes @nitramr you can span any paragraph in the text frame but typically in newsprint publications this is just the first/second paragraph (for a headline and/or drop head) and this matches our use case -- and seemingly the use case of @sreerajp who originally opened the issue. There are lots of other features offered by column flow in QXP which we just don't require, but they could be useful for others.

I've had a play with the weld features and it's still not quite right for this use case. It takes a lot of manual steps to accomplish what QXP/ID do. Although we can achieve the same result, the key is being able to achieve it quickly with minimal clicks. It's hard to overstate exactly how useful this feature is for real-world publishing productivity.

I would also draw to attention that the Column Flow feature is just the 4th tab to the right in the QXP toolbar because it's that important; listed well before things even like frame settings, run around, and alignment. This feature actually halves the time it takes to do a real-world layouts.

ale

2024-09-09 14:40

manager   ~0051316

while i see why it can be a huge time saver for your workflow, i fear that new comers start doing bigger parts of the layout inside of a text frame as if it was a word processor, with floating images above it and lot of spaces to make room for them.

anyway, if it's really well implemented, it's probably a good feature.
but i'd prefer a solution that improves the way the frame work together (like a better welding, mixed with the scrapbook), rather than one that simulates frames inside of frames.

nitramr

2024-09-09 16:21

developer   ~0051319

I found two nice videos that show the feature in action. It is for InDesign, but I guess it is similar in Quark XPress

Span Columns
https://www.youtube.com/watch?v=R0pgYBtPIHk

Split Columns
https://www.youtube.com/watch?v=pJ-EAEt_zrY

JLuc

2024-09-09 16:25

developer   ~0051320

Last edited: 2024-09-09 16:28

Welding UI would require notable improvements before it can be used efficiently
Eg See :
0011817: welded items move wild when moving their page (probably related to 0011132: Weld item don't follow correctly)
0012424: Resizing Welded Items leads to strange results
0013862: Welded items copy n pasting
0011019: Bug: unwanted move of welded items if welding point of master items doesnt change its position
0010799: welding point visibility feedback after welding
0010798: welding point placement and nature
0010797: welding point visibility
0010796: welded frames wire should all be visible when moving one

utnik

2024-09-09 16:32

updater   ~0051321

if you work with columns, 'span over xx columns' is a very useful tool.
i would like it to be part of a paragraph style. (if the style defines to span the paragraph over more columns than the actual frame contains, it just spans over the whole text frame…)
i like columns (even if they simulate frames inside of a frame.)

nitramr

2024-09-11 18:10

developer   ~0051325

I'm trying to understand the text floating behavior for different col span options. Unfortunately, I'm on Linux and can't test anything in InDesign or Quark. Below you can find some test cases I prepared in Scribus. It simulates a huge text frame on a page with different paragraph column span options.

I'm not sure if the text flow on page 5 and 6 is valid. Would be great if you, @BN_Dev, could confirm that, or can you please provide different scenarios from Quark to show what's possible?

The sla file is compatible with Scribus 1.6.2
ColSpan.pdf (323,760 bytes)
ColSpan.sla (106,459 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<SCRIBUSUTF8NEW Version="1.6.2">
    <DOCUMENT ANZPAGES="6" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="IsoA_A04" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="1" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" TextDistLeft="0" TextDistRight="0" TextDistBottom="0" TextDistTop="0" FirstLineOffset="1" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="100" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="1" DPSo="0" DPSFo="0" DPuse="1" DPgam="0" DPbla="1" DPPr="ISO Coated v2 300% (basICColor)" DPIn="sRGB display profile (ICC v2.2)" DPInCMYK="ISO Coated v2 300% (basICColor)" DPIn2="sRGB display profile (ICC v2.2)" DPIn3="ISO Coated v2 300% (basICColor)" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="de" AUTOMATIC="1" AUTOCHECK="1" GUIDELOCK="0" SnapToGuides="1" SnapToGrid="0" SnapToElement="1" MINGRID="20.001" MAJGRID="100.001" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWControl="0" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.502" POLYR="0" POLYIR="0" POLYCUR="0" POLYOCUR="0" POLYS="0" arcStartAngle="30" arcSweepAngle="300" spiralStartAngle="0" spiralEndAngle="1080" spiralFactor="1.2" AutoSave="1" AutoSaveTime="600000" AutoSaveCount="1" AutoSaveKeep="0" AUtoSaveInDocDir="1" AutoSaveDir="" ScratchBottom="20.001" ScratchLeft="100.001" ScratchRight="100.001" ScratchTop="20.001" GapHorizontal="0" GapVertical="40" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" CPICT="None" PICTSHADE="100" CSPICT="None" PICTSSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10.001" dispY="10.001" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#c0c0c0" renderStack="2 0 4 1 3" GridType="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PDF 1.4" calligraphicPenFillColor="Black" calligraphicPenLineColor="Black" calligraphicPenFillColorShade="100" calligraphicPenLineColorShade="100" calligraphicPenLineWidth="1" calligraphicPenAngle="0" calligraphicPenWidth="10" calligraphicPenStyle="1">
        <CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.6" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="1" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <COLOR NAME="Black" SPACE="CMYK" C="0" M="0" Y="0" K="100"/>
        <COLOR NAME="Blue" SPACE="RGB" R="0" G="0" B="255"/>
        <COLOR NAME="Cool Black" SPACE="CMYK" C="60" M="0" Y="0" K="100"/>
        <COLOR NAME="Cyan" SPACE="CMYK" C="100" M="0" Y="0" K="0"/>
        <COLOR NAME="Green" SPACE="CMYK" C="75.4" M="0" Y="92.8" K="0"/>
        <COLOR NAME="Magenta" SPACE="CMYK" C="15" M="74.2" Y="0" K="0"/>
        <COLOR NAME="Red" SPACE="RGB" R="255" G="0" B="0"/>
        <COLOR NAME="Registration" SPACE="CMYK" C="100" M="100" Y="100" K="100" Register="1"/>
        <COLOR NAME="Rich Black" SPACE="CMYK" C="60" M="40" Y="40" K="100"/>
        <COLOR NAME="Sticky Note" SPACE="CMYK" C="0" M="0" Y="21.7" K="0"/>
        <COLOR NAME="Warm Black" SPACE="CMYK" C="0" M="60" Y="29.8039215686275" K="100"/>
        <COLOR NAME="White" SPACE="CMYK" C="0" M="0" Y="0" K="0"/>
        <COLOR NAME="Yellow" SPACE="CMYK" C="0" M="0" Y="100" K="0"/>
        <HYPHEN/>
        <CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Arial Regular" FONTSIZE="12" FONTFEATURES="" FEATURES="inherit" FCOLOR="Black" FSHADE="100" HyphenWordMin="3" SCOLOR="Black" BGCOLOR="None" BGSHADE="100" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="de"/>
        <STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" DIRECTION="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" ParagraphEffectOffset="0" DROP="0" DROPLIN="2" Bullet="0" Numeration="0" HyphenConsecutiveLines="2" BCOLOR="None" BSHADE="100"/>
        <STYLE NAME="Base Paragraph" FIRST="14.1732283464567" NACH="5" LANGUAGE="de"/>
        <STYLE NAME="Red" PARENT="Base Paragraph" FCOLOR="Red"/>
        <STYLE NAME="Blue" PARENT="Base Paragraph" FCOLOR="Cyan"/>
        <STYLE NAME="Green" PARENT="Base Paragraph" FCOLOR="Green"/>
        <STYLE NAME="Purple" PARENT="Base Paragraph" FCOLOR="Magenta"/>
        <TableStyle NAME="Default Table Style" DefaultStyle="1" FillColor="None" FillShade="100">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </TableStyle>
        <CellStyle NAME="Default Cell Style" DefaultStyle="1" FillColor="None" FillShade="100" LeftPadding="1" RightPadding="1" TopPadding="1" BottomPadding="1"/>
        <MultiLine Name="Border">
            <SubLine Color="Yellow" Shade="100" Dash="6" LineEnd="0" LineJoin="0" Width="1" Shortcut=""/>
        </MultiLine>
        <LAYERS NUMMER="0" LEVEL="0" NAME="Background" SICHTBAR="1" DRUCKEN="1" EDIT="1" SELECT="0" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
        <Printer firstUse="1" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="1" useColor="1" mirrorH="0" mirrorV="0" useICC="1" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="1" PSLevel="3" PrintEngine="3" markLength="20.0013" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="File" filename="" separationName="All" printerCommand=""/>
        <PDF firstUse="0" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" rangeSel="0" rangeTxt="" RotateDeg="0" PresentMode="0" RecalcPic="0" FontEmbedding="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB display profile (ICC v2.2)" ImageP="sRGB display profile (ICC v2.2)" PrintP="ISO Coated v2 300% (basICColor)" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markLength="20.0012598425197" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" openAfterExport="0" PageLayout="0" openAction="">
            <Fonts Name="Arial Regular"/>
            <LPI Color="" Frequency="10" Angle="0" SpotFunction="0"/>
            <LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
            <LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
            <LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
            <LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
        </PDF>
        <DocItemAttributes/>
        <Indexes/>
        <TablesOfContents/>
        <NotesStyles>
            <notesStyle Name="Default" Start="1" Endnotes="0" Type="Type_1_2_3" Range="0" Prefix="" Suffix=")" AutoHeight="1" AutoWidth="1" AutoRemove="1" AutoWeld="1" SuperNote="1" SuperMaster="1" MarksStyle="" NotesStyle=""/>
        </NotesStyles>
        <PageSets>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
        </PageSets>
        <Sections>
            <Section Number="0" Name="Section 1" From="0" To="5" Type="Type_1_2_3" Start="1" Reversed="0" Active="1" FillChar="0" FieldWidth="0"/>
        </Sections>
        <MASTERPAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="20.001" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="901.890763779528" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="1" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="1783.78052755906" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="2" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="2665.67029133858" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="3" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="3547.56005511811" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="4" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.001" PAGEYPOS="4429.44981889764" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="5" NAM="" MNAM="Normal" Size="IsoA_A04" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="3587.56005511811" OwnPage="4" ItemID="959595144" PTYPE="4" WIDTH="515.275590551181" HEIGHT="550.433782608696" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" copath="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" gXpos="140.001" gYpos="3587.56005511811" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Cras et lectus ut nisl pharetra ornare."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="3587.56005511811" OwnPage="4" ItemID="735204296" PTYPE="6" WIDTH="341.303347826087" HEIGHT="157.925196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" copath="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" gXpos="140.001" gYpos="3587.56005511811" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="3587.56005511811" OwnPage="4" ItemID="101063444" PTYPE="4" WIDTH="340.520739130435" HEIGHT="158.425196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" copath="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" gXpos="140.001" gYpos="3587.56005511811" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="3969.92225984252" OwnPage="4" ItemID="1668380511" PTYPE="6" WIDTH="341.303347826087" HEIGHT="168.854186579938" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" copath="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" gXpos="140.001" gYpos="3969.92225984252" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="3975.99383772681" OwnPage="4" ItemID="20028263" PTYPE="4" WIDTH="340.520739130435" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" copath="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" gXpos="140.001" gYpos="3975.99383772681" gWidth="0" gHeight="0" PSTYLE="Green" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Green"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <para PARENT="Green"/>
                <ITEXT CH="Sus­pen­dis­se po­ten­ti. Cras ut mi sit amet quam con­se­quat con­se­quat. Ae­nean ut lec­tus. Cum so­ci­is na­to­que pe­na­ti­bus et ma­gnis dis par­tu­ri­ent mon­tes, nasce­tur ri­di­cu­lus mus. Sus­pen­dis­se vel sa­pi­en. Nul­lam non tur­pis. Pel­len­tes­que ele­men­tum pha­re­tra li­gu­la. In rhon­cus. Ali­quam vel enim con­se­quat sem ali­quet hend­re­rit. Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Nam fe­lis."/>
                <trail PARENT="Green"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.2608695652174" YPOS="106.696152173913" OwnPage="0" ItemID="333402193" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="106.696152173913" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 3"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="309.696152173913" OwnPage="0" ItemID="399945856" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="25.511811023622" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="309.696152173913" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="60.001" OwnPage="0" ItemID="1368698205" PTYPE="4" WIDTH="515.275590551181" HEIGHT="761.389763779528" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 761.39 L0 761.39 L0 0 Z" copath="M0 0 L515.276 0 L515.276 761.39 L0 761.39 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Proin leo risus, elementum eget, ultrices vitae, molestie sed, erat. Curabitur et lectus in tellus egestas hendrerit. Sed dapibus ipsum. Quisque sit amet ligula. Suspendisse odio dolor, semper id, feugiat quis, sodales id, mauris. Curabitur id ligula ac libero malesuada pharetra. Nam iaculis blandit purus. Mauris odio nibh, hendrerit id, cursus vel, sagittis a, dolor. Nullam turpis lacus, ultrices vel, sagittis vitae, dapibus vel, elit. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Pellentesque scelerisque purus. Etiam sed enim. Maecenas sed tortor id turpis consequat consequat. Curabitur fringilla. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Aenean consectetuer pretium enim. Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Praesent faucibus dignissim enim. Aliquam tincidunt. Mauris leo ante, condimentum eget, vestibulum sit amet, fringilla eget, diam. Nam ultricies ullamcorper nibh. Etiam neque. Ut posuere laoreet pede."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="60.001" OwnPage="0" ItemID="842657655" PTYPE="6" WIDTH="514.775590551181" HEIGHT="110.629434782609" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L514.776 0 L514.776 110.629 L0 110.629 L0 0 Z" copath="M0 0 L514.776 0 L514.776 110.629 L0 110.629 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="60.001" OwnPage="0" ItemID="444321352" PTYPE="4" WIDTH="515.275590551181" HEIGHT="111.129434782609" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 111.129 L0 111.129 L0 0 Z" copath="M0 0 L515.276 0 L515.276 111.129 L0 111.129 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="683.826770410494" YPOS="1174.02019856214" OwnPage="1" ItemID="451185761" PTYPE="4" WIDTH="147.128751328637" HEIGHT="130.067415611092" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PCOLOR="Sticky Note" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="5.66929133858268" TEXTRA="5.66929133858268" BEXTRA="5.66929133858268" REXTRA="5.66929133858268" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" HASSOFTSHADOW="1" SOFTSHADOWXOFFSET="5.00031496062992" SOFTSHADOWYOFFSET="5.00031496062992" SOFTSHADOWCOLOR="Black" SOFTSHADOWBLURRADIUS="0" SOFTSHADOWSHADE="100" SOFTSHADOWBLENDMODE="0" SOFTSHADOWOPACITY="0.67" SOFTSHADOWERASE="0" SOFTSHADOWOBJTRANS="0" path="M0 0 L147.129 0 L147.129 130.067 L0 130.067 L0 0 Z" copath="M0 0 L147.129 0 L147.129 130.067 L0 130.067 L0 0 Z" gXpos="683.826770410494" gYpos="1174.02019856214" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Pink pa­ra­graph height must be dxna­mi­cal­ly cal­cu­la­ted to fit bew­teen blue and green one wi­thout em­pty space."/>
                <trail/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="1823.78052755906" OwnPage="2" ItemID="475053993" PTYPE="4" WIDTH="515.275590551181" HEIGHT="550.433782608696" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" copath="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" gXpos="140.001" gYpos="941.890763779528" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Proin leo risus, elementum eget, ultrices vitae, molestie sed, erat. Curabitur et lectus in tellus egestas hendrerit. Sed dapibus ipsum. Quisque sit amet ligula. Suspendisse odio dolor, semper id, feugiat quis, sodales id, mauris. Curabitur id ligula ac libero malesuada pharetra."/>
                <para PARENT="Purple"/>
                <ITEXT CH="Nam iaculis blandit purus. Mauris odio nibh, hendrerit id, cursus vel, sagittis a, dolor. Nullam turpis lacus, ultrices vel, sagittis vitae, dapibus vel, elit. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Pellentesque scelerisque purus. Etiam sed enim. Maecenas sed tortor id turpis consequat consequat. Curabitur fringilla. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Aenean consectetuer pretium enim. Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Praesent faucibus dignissim enim. Aliquam tincidunt. Mauris leo ante, condimentum eget, vestibulum sit amet, fringilla eget, diam. Nam ultricies ullamcorper nibh. Etiam neque. Ut posuere laoreet pede."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="1823.78052755906" OwnPage="2" ItemID="348455947" PTYPE="6" WIDTH="341.303347826087" HEIGHT="157.925196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" copath="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" gXpos="140.001" gYpos="941.890763779528" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="1823.78052755906" OwnPage="2" ItemID="580201693" PTYPE="4" WIDTH="340.520739130435" HEIGHT="158.425196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" copath="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" gXpos="140.001" gYpos="941.890763779528" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="2206.14273228347" OwnPage="2" ItemID="801294445" PTYPE="6" WIDTH="515.275590551181" HEIGHT="168.854186579938" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L515.276 0 L515.276 168.854 L0 168.854 L0 0 Z" copath="M0 0 L515.276 0 L515.276 168.854 L0 168.854 L0 0 Z" gXpos="140.001" gYpos="1324.25296850394" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="2212.21431016775" OwnPage="2" ItemID="1688273596" PTYPE="4" WIDTH="515.275590551181" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 162 L0 162 L0 0 Z" copath="M0 0 L515.276 0 L515.276 162 L0 162 L0 0 Z" gXpos="140.001" gYpos="1330.32454638822" gWidth="0" gHeight="0" PSTYLE="Green" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Green"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus. Sus­pen­dis­se po­ten­ti. Cras ut mi sit amet quam con­se­quat con­se­quat. Ae­nean ut lec­tus. Cum so­ci­is na­to­que pe­na­ti­bus et ma­gnis dis par­tu­ri­ent mon­tes, nasce­tur ri­di­cu­lus mus. Sus­pen­dis­se vel sa­pi­en. Nul­lam non tur­pis. Pel­len­tes­que ele­men­tum pha­re­tra li­gu­la. In rhon­cus. Ali­quam vel enim con­se­quat sem ali­quet hend­re­rit. "/>
                <trail PARENT="Green"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="1868.08387538514" OwnPage="2" ItemID="543698193" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="986.194111605615" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="2071.08387538514" OwnPage="2" ItemID="689507062" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="1189.19411160562" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-32.260869565217" YPOS="2282.08387538514" OwnPage="2" ItemID="794504443" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-32.2608695652174" gYpos="1400.19411160562" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 3"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="3631.8634029442" OwnPage="4" ItemID="788892593" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="1868.08387538514" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="3834.8634029442" OwnPage="4" ItemID="1887976795" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="2071.08387538514" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-32.260869565217" YPOS="4045.8634029442" OwnPage="4" ItemID="208179738" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-32.2608695652174" gYpos="2282.08387538514" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="684.739130434783" YPOS="4054.34935313249" OwnPage="4" ItemID="624871660" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="28.3464566929134" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="684.739130434783" gYpos="2290.56982557344" gWidth="0" gHeight="0" ALIGN="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="0"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="0"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="488.347456692913" YPOS="3975.99383772681" OwnPage="4" ItemID="1038739082" PTYPE="4" WIDTH="166.929133858268" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L166.929 0 L166.929 162 L0 162 L0 0 Z" copath="M0 0 L166.929 0 L166.929 162 L0 162 L0 0 Z" gXpos="488.347456692913" gYpos="3975.99383772681" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at..."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="4139.27644642246" OwnPage="4" ItemID="201085982" PTYPE="4" WIDTH="340.520739130435" HEIGHT="210.17337247518" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 210.173 L0 210.173 L0 0 Z" copath="M0 0 L340.521 0 L340.521 210.173 L0 210.173 L0 0 Z" gXpos="140.001" gYpos="4139.27644642246" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="4232.8634029442" OwnPage="4" ItemID="161587645" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="2469.08387538514" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="2375.4969188634" OwnPage="2" ItemID="44494140" PTYPE="4" WIDTH="515.275590551181" HEIGHT="210.17337247518" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 210.173 L0 210.173 L0 0 Z" copath="M0 0 L515.276 0 L515.276 210.173 L0 210.173 L0 0 Z" gXpos="140.001" gYpos="3257.38668264293" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at..."/>
                <para PARENT="Blue"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="2455.06186597056" OwnPage="2" ItemID="1175222164" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="1573.17210219103" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="2705.67029133858" OwnPage="3" ItemID="950127382" PTYPE="4" WIDTH="515.275590551181" HEIGHT="550.433782608696" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" copath="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" gXpos="140.001" gYpos="1823.78052755906" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Cras et lectus ut nisl pharetra ornare."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="3094.10407394728" OwnPage="3" ItemID="1495238475" PTYPE="4" WIDTH="515.275590551181" HEIGHT="373.455981170832" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 373.456 L0 373.456 L0 0 Z" copath="M0 0 L515.276 0 L515.276 373.456 L0 373.456 L0 0 Z" gXpos="140.001" gYpos="2212.21431016775" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="2705.67029133858" OwnPage="3" ItemID="2002725290" PTYPE="6" WIDTH="341.303347826087" HEIGHT="157.925196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" copath="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" gXpos="140.001" gYpos="1823.78052755906" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="2705.67029133858" OwnPage="3" ItemID="1988942110" PTYPE="4" WIDTH="340.520739130435" HEIGHT="158.425196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" copath="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" gXpos="140.001" gYpos="1823.78052755906" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="3088.03249606299" OwnPage="3" ItemID="703766859" PTYPE="6" WIDTH="341.303347826087" HEIGHT="168.854186579938" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" copath="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" gXpos="140.001" gYpos="2206.14273228347" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="3094.10407394728" OwnPage="3" ItemID="1139889666" PTYPE="4" WIDTH="340.520739130435" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" copath="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" gXpos="140.001" gYpos="2212.21431016775" gWidth="0" gHeight="0" PSTYLE="Green" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Green"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <para PARENT="Green"/>
                <ITEXT CH="Sus­pen­dis­se po­ten­ti. Cras ut mi sit amet quam con­se­quat con­se­quat. Ae­nean ut lec­tus. Cum so­ci­is na­to­que pe­na­ti­bus et ma­gnis dis par­tu­ri­ent mon­tes, nasce­tur ri­di­cu­lus mus. Sus­pen­dis­se vel sa­pi­en. Nul­lam non tur­pis. Pel­len­tes­que ele­men­tum pha­re­tra li­gu­la. In rhon­cus. Ali­quam vel enim con­se­quat sem ali­quet hend­re­rit. Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Nam fe­lis."/>
                <trail PARENT="Green"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="2749.97363916467" OwnPage="3" ItemID="2014426296" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="104.304347826087" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="2952.97363916467" OwnPage="3" ItemID="1656565773" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="307.304347826087" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-32.260869565217" YPOS="3163.97363916467" OwnPage="3" ItemID="1697619186" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-32.2608695652174" gYpos="518.304347826087" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="3350.97363916467" OwnPage="3" ItemID="44659016" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="705.304347826087" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="4469.44981889764" OwnPage="5" ItemID="1815749325" PTYPE="4" WIDTH="515.275590551181" HEIGHT="550.433782608696" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" copath="M0 0 L515.276 0 L515.276 550.434 L0 550.434 L0 0 Z" gXpos="140.001" gYpos="2705.67029133859" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Cras et lectus ut nisl pharetra ornare."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="5019.88360150634" OwnPage="5" ItemID="1741022799" PTYPE="4" WIDTH="170.260369565217" HEIGHT="211.455981170832" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L170.26 0 L170.26 211.456 L0 211.456 L0 0 Z" copath="M0 0 L170.26 0 L170.26 211.456 L0 211.456 L0 0 Z" gXpos="140.001" gYpos="3256.10407394728" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="4469.44981889764" OwnPage="5" ItemID="32240356" PTYPE="6" WIDTH="341.303347826087" HEIGHT="157.925196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" copath="M0 0 L341.303 0 L341.303 157.925 L0 157.925 L0 0 Z" gXpos="140.001" gYpos="2705.67029133859" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="4469.44981889764" OwnPage="5" ItemID="677163627" PTYPE="4" WIDTH="340.520739130435" HEIGHT="158.425196850394" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" copath="M0 0 L340.521 0 L340.521 158.425 L0 158.425 L0 0 Z" gXpos="140.001" gYpos="2705.67029133859" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="4851.81202362205" OwnPage="5" ItemID="866757346" PTYPE="6" WIDTH="341.303347826087" HEIGHT="168.854186579938" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" copath="M0 0 L341.303 0 L341.303 168.854 L0 168.854 L0 0 Z" gXpos="140.001" gYpos="3088.032496063" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="4857.88360150634" OwnPage="5" ItemID="1492955435" PTYPE="4" WIDTH="340.520739130435" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" copath="M0 0 L340.521 0 L340.521 162 L0 162 L0 0 Z" gXpos="140.001" gYpos="3094.10407394728" gWidth="0" gHeight="0" PSTYLE="Green" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Green"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <para PARENT="Green"/>
                <ITEXT CH="Sus­pen­dis­se po­ten­ti. Cras ut mi sit amet quam con­se­quat con­se­quat. Ae­nean ut lec­tus. Cum so­ci­is na­to­que pe­na­ti­bus et ma­gnis dis par­tu­ri­ent mon­tes, nasce­tur ri­di­cu­lus mus. Sus­pen­dis­se vel sa­pi­en. Nul­lam non tur­pis. Pel­len­tes­que ele­men­tum pha­re­tra li­gu­la. In rhon­cus. Ali­quam vel enim con­se­quat sem ali­quet hend­re­rit. Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Nam fe­lis."/>
                <trail PARENT="Green"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="4513.75316672373" OwnPage="5" ItemID="657091297" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="986.194111605615" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="4716.75316672373" OwnPage="5" ItemID="1003652588" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="1189.19411160562" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-32.260869565217" YPOS="4927.75316672373" OwnPage="5" ItemID="688782981" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-32.2608695652174" gYpos="1400.19411160562" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="310.652673913043" YPOS="5021.16621020199" OwnPage="5" ItemID="1735213341" PTYPE="4" WIDTH="344.623916638138" HEIGHT="210.17337247518" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L344.624 0 L344.624 210.173 L0 210.173 L0 0 Z" copath="M0 0 L344.624 0 L344.624 210.173 L0 210.173 L0 0 Z" gXpos="310.652673913043" gYpos="3257.38668264293" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris."/>
                <para PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="676.739130434783" YPOS="5056.22438240329" OwnPage="5" ItemID="1361053427" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="28.3464566929134" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="676.739130434783" gYpos="3292.44485484424" gWidth="0" gHeight="0" ALIGN="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="0"/>
                <ITEXT CH="Col­span = 2"/>
                <trail ALIGN="0"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="489.320739130435" YPOS="4859.84387555632" OwnPage="5" ItemID="362370774" PTYPE="4" WIDTH="165.955851420746" HEIGHT="160.039725950016" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L165.956 0 L165.956 160.04 L0 160.04 L0 0 Z" copath="M0 0 L165.956 0 L165.956 160.04 L0 160.04 L0 0 Z" gXpos="489.320739130435" gYpos="3096.06434799726" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, "/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="676.739130434783" YPOS="4926.12273194112" OwnPage="5" ItemID="328125767" PTYPE="4" WIDTH="142.085956521739" HEIGHT="56.485963711054" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="28.3464566929134" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 56.486 L0 56.486 L0 0 Z" copath="M0 0 L142.086 0 L142.086 56.486 L0 56.486 L0 0 Z" gXpos="676.739130434783" gYpos="3162.34320438207" gWidth="0" gHeight="0" ALIGN="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="0"/>
                <ITEXT CH="Col­span = 1"/>
                <para ALIGN="0"/>
                <ITEXT CH="blue = 1 pa­ra­graph"/>
                <trail/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="607.651173913044" YPOS="5004.67237247518" OwnPage="5" ItemID="1724586097" PTYPE="5" WIDTH="450.620743886049" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="176.415389476062" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="655.276590551181" YPOS="160.434782608696" OwnPage="0" ItemID="2019261597" PTYPE="5" WIDTH="507.494697804946" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.702129395021" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="301.390304347827" YPOS="821.890763779528" OwnPage="0" ItemID="1213257846" PTYPE="5" WIDTH="632.12201614431" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="271.797338810556" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="470.390304347827" YPOS="821.890763779528" OwnPage="0" ItemID="944013161" PTYPE="5" WIDTH="632.12201614431" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="271.797338810556" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="774.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="462.08595652174" YPOS="1970.23758986648" OwnPage="2" ItemID="1979210894" PTYPE="5" WIDTH="310.902351569943" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="175.427995628005" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="297.216391304348" YPOS="2205.64273228347" OwnPage="2" ItemID="863109442" PTYPE="5" WIDTH="212.106170383125" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="276.780757797188" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="484.279083426602" YPOS="2205.64273228347" OwnPage="2" ItemID="481155647" PTYPE="5" WIDTH="369.058552114281" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="271.252604568939" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="642.607695652174" YPOS="2205.21753543307" OwnPage="2" ItemID="1205350641" PTYPE="5" WIDTH="489.827714401783" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.581224412626" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="629.392304347826" YPOS="2363.87819599453" OwnPage="2" ItemID="643232017" PTYPE="5" WIDTH="489.827714401783" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.581224412626" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="779.411518209211" gYpos="5178.54426206779" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="297.216391304348" YPOS="2571.28106812735" OwnPage="2" ItemID="1297204917" PTYPE="5" WIDTH="182.250580526042" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="277.898136902858" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="466.945232699955" YPOS="2585.67029133858" OwnPage="2" ItemID="508691230" PTYPE="5" WIDTH="195.680212648002" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="275.082067036507" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="962.355750909166" gYpos="5034.27282471757" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="464.172913043479" YPOS="2853.02019856214" OwnPage="3" ItemID="1538858346" PTYPE="5" WIDTH="313.239335527935" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.973754982319" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="299.303347826087" YPOS="3087.53249606299" OwnPage="3" ItemID="1638224428" PTYPE="5" WIDTH="212.687629477189" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="275.913634122298" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="473.070059809267" YPOS="3087.1072992126" OwnPage="3" ItemID="563832810" PTYPE="5" WIDTH="370.41762082021" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="273.468037835833" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="966.393621496738" gYpos="5019.45840465594" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="462.526428173903" YPOS="3247.17717825805" OwnPage="3" ItemID="783887209" PTYPE="5" WIDTH="313.239335527935" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.973754982319" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="790.980424643983" gYpos="5414.04058120225" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="299.303347826087" YPOS="3467.56005511811" OwnPage="3" ItemID="551498503" PTYPE="5" WIDTH="198.463848330558" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="275.861097324091" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="790.980424643983" gYpos="5414.04058120225" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="480.521739130435" YPOS="3467.56005511811" OwnPage="3" ItemID="1258247201" PTYPE="5" WIDTH="356.283718181735" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="272.14079134041" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="964.747136627162" gYpos="5413.61538435187" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="464.172913043479" YPOS="3734.90996234167" OwnPage="4" ItemID="1766371247" PTYPE="5" WIDTH="313.239335527935" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.973754982319" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="299.303347826087" YPOS="3969.42225984252" OwnPage="4" ItemID="394491139" PTYPE="5" WIDTH="212.687629477189" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="275.913634122298" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="473.070059809266" YPOS="3968.99706299213" OwnPage="4" ItemID="1791188140" PTYPE="5" WIDTH="370.41762082021" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="273.468037835833" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="966.393621496738" gYpos="5019.45840465595" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="446.955521739131" YPOS="4117.5652173913" OwnPage="4" ItemID="1748162178" PTYPE="5" WIDTH="131.738324817585" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="288.312412267119" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="795.628409513559" gYpos="5417.42983207806" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="638.583677165354" YPOS="4132.03099606299" OwnPage="4" ItemID="348316756" PTYPE="5" WIDTH="486.966115150351" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.263387341994" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="795.628409513559" gYpos="5418.71244077371" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="464.172913043479" YPOS="4616.79972612119" OwnPage="5" ItemID="1677792244" PTYPE="5" WIDTH="313.239335527935" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.973754982319" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="299.303347826087" YPOS="4851.31202362205" OwnPage="5" ItemID="318605024" PTYPE="5" WIDTH="212.687629477189" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="275.913634122298" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5019.88360150634" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="473.070059809266" YPOS="4850.88682677166" OwnPage="5" ItemID="790449496" PTYPE="5" WIDTH="370.41762082021" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="273.468037835833" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="966.393621496738" gYpos="5019.45840465595" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="641.564217391305" YPOS="4851.31202362205" OwnPage="5" ItemID="1260618642" PTYPE="5" WIDTH="490.636552583654" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="178.356760618242" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5257.39010612804" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="469.565217391304" YPOS="5004.24717562479" OwnPage="5" ItemID="1037122546" PTYPE="5" WIDTH="133.565628518448" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="278.505753471417" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="962.888779078776" gYpos="5172.81875350908" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="299.303347826087" YPOS="5213.84266381377" OwnPage="5" ItemID="1937749683" PTYPE="5" WIDTH="174.062427453712" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="273.738487018172" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="792.626909513559" gYpos="5382.41424169806" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="644.694652173914" YPOS="3086.68210236221" OwnPage="3" ItemID="226156522" PTYPE="5" WIDTH="491.30335032769" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.842340102087" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="795.237105165733" gYpos="5260.96747689149" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="988.585915953441" OwnPage="1" ItemID="1572333367" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="106.696152173913" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 3"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="-34.260869565217" YPOS="1191.58591595344" OwnPage="1" ItemID="1602490255" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="25.511811023622" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-34.2608695652174" gYpos="309.696152173913" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 1"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="941.890763779528" OwnPage="1" ItemID="1085056011" PTYPE="4" WIDTH="515.275590551181" HEIGHT="520.474179732972" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="3" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 520.474 L0 520.474 L0 0 Z" copath="M0 0 L515.276 0 L515.276 520.474 L0 520.474 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" PSTYLE="Purple" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Purple"/>
                <ITEXT CH="Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Ut a sapien. Aliquam aliquet purus molestie dolor. Integer quis eros ut erat posuere dictum. Curabitur dignissim. Integer orci. Fusce vulputate lacus at ipsum. Quisque in libero nec mi laoreet volutpat. Aliquam eros pede, scelerisque quis, tristique cursus, placerat convallis, velit. Nam condimentum. Nulla ut mauris. Curabitur adipiscing, mauris non dictum aliquam, arcu risus dapibus diam, nec sollicitudin quam erat quis ligula. Aenean massa nulla, volutpat eu, accumsan et, fringilla eget, odio. Nulla placerat porta justo. Nulla vitae turpis. Praesent lacus Suspendisse potenti. Cras ut mi sit amet quam consequat consequat. Aenean ut lectus. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse vel sapien. Nullam non turpis. Pellentesque elementum pharetra ligula. In rhoncus. Aliquam vel enim consequat sem aliquet hendrerit. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam felis. Quisque lobortis euismod metus. Nam ante. Nulla fermentum, risus non pulvinar porttitor, enim pede egestas nibh, sit amet posuere metus tortor id enim. Donec at sem. Vestibulum in lectus ut diam lacinia lacinia. Maecenas sit amet nulla. Suspendisse vel dolor. Nunc hendrerit elit vitae quam. In nonummy velit nec lorem. Etiam rhoncus felis a turpis. Phasellus ullamcorper arcu vitae wisi. Pellentesque urna odio, varius eget, id eros venenatis adipiscing. Cras et lectus ut nisl pharetra ornare. Proin leo risus, elementum eget, ultrices vitae, molestie sed, erat. Curabitur et lectus in tellus egestas hendrerit. Sed dapibus ipsum. Quisque sit amet ligula. Suspendisse odio dolor, semper id, feugiat quis, sodales id, mauris. Curabitur id ligula ac libero malesuada pharetra. Nam iaculis blandit purus. Mauris odio nibh, hendrerit id, cursus vel, sagittis a, dolor. Nullam turpis lacus, ultrices vel, sagittis vitae, dapibus vel, elit. Suspendisse auctor, sapien et suscipit tempor, turpis enim consequat sem, eu dictum nunc lorem at massa. Pellentesque scelerisque purus. Etiam sed enim. Maecenas sed tortor id turpis consequat consequat. Curabitur fringilla. Sed risus wisi, dictum a, sagittis nec, luctus ac, neque. Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed nibh neque, aliquam ut, sagittis id, gravida et, est. Aenean consectetuer pretium enim. Aenean tellus quam, condimentum a, adipiscing et, lacinia vel, ante. Praesent faucibus dignissim enim. Aliquam tincidunt. Mauris leo ante, condimentum eget, vestibulum sit amet, fringilla eget, diam. Nam ultricies ullamcorper nibh. Etiam neque. Ut posuere laoreet pede."/>
                <trail PARENT="Purple"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="941.890763779528" OwnPage="1" ItemID="2032841065" PTYPE="6" WIDTH="514.775590551181" HEIGHT="110.629434782609" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" TEXTFLOWMODE="1" path="M0 0 L514.776 0 L514.776 110.629 L0 110.629 L0 0 Z" copath="M0 0 L514.776 0 L514.776 110.629 L0 110.629 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="140.001" YPOS="941.890763779528" OwnPage="1" ItemID="800892399" PTYPE="4" WIDTH="515.275590551181" HEIGHT="111.129434782609" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="8.50393700787402" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 111.129 L0 111.129 L0 0 Z" copath="M0 0 L515.276 0 L515.276 111.129 L0 111.129 L0 0 Z" gXpos="140.001" gYpos="-1703.77852755906" gWidth="0" gHeight="0" PSTYLE="Blue" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Blue"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus."/>
                <trail PARENT="Blue"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="655.276590551181" YPOS="1042.32454638822" OwnPage="1" ItemID="1636690912" PTYPE="5" WIDTH="507.494697804946" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.702129395021" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="298.426196850394" YPOS="1456.69565217391" OwnPage="1" ItemID="965474455" PTYPE="5" WIDTH="385.4005735601" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="273.390093987451" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="605.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="473.04247826087" YPOS="1456.27045532352" OwnPage="1" ItemID="1680404991" PTYPE="5" WIDTH="384.684499981222" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="272.558771914919" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="774.564217391305" gYpos="4137.99383772681" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="647.087614173228" YPOS="1452.19103046902" OwnPage="1" ItemID="1446339371" PTYPE="5" WIDTH="495.93553093818" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="177.429301314609" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="597.375241013352" gYpos="4547.86032180761" gWidth="0" gHeight="0" LAYER="0"/>
        <PAGEOBJECT XPOS="-31.260869565217" YPOS="1517.84320438206" OwnPage="1" ItemID="131617712" PTYPE="4" WIDTH="142.085956521739" HEIGHT="25.5217391304348" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="28.3464566929134" VAlign="1" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" copath="M0 0 L142.086 0 L142.086 25.5217 L0 25.5217 L0 0 Z" gXpos="-31.2608695652174" gYpos="635.953440602534" gWidth="0" gHeight="0" ALIGN="2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle ALIGN="2"/>
                <ITEXT CH="Col­span = 3"/>
                <trail ALIGN="2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="140.001" YPOS="1462.3649435125" OwnPage="1" ItemID="1600585778" PTYPE="4" WIDTH="515.275590551181" HEIGHT="162" FRTYPE="0" CLIPEDIT="0" PWIDTH="0" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L515.276 0 L515.276 162 L0 162 L0 0 Z" copath="M0 0 L515.276 0 L515.276 162 L0 162 L0 0 Z" gXpos="140.001" gYpos="1462.36494351249" gWidth="0" gHeight="0" PSTYLE="Green" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="Green"/>
                <ITEXT CH="Lo­rem ip­sum do­lor sit amet, con­sec­te­tu­er adi­pis­cing elit. Ut a sa­pi­en. Ali­quam ali­quet pu­rus mo­les­tie do­lor. In­te­ger quis eros ut erat po­sue­re dic­tum. Cu­ra­bi­tur di­g­nis­sim. In­te­ger or­ci. Fusce vul­pu­ta­te la­cus at ip­sum. Quis­que in li­be­ro nec mi lao­reet volut­pat. Ali­quam eros pe­de, sce­le­ris­que quis, tris­ti­que cur­sus, pla­ce­rat con­val­lis, ve­lit. Nam con­di­men­tum. Nul­la ut mauris. Cu­ra­bi­tur adi­pis­cing, mauris non dic­tum ali­quam, ar­cu ri­sus da­pi­bus diam, nec sol­li­ci­tu­din quam erat quis li­gu­la. Ae­nean mas­sa nul­la, volut­pat eu, ac­cumsan et, frin­gil­la eget, odio. Nul­la pla­ce­rat por­ta ju­sto. Nul­la vi­tae tur­pis. Prae­sent la­cus. Sus­pen­dis­se po­ten­ti. Cras ut mi sit amet quam con­se­quat con­se­quat. Ae­nean ut lec­tus. Cum so­ci­is na­to­que pe­na­ti­bus et ma­gnis dis par­tu­ri­ent mon­tes, nasce­tur ri­di­cu­lus mus. Sus­pen­dis­se vel sa­pi­en. Nul­lam non tur­pis. Pel­len­tes­que ele­men­tum pha­re­tra li­gu­la. In rhon­cus. Ali­quam vel enim con­se­quat sem ali­quet hend­re­rit. "/>
                <trail PARENT="Green"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="640.844177336528" YPOS="3968.57186614174" OwnPage="4" ItemID="1822053311" PTYPE="5" WIDTH="485.075874163268" HEIGHT="1" FRTYPE="0" CLIPEDIT="0" ROT="179.123303663785" PWIDTH="0.850393700787402" SHADE="0" PCOLOR2="Red" PLINEART="1" path="" endArrowIndex="1" gXpos="797.888909684733" gYpos="5255.25331085246" gWidth="0" gHeight="0" LAYER="0"/>
    </DOCUMENT>
</SCRIBUSUTF8NEW>
ColSpan.sla (106,459 bytes)   

BN_Dev

2024-09-13 00:41

reporter   ~0051331

@ale Regarding newcomers, I think most of those who don't know the difference between a word processor and layout program would probably already be using their default office tool. Of those that did try Scribus I think they'd fall at the first hurdle when typing and not seeing any text appear because they didn't yet create a text frame.
It would be a shame for Scribus not to have a professional feature just because a newbie might use it wrong :(

@nitramr I watched the videos and confirm that QuarkXPress behaves exactly the same.

@utnik Yes column spans can also be associated to paragraph styles which is just next-stratosphere efficiency. Pasting a story in to a text frame and applying the headline style to the first paragraph is 90% of the job done!
Press t (for text tool), 1 drag (create text frame), press Ctrl+V (paste), 1 click (in first para), 1 click (on style pallet). 3 keys and 3 mouse clicks :-O

@JLuc I evaluated the welding and couldn't find an easy way to get it to weld the frame to just the x position and width, and keep them attached correctly while resizing the story box. Plus I had to create multiple text frames and I think in terms of that point alone, the game was already lost by the time I'd done that and setup all the welding, there was so much UI interaction it would have been easier to have done it manually with 2 frames.

I'll look at the example files and get back to you @nitramr on that shortly. Thanks!

BN_Dev

2024-09-13 12:51

reporter   ~0051332

Wow @nitramr your examples made my head spin! I struggled to understand what was happening on the pages because nobody would ever create anything like that in real life (probably get fired for doing so haha).

I persisted and tried to recreate your PDF in QXP and found nothing but unpredictable behavior and bugs galore. Lots of crashes, lots of confusion, and lots of differences between my document and exported PDFs. A total nightmare for production and would certainly result in angry meetings if somebody was doing this before a deadline.

I've come to the conclusion that column flow is very hard, and if Quark can't get it right (and I suspect Adobe also) then there's little hope. I beg the developers, please, do not try and recreate what Quark and ID let users do. I consider this a bug not a feature. The entire text frame looks haywire and going back to my first point, nobody would ever do this in real life.

The only actual use case needed by the opening poster (and myself) is to span the first paragraph over all columns. Everything else is totally unnecessary for actual production and would be over-engineered if it supported it.

I think to distill what's needed for actual use cases, the simplest implementation logic is:
1. Only spans are allowed (no splits/unspans)
2. A span can be 2-All columns
3. The vertical position of the next paragraph is always below the end of the span, regardless of how many columns it spanned
4. A paragraph style can contain a span property ("All" maps to however many columns are present in the parent text frame)
Colflow.qxp (435,200 bytes)
Colflow_Layout1.pdf (124,070 bytes)

BN_Dev

2024-09-13 12:54

reporter   ~0051333

^ just to mention for the above PDF that I created, each paragraph starts with a number for colspan or OFF/ALL meaning 3. Also interesting to note is I asked QXP to put a line in the gutters so where these do (and don't) show is a bit of a clue as to how QXP is understanding the rendering intent.

nitramr

2024-09-13 13:29

developer   ~0051334

Last edited: 2024-09-13 14:08

Hi BN_Dev,

thanks for the document. Interesting how Quark lays out the text.

>> I struggled to understand what was happening on the pages because nobody would ever create anything like that in real life (probably get fired for doing so haha).
I hope so too. :D

I have an idea for a first version to minimize the potential of uncovered edge cases.

# Option 1
Column spanning is not a paragraph feature, but more of a frame option. The first paragraph can always span x columns.

Pro: Calculation for the second paragraph in the text frame is relative easy.
Con: Could be messy/uncontrolled if text changes in connected previous text frames.

# Option 2
Column spanning is a paragraph feature, but the paragraph always spans all columns.

Pro: You can apply column spanning to more than one paragraph in the text frame. No influence from changing text from previous text frames.
Con: Calculation more complex*

*) if we always need to support full column width, we can calculate the text spacing between 2 column width paragraphs as follows:
1. Calculate the text height as if it had only 1 column
2. Divide the height by the number of columns in the text frame
3. The new height is the bottom boundary of text between 2 column spanning paragraphs

nitramr

2024-09-13 13:54

developer   ~0051336

Below some illustrations of what I meant.

BN_Dev

2024-09-13 14:29

reporter   ~0051337

I'm glad you agree that the implementation in QXP (and I suspect ID) is a hot mess. A cautionary tale.

Column spanning is an essential feature for story headlines (and subheadings) and basically nothing else. What they allowed the user to do is just ridiculous and they can't even get it right themselves based on how unpredictable the results are and how crashy the app is.

I'm in favor of your second option; because being able to tie the span intent in to a style is an productivity power-move. Although I do think the number of columns should be flexible rather than an all-or-nothing approach, the calculations could be simplified by taking this approach:

The para height is calculated; [para height] = [margin above] + ([num of cols] * ([width of col] + [width of gutter])) + [margin below]
Start the top of the next para at [para height]
[col counter] = 0
Begin laying out text in col [col counter]
When it wraps, ++[col counter]
if [col counter] + 1 <= [num of cols] then
  Start column y at [para height]
else
  Start column y at 0
endif

That will allow the columns flow in this PDF to work quite easily; and allow for subheadings too.

p.s., I wonder if another easy approach to code this might be to add a virtual runaround to the areas where the para spans multiple columns as if it was a text frame above it?
Colflow_Layout2.pdf (44,337 bytes)

JLuc

2024-09-19 08:25

developer   ~0051374

Having all the possible layouts at once on one single page
makes it look crazy
but there are probable legit usecases
for each of the possible proposed layout situations

BN_Dev

2024-09-19 10:08

reporter   ~0051375

I think it's a case of "just because you can doesn't mean you should". The right tool for that job is multiple text frames and chains. It's precisely the job it exists for.

Whilst such layouts could be (horrendously) emulated by supporting every permutation of column flow; the point of the column flow tool was efficient headline layout. Everything else it can be wrangled in to supporting is entering the wrong tool territory.

I could hammer in a nail using a wrench, but I should really know better :)

buttar

2026-09-23 05:15

reporter   ~0054484

I think this is a very useful feature. Here is my attempt at it; a series of 5 patches. The series depends on the `cc` patch series from 0000162. Feel free to work it around that if you want to hold that feature for now.

## `cs1-text-flow-region-infrastructure-v1.02.patch`

- Depends on cc1 → cc2 → cc3 (from 0000162)
- Introduces reusable flow-band and region infrastructure based on actual Custom Columns geometry.
- Keeps Custom Columns authoritative for unequal column widths and gaps.
- Does not enable visible paragraph spanning by itself.

## `cs2-column-span-property-persistence-v1.01.patch`

- Depends on cs1.
- Adds inheritable paragraph properties for layout mode and span spacing.
- Adds SLA serialisation/loading, including legacy prototype compatibility.
- Existing documents default to normal single-column paragraph flow.

## `cs3-column-span-all-layout-v1.02.patch`

- Depends on cs1 → cs2.
- Implements `All columns` through genuine pre-span, span and post-span layout bands.
- Interrupts column flow at the spanning paragraph and resumes it below the span using the frame’s real column boundaries.
- Supports unequal widths and gaps, multi-line spans, chained frames and insufficient-space cases.
- Integrates keep-together, keep-with-next and widow/orphan handling, with bounded re-composition fall-back.

## `cs4-column-span-ui-v1.02.patch`

- Depends on cs1 → cs2 → cs3.
- Adds `None` and `All columns` controls to Style Manager and Text Properties.
- Exposes `Space before` and `Space after` with document-unit conversion.
- Supports named-style inheritance and local paragraph overrides.
- Consolidates the controls under `Paragraph flow`, with consistent icons, labels, tab order and compact natural sizing.

## `cs5-column-span-recomposition-performance-v1.09.patch`

- Depends on cs1 → cs2 → cs3 → cs4.
- Caches settled span-layout decisions so normal edits do not repeatedly rediscover the same boundaries.
- Validates or prunes cached steps when story or frame geometry changes.
- Tightens span-bottom tracking, including real line descent and zero or positive `Space after` values.
- Keeps bounded retries and ordinary-flow fall-back for irregular or pathological layouts.
cs1-text-flow-region-infrastructure-v1.02.patch (13,209 bytes)   
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(revision 27861)
+++ scribus/pageitem_textframe.cpp	(working copy)
@@ -377,7 +377,7 @@
 	int      hyphenCount { 0 };
 	double   colLeft { 0.0 };
 	double   colRight { 0.0 };
-	int      column { 0 };
+	int      regionIndex { 0 };
 	bool     startOfCol { true };
 	bool     hasDropCap;
 	double   dropCapWidth { 0.0 };
@@ -406,48 +406,47 @@
 	double   maxStretch { 0.0 };
 	ScribusDoc* doc { nullptr };
 	ITextContext* context { nullptr };
-	QVector<TextColumnGeometry> columns;
+	QVector<TextFlowRegion> regions;
 
-	/// remember frame dimensions and offsets
-	LineControl(double w, double h, const MarginStruct& extra, double lCorr, ScribusDoc* d, ITextContext* ctx, const QVector<TextColumnGeometry>& columnGeometry)
+	/// Configure traversal through the frame's planned flow regions.
+	LineControl(const TextFlowPlan& flowPlan, double lCorr, ScribusDoc* d, ITextContext* ctx)
 		: hasDropCap(false)
-		, doc(d), context(ctx), columns(columnGeometry)
+		, doc(d), context(ctx), regions(flowPlan.regions())
 	{
-		insets = extra;
 		lineCorr = lCorr;
-		frameWidth = w;
-		frameHeight = h;
-		if (!columns.isEmpty())
+		Q_ASSERT(!regions.isEmpty());
+		if (!regions.isEmpty())
 		{
-			colLeft = columns.first().left;
-			colRight = colLeft + columns.first().width;
+			colLeft = regions.first().bounds.left();
+			colRight = regions.first().bounds.right();
 		}
 	}
 
-	/// move position to next column
-	void nextColumn(TextLayout &textLayout)
+	/// Move to the active region in story-flow order.
+	void nextRegion(TextLayout &textLayout)
 	{
 		startOfCol = true;
-		const bool rtl = textLayout.story()->defaultStyle().direction() == ParagraphStyle::RTL;
-		const int columnCount = static_cast<int>(columns.size());
-		const int physicalColumn = rtl ? columnCount - column - 1 : column;
-		if (physicalColumn < 0 || physicalColumn >= columnCount)
+		if (!hasCurrentRegion())
 			return;
-		const TextColumnGeometry& geometry = columns.at(physicalColumn);
-		colLeft = geometry.left;
-		textLayout.addColumn(colLeft, geometry.width);
-		//now colRight is REAL column right edge
-		colRight = colLeft + geometry.width;
+		const TextFlowRegion& region = regions.at(regionIndex);
+		colLeft = region.bounds.left();
+		colRight = region.bounds.right();
+		textLayout.addRegion(region);
+		// colRight is now the real region right edge.
 		if (legacy)
 			colRight += lineCorr;
 		xPos = colLeft;
-		yPos = insets.top() + lineCorr;
+		yPos = region.flowTop;
 		lineData.colLeft = colLeft;
 	}
 
+	bool hasCurrentRegion() const { return regionIndex < regions.size(); }
+	bool hasNextRegion() const { return regionIndex + 1 < regions.size(); }
+	bool isLastRegion() const { return !hasNextRegion(); }
+
 	bool isEndOfCol(double morespace = 0)
 	{
-		return yPos + morespace + insets.bottom() + lineCorr > frameHeight;
+		return yPos + morespace > regions.at(regionIndex).flowBottom;
 	}
 
 	/**
@@ -1039,9 +1038,6 @@
 	}
 
 private:
-	double frameWidth;
-	double frameHeight;
-	MarginStruct insets;
 	double lineCorr;
 };
 
@@ -1346,8 +1342,8 @@
 		QList<GlyphCluster> glyphClusters; // = textShaper.shape();
 		// std::sort(glyphClusters.begin(), glyphClusters.end(), logicalGlyphRunComp);
 
-		LineControl current(m_width, m_height, m_textDistanceMargins, lineCorr, m_Doc, context, columnGeometry());
-		current.nextColumn(textLayout);
+		LineControl current(initialFlowPlan(), lineCorr, m_Doc, context);
+		current.nextRegion(textLayout);
 
 		lastLineY = m_textDistanceMargins.top();
 
@@ -1995,8 +1991,8 @@
 					}
 					if (current.isEndOfCol(realDesc))
 					{
-						current.column++;
-						if (current.column < m_columns)
+						current.regionIndex++;
+						if (current.hasCurrentRegion())
 						{
 							newColumn = true;
 							break;
@@ -2007,7 +2003,7 @@
 				}
 				if (newColumn)
 				{
-					current.nextColumn(textLayout);
+					current.nextRegion(textLayout);
 					current.mustLineEnd = current.colRight;
 					current.restartX = current.xPos;
 					lastLineY = current.yPos;
@@ -2740,7 +2736,7 @@
 					current.updateHeightMetrics();
 					if (current.isEndOfCol(current.lineData.descent))
 					{
-						if (current.isEmpty || current.column + 1 == m_columns)
+						if (current.isEmpty || current.isLastRegion())
 						{
 							goNoRoom = true;
 							m_maxChars = a + 1;
@@ -2858,12 +2854,12 @@
 				if (goNextColumn)
 				{
 					goNextColumn = false;
-					current.column++;
-					if (current.column < m_columns)
+					current.regionIndex++;
+					if (current.hasCurrentRegion())
 					{
 						if (firstLineOffset() == FLOPRealGlyphHeight)
 							asce = 0;
-						current.nextColumn(textLayout);
+						current.nextRegion(textLayout);
 						current.mustLineEnd = current.colRight;
 						current.addLeftIndent = true;
 						lastLineY = m_textDistanceMargins.top();
@@ -5174,6 +5170,49 @@
 	return geometry.at(qBound(0, physicalColumn, static_cast<int>(geometry.size()) - 1)).width;
 }
 
+TextFlowBand PageItem_TextFrame::columnBand(double bandTop, double bandBottom, double flowTop, double flowBottom) const
+{
+	double lineCorr = 0.0;
+	if (lineColor() != CommonStrings::None)
+		lineCorr = m_lineWidth / 2.0;
+	if (bandBottom < 0.0)
+		bandBottom = m_height;
+	bandTop = qBound(0.0, bandTop, m_height);
+	bandBottom = qBound(bandTop, bandBottom, m_height);
+	if (flowTop < 0.0)
+		flowTop = bandTop + m_textDistanceMargins.top() + lineCorr;
+	if (flowBottom < 0.0)
+		flowBottom = bandBottom - m_textDistanceMargins.bottom() - lineCorr;
+
+	TextFlowBand band;
+	band.kind = TextFlowBandKind::Columns;
+	band.top = bandTop;
+	band.bottom = bandBottom;
+	const QVector<TextColumnGeometry> geometry = columnGeometry();
+	const bool isRTL = itemText.defaultStyle().direction() == ParagraphStyle::RTL;
+	const int columnCount = static_cast<int>(geometry.size());
+	band.regions.reserve(columnCount);
+	for (int logicalColumn = 0; logicalColumn < columnCount; ++logicalColumn)
+	{
+		const int physicalColumn = isRTL ? columnCount - logicalColumn - 1 : logicalColumn;
+		const TextColumnGeometry& column = geometry.at(physicalColumn);
+		TextFlowRegion region;
+		region.bounds = QRectF(column.left, bandTop, column.width, bandBottom - bandTop);
+		region.flowTop = flowTop;
+		region.flowBottom = flowBottom;
+		region.logicalColumn = logicalColumn;
+		band.regions.append(region);
+	}
+	return band;
+}
+
+TextFlowPlan PageItem_TextFrame::initialFlowPlan() const
+{
+	TextFlowPlan plan;
+	plan.bands.append(columnBand());
+	return plan;
+}
+
 /*
 void PageItem_TextFrame::drawOverflowMarker(ScPainter *p)
 {
Index: scribus/pageitem_textframe.h
===================================================================
--- scribus/pageitem_textframe.h	(revision 27861)
+++ scribus/pageitem_textframe.h	(working copy)
@@ -126,6 +126,8 @@
 
 
 protected:
+	TextFlowBand columnBand(double bandTop = 0.0, double bandBottom = -1.0, double flowTop = -1.0, double flowBottom = -1.0) const;
+	TextFlowPlan initialFlowPlan() const;
 	QRegion calcAvailableRegion();
 	QRegion m_availableRegion;
 	void DrawObj_Item(ScPainter *p, const QRectF& e) override;
Index: scribus/text/boxes.cpp
===================================================================
--- scribus/text/boxes.cpp	(revision 27861)
+++ scribus/text/boxes.cpp	(working copy)
@@ -100,8 +100,10 @@
 	{
 		if (m_direction == D_Horizontal)
 			nH = qMax(m_naturalHeight, box->naturalHeight());
-		else
+		else if (m_direction == D_Vertical)
 			nH = ceil(box->y() + box->ascent() - box->naturalDescent());
+		else
+			nH = qMax(nH, box->y() + box->naturalHeight());
 	}
 	return nH;
 }
@@ -133,11 +135,16 @@
 			m_naturalWidth += box->width();
 			m_naturalHeight = qMax(m_naturalHeight, box->naturalHeight());
 		}
-		else
+		else if (m_direction == D_Vertical)
 		{
 			m_naturalWidth = qMax(m_naturalWidth, box->naturalWidth());
 			m_naturalHeight = ceil(box->y() + box->ascent() - box->naturalDescent());
 		}
+		else
+		{
+			m_naturalWidth = qMax(m_naturalWidth, box->x() + box->naturalWidth());
+			m_naturalHeight = qMax(m_naturalHeight, box->y() + box->naturalHeight());
+		}
 	}
 }
 
Index: scribus/text/boxes.h
===================================================================
--- scribus/text/boxes.h	(revision 27861)
+++ scribus/text/boxes.h	(working copy)
@@ -38,7 +38,8 @@
 	enum BoxDirection
 	{
 		D_Horizontal,
-		D_Vertical
+		D_Vertical,
+		D_Absolute
 	};
 
 	Box() = default;
Index: scribus/text/textlayout.cpp
===================================================================
--- scribus/text/textlayout.cpp	(revision 27861)
+++ scribus/text/textlayout.cpp	(working copy)
@@ -29,11 +29,28 @@
 #include "boxes.h"
 #include "itextcontext.h"
 
+QVector<TextFlowRegion> TextFlowPlan::regions() const
+{
+	QVector<TextFlowRegion> result;
+	const int bandCount = static_cast<int>(bands.size());
+	for (int bandIndex = 0; bandIndex < bandCount; ++bandIndex)
+	{
+		const TextFlowBand& band = bands.at(bandIndex);
+		for (TextFlowRegion region : band.regions)
+		{
+			region.bandKind = band.kind;
+			region.bandIndex = bandIndex;
+			result.append(region);
+		}
+	}
+	return result;
+}
+
 TextLayout::TextLayout(StoryText* text, ITextContext* frame)
           : m_story(text),
             m_frame(frame)
 {
-	m_box = new GroupBox(Box::D_Horizontal);
+	m_box = new GroupBox(Box::D_Absolute);
 }
 
 TextLayout::~TextLayout()
@@ -82,13 +99,13 @@
 	assert(ls->lastChar() < story()->length());
 	assert(!m_box->boxes().empty());
 
-	GroupBox* column = dynamic_cast<GroupBox*>(m_box->boxes().constLast());
-	assert(column);
+	GroupBox* region = dynamic_cast<GroupBox*>(m_box->boxes().constLast());
+	assert(region);
 	if (ls->type() == Box::T_PathLine)
-		ls->setAscent(ls->y() - column->naturalHeight());
+		ls->setAscent(ls->y() - region->naturalHeight());
 
-	ls->setWidth(column->width());
-	column->addBox(ls);
+	ls->setWidth(region->width());
+	region->addBox(ls);
 }
 
 // Remove the last line from the list. Used when we need to backtrack on the layouting.
@@ -132,10 +149,10 @@
 	p->save();
 	p->translate(m_box->x(), m_box->y());
 
-	for (const Box* column : m_box->boxes())
+	for (const Box* region : m_box->boxes())
 	{
-		const QList<const Box*>& lineBoxes = column->boxes();
-		QRectF colBBox = column->bbox();
+		const QList<const Box*>& lineBoxes = region->boxes();
+		QRectF regionBBox = region->bbox();
 
 		for (int j = 0; j < lineBoxes.count(); ++j)
 		{
@@ -161,7 +178,7 @@
 
 			if (backColor != CommonStrings::None)
 			{
-				QRectF rect(colBBox.x(), box->y(), colBBox.width(), box->height());
+				QRectF rect(regionBBox.x(), regionBBox.y() + box->y(), regionBBox.width(), box->height());
 				lastRect |= rect;
 			}
 
@@ -194,12 +211,12 @@
 	p->restore();
 }
 
-void TextLayout::addColumn(double colLeft, double colWidth)
+void TextLayout::addRegion(const TextFlowRegion& region)
 {
 	GroupBox *newBox = new GroupBox(Box::D_Vertical);
-	newBox->moveTo(colLeft, 0.0);
-	newBox->setWidth(colWidth);
-	newBox->setAscent(m_frame->height());
+	newBox->moveTo(region.bounds.left(), region.bounds.top());
+	newBox->setWidth(region.bounds.width());
+	newBox->setAscent(region.bounds.height());
 	m_box->addBox(newBox);
 
 	// Update the box width and height, any better place to do this?
@@ -207,10 +224,18 @@
 	m_box->setWidth(m_frame->width());
 }
 
+void TextLayout::addColumn(double colLeft, double colWidth)
+{
+	TextFlowRegion region;
+	region.bounds = QRectF(colLeft, 0.0, colWidth, m_frame->height());
+	region.flowBottom = m_frame->height();
+	addRegion(region);
+}
+
 void TextLayout::clear() 
 {
 	delete m_box;
-	m_box = new GroupBox(Box::D_Horizontal);
+	m_box = new GroupBox(Box::D_Absolute);
 }
 
 void TextLayout::setStory(StoryText *story)
Index: scribus/text/textlayout.h
===================================================================
--- scribus/text/textlayout.h	(revision 27861)
+++ scribus/text/textlayout.h	(working copy)
@@ -17,6 +17,8 @@
 #define TEXTLAYOUT_H
 
 #include <QList>
+#include <QRectF>
+#include <QVector>
 
 #include "scribusapi.h"
 
@@ -32,6 +34,40 @@
 class TextLayoutPainter;
 class ScreenPainter;
 class ITextContext;
+
+enum class TextFlowBandKind
+{
+	Columns,
+	Span
+};
+
+struct TextFlowRegion
+{
+	QRectF bounds;
+	double flowTop { 0.0 };
+	double flowBottom { 0.0 };
+	TextFlowBandKind bandKind { TextFlowBandKind::Columns };
+	int bandIndex { 0 };
+	int logicalColumn { 0 };
+};
+
+struct TextFlowBand
+{
+	TextFlowBandKind kind { TextFlowBandKind::Columns };
+	int storyStart { -1 };
+	double top { 0.0 };
+	double bottom { 0.0 };
+	QVector<TextFlowRegion> regions;
+};
+
+struct TextFlowPlan
+{
+	QVector<TextFlowBand> bands;
+
+	QVector<TextFlowRegion> regions() const;
+	bool isEmpty() const { return bands.isEmpty(); }
+};
+
 /**
 	This class manages the physical layout of a textframe, ie. its line 
 	structure and the lines' glyph layouts. It will use some of the layouters above to create a Box.
@@ -68,6 +104,7 @@
 
 	void appendLine(LineBox* ls);
 	void removeLastLine ();
+	void addRegion(const TextFlowRegion& region);
 	void addColumn(double colLeft, double colWidth);
 
 	void clear();
cs2-column-span-property-persistence-v1.01.patch (4,896 bytes)   
Index: scribus/plugins/fileloader/scribus171format/scribus171format.cpp
===================================================================
--- scribus/plugins/fileloader/scribus171format/scribus171format.cpp	(revision 27861)
+++ scribus/plugins/fileloader/scribus171format/scribus171format.cpp	(working copy)
@@ -3793,6 +3793,32 @@
 	static const QString KeepTogether("KeepTogether");
 	if (attrs.hasAttribute(KeepTogether))
 		newStyle.setKeepTogether(attrs.valueAsInt(KeepTogether));
+
+	static const QString ParagraphLayout("ParagraphLayout");
+	static const QString ExperimentalColumnSpan("ColumnSpan");
+	if (attrs.hasAttribute(ParagraphLayout))
+	{
+		const int value = attrs.valueAsInt(ParagraphLayout);
+		if (value >= ParagraphStyle::ParagraphLayoutSingleColumn && value <= ParagraphStyle::ParagraphLayoutSpanColumns)
+			newStyle.setParagraphLayout(static_cast<ParagraphStyle::ParagraphLayoutMode>(value));
+	}
+	else if (attrs.hasAttribute(ExperimentalColumnSpan))
+	{
+		// Compatibility with documents written by the pre-foundation span prototype.
+		const int value = attrs.valueAsInt(ExperimentalColumnSpan);
+		if (value == 0)
+			newStyle.setParagraphLayout(ParagraphStyle::ParagraphLayoutSingleColumn);
+		else if (value == 1)
+			newStyle.setParagraphLayout(ParagraphStyle::ParagraphLayoutSpanColumns);
+	}
+
+	static const QString SpanSpaceBefore("SpanSpaceBefore");
+	if (attrs.hasAttribute(SpanSpaceBefore))
+		newStyle.setSpanSpaceBefore(qMax(0.0, attrs.valueAsDouble(SpanSpaceBefore)));
+
+	static const QString SpanSpaceAfter("SpanSpaceAfter");
+	if (attrs.hasAttribute(SpanSpaceAfter))
+		newStyle.setSpanSpaceAfter(qMax(0.0, attrs.valueAsDouble(SpanSpaceAfter)));
 	//Remove uppercase in 1.8 format
 	if (attrs.hasAttribute("BCOLOR"))
 		newStyle.setBackgroundColor(attrs.valueAsString("BCOLOR", CommonStrings::None));
Index: scribus/plugins/fileloader/scribus171format/scribus171format_save.cpp
===================================================================
--- scribus/plugins/fileloader/scribus171format/scribus171format_save.cpp	(revision 27861)
+++ scribus/plugins/fileloader/scribus171format/scribus171format_save.cpp	(working copy)
@@ -923,6 +923,12 @@
 		docu.writeAttribute("KeepWithNext", style.keepWithNext());
 	if (!style.isInhKeepTogether())
 		docu.writeAttribute("KeepTogether", style.keepTogether());
+	if (!style.isInhParagraphLayout())
+		docu.writeAttribute("ParagraphLayout", style.paragraphLayout());
+	if (!style.isInhSpanSpaceBefore())
+		docu.writeAttribute("SpanSpaceBefore", style.spanSpaceBefore());
+	if (!style.isInhSpanSpaceAfter())
+		docu.writeAttribute("SpanSpaceAfter", style.spanSpaceAfter());
 	if (!style.isInhBackgroundColor())
 		docu.writeAttribute("ParagraphBackgroundColor", style.backgroundColor());
 	if (!style.isInhBackgroundShade())
Index: scribus/styles/paragraphstyle.attrdefs.cxx
===================================================================
--- scribus/styles/paragraphstyle.attrdefs.cxx	(revision 27861)
+++ scribus/styles/paragraphstyle.attrdefs.cxx	(working copy)
@@ -37,6 +37,9 @@
 ATTRDEF(int, keepLinesEnd, KeepLinesEnd, 0)
 ATTRDEF(bool, keepWithNext, KeepWithNext, false)
 ATTRDEF(bool, keepTogether, KeepTogether, false)
+ATTRDEF(ParagraphStyle::ParagraphLayoutMode, paragraphLayout, ParagraphLayout, ParagraphStyle::ParagraphLayoutSingleColumn)
+ATTRDEF(double, spanSpaceBefore, SpanSpaceBefore, 0.0)
+ATTRDEF(double, spanSpaceAfter, SpanSpaceAfter, 0.0)
 ATTRDEF(bool, hasDropCap, HasDropCap, false)
 ATTRDEF(int, dropCapLines, DropCapLines, 2)
 ATTRDEF(double, parEffectOffset, ParEffectOffset, 0.0)
Index: scribus/styles/paragraphstyle.cpp
===================================================================
--- scribus/styles/paragraphstyle.cpp	(revision 27861)
+++ scribus/styles/paragraphstyle.cpp	(working copy)
@@ -266,6 +266,11 @@
 	return QString::number(static_cast<int>(val));
 }
 
+static QString toXMLString(ParagraphStyle::ParagraphLayoutMode val)
+{
+	return QString::number(static_cast<int>(val));
+}
+
 static QString toXMLString(const QList<ParagraphStyle::TabRecord> & )
 {
 	return "dummy";
@@ -351,6 +356,12 @@
 }
 
 template<>
+ParagraphStyle::ParagraphLayoutMode parse<ParagraphStyle::ParagraphLayoutMode>(const Xml_string& str)
+{
+	return parseEnum<ParagraphStyle::ParagraphLayoutMode>(str);
+}
+
+template<>
 ParagraphStyle::LineSpacingMode parse<ParagraphStyle::LineSpacingMode>(const Xml_string& str)
 {
 	return parseEnum<ParagraphStyle::LineSpacingMode>(str);
Index: scribus/styles/paragraphstyle.h
===================================================================
--- scribus/styles/paragraphstyle.h	(revision 27861)
+++ scribus/styles/paragraphstyle.h	(working copy)
@@ -50,6 +50,12 @@
 		RTL  = 1
 	};
 
+	enum ParagraphLayoutMode
+	{
+		ParagraphLayoutSingleColumn = 0,
+		ParagraphLayoutSpanColumns  = 1
+	};
+
 	enum OpticalMarginType
 	{
 		OM_None  = 0,
cs3-column-span-all-layout-v1.02.patch (19,918 bytes)   
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(revision 27861)
+++ scribus/pageitem_textframe.cpp	(working copy)
@@ -377,6 +377,7 @@
 	int      hyphenCount { 0 };
 	double   colLeft { 0.0 };
 	double   colRight { 0.0 };
+	double   regionTop { 0.0 };
 	int      regionIndex { 0 };
 	bool     startOfCol { true };
 	bool     hasDropCap;
@@ -431,6 +432,7 @@
 		const TextFlowRegion& region = regions.at(regionIndex);
 		colLeft = region.bounds.left();
 		colRight = region.bounds.right();
+		regionTop = region.bounds.top();
 		textLayout.addRegion(region);
 		// colRight is now the real region right edge.
 		if (legacy)
@@ -443,6 +445,63 @@
 	bool hasCurrentRegion() const { return regionIndex < regions.size(); }
 	bool hasNextRegion() const { return regionIndex + 1 < regions.size(); }
 	bool isLastRegion() const { return !hasNextRegion(); }
+	bool isSpanRegion() const
+	{
+		return hasCurrentRegion() && regions.at(regionIndex).bandKind == TextFlowBandKind::Span;
+	}
+	int currentBandIndex() const
+	{
+		return hasCurrentRegion() ? regions.at(regionIndex).bandIndex : -1;
+	}
+	int currentBandStoryStart() const
+	{
+		return hasCurrentRegion() ? regions.at(regionIndex).storyStart : -1;
+	}
+	double currentRegionTop() const { return regions.at(regionIndex).bounds.top(); }
+	double currentFlowTop() const { return regions.at(regionIndex).flowTop; }
+	double currentFlowBottom() const { return regions.at(regionIndex).flowBottom; }
+	int currentLogicalColumn() const { return regions.at(regionIndex).logicalColumn; }
+	bool nextRegionIsReserved(int storyPosition) const
+	{
+		if (!hasNextRegion())
+			return false;
+		const TextFlowRegion& next = regions.at(regionIndex + 1);
+		return next.storyStart >= 0 && storyPosition < next.storyStart;
+	}
+	bool nextRegionLeavesSpan() const
+	{
+		return isSpanRegion() && hasNextRegion()
+			&& regions.at(regionIndex + 1).bandIndex != currentBandIndex();
+	}
+	bool moveToBand(TextFlowBandKind kind, int storyStart, TextLayout& textLayout)
+	{
+		for (int i = regionIndex + 1; i < regions.size(); ++i)
+		{
+			const TextFlowRegion& region = regions.at(i);
+			if (region.bandKind == kind && region.storyStart == storyStart)
+			{
+				regionIndex = i;
+				nextRegion(textLayout);
+				return true;
+			}
+		}
+		return false;
+	}
+	bool moveToNextBand(TextFlowBandKind kind, TextLayout& textLayout)
+	{
+		const int bandIndex = currentBandIndex();
+		for (int i = regionIndex + 1; i < regions.size(); ++i)
+		{
+			const TextFlowRegion& region = regions.at(i);
+			if (region.bandIndex != bandIndex && region.bandKind == kind)
+			{
+				regionIndex = i;
+				nextRegion(textLayout);
+				return true;
+			}
+		}
+		return false;
+	}
 
 	bool isEndOfCol(double morespace = 0)
 	{
@@ -1001,7 +1060,7 @@
 	LineBox* createLineBox()
 	{
 		LineBox* result = new LineBox();
-		result->moveTo(lineData.x - colLeft, lineData.y - lineData.ascent);
+		result->moveTo(lineData.x - colLeft, lineData.y - lineData.ascent - regionTop);
 		result->setWidth(lineData.width);
 		result->setAscent(lineData.ascent);
 		result->setDescent(lineData.descent);
@@ -1146,6 +1205,11 @@
 	int paragraphStart = itemText.prevParagraph (end) + 1;
 	QChar lastChar = itemText.text (end);
 	bool keepWithNext = style.keepWithNext() && (lastChar == SpecialChars::PARSEP);
+	const bool spanningParagraph = style.paragraphLayout() == ParagraphStyle::ParagraphLayoutSpanColumns;
+	// A spanning paragraph which overflows from the top of an otherwise empty
+	// frame cannot be kept together there. Let it split so a chain cannot stall
+	// with the same paragraph repeatedly moved from one empty frame to the next.
+	const bool splitOversizeSpan = spanningParagraph && paragraphStart <= firstInFrame();
 	if (keepWithNext || (!SpecialChars::isBreak (lastChar, true)))
 	{
 		// paragraph continues in the next frame, or needs to be kept with the next one
@@ -1159,16 +1223,21 @@
 			incompleteLines++;
 			incompletePositions.prepend (lineStart);
 		}
-		int need = style.keepLinesStart () + 1;
-		if (style.keepTogether())
+		int need = splitOversizeSpan ? 1 : style.keepLinesStart () + 1;
+		if (style.keepTogether() && !splitOversizeSpan)
 			need = incompleteLines;
 		int pull = 0;
-		if (style.keepTogether() || (incompleteLines < need))
+		if ((style.keepTogether() && !splitOversizeSpan) || (incompleteLines < need))
 			pull = incompleteLines;
 		// if we need to keep it with the next one, pull one line. Next frame layouting
 		// will pull more from us if it proves necessary.
 		if (keepWithNext && (!pull))
-			pull = 1;
+		{
+			// A span must move as one band when space below it is the problem.
+			// At an empty frame top, retain the legacy one-line pull as the
+			// progress escape for a span which cannot fit with its successor.
+			pull = spanningParagraph && !splitOversizeSpan ? incompleteLines : 1;
+		}
 
 		if (pull)
 		{
@@ -1226,6 +1295,9 @@
 	bool outs = false;
 	bool goNoRoom = false;
 	bool goNextColumn = false;
+	bool ownsColumnSpanLayout = false;
+	int activeSpanStart = -1;
+	uint linesAtSpanStart = 0;
 
 	TabControl tabs;
 	tabs.active    = false;     // RTab
@@ -1327,6 +1399,15 @@
 			}
 			m_availableRegion = matrix.map(m_availableRegion);
 		}
+
+		if (!m_columnSpanLayoutActive)
+		{
+			m_columnSpanLayoutActive = true;
+			m_columnSpanLayoutFallback = false;
+			m_columnSpanLayoutRetries = 0;
+			m_columnSpanLayoutSteps.clear();
+			ownsColumnSpanLayout = true;
+		}
 		
 		// update Bullet & number list if any.
 		if (itemText.hasTextMarks() || itemText.hasBulletOrNum() ||  itemText.marksCountChanged())
@@ -1342,7 +1423,7 @@
 		QList<GlyphCluster> glyphClusters; // = textShaper.shape();
 		// std::sort(glyphClusters.begin(), glyphClusters.end(), logicalGlyphRunComp);
 
-		LineControl current(initialFlowPlan(), lineCorr, m_Doc, context);
+		LineControl current(columnSpanFlowPlan(), lineCorr, m_Doc, context);
 		current.nextRegion(textLayout);
 
 		lastLineY = m_textDistanceMargins.top();
@@ -1398,6 +1479,20 @@
 		//why emit invalidating signals each time text is changed by applying styles?
 		//this speed up layouting in case of using notes marks and drop caps
 		itemText.blockSignals(true);
+		auto restartColumnSpanLayout = [&]()
+		{
+			++m_columnSpanLayoutRetries;
+			if (m_columnSpanLayoutRetries > 128)
+			{
+				// Pathological exclusion geometry or rounding must not recurse
+				// forever. Preserve story progress with ordinary column flow.
+				m_columnSpanLayoutFallback = true;
+				m_columnSpanLayoutSteps.clear();
+			}
+			itemText.blockSignals(false);
+			invalid = true;
+			layout();
+		};
 		setMaxY(-1);
 		double maxYAsc = 0.0, maxYDesc = 0.0;
 		int regionMinY = 0, regionMaxY= 0;
@@ -1452,6 +1547,100 @@
 				}
 			}
 
+			const bool atParagraphStart = itemText.isBlockStart(a);
+			const bool spanContinuation = a == firstInFrame() && !atParagraphStart
+				&& style.paragraphLayout() == ParagraphStyle::ParagraphLayoutSpanColumns;
+			const bool wantsColumnSpan = !m_columnSpanLayoutFallback
+				&& (atParagraphStart || spanContinuation)
+				&& columnGeometry().size() > 1
+				&& style.paragraphLayout() == ParagraphStyle::ParagraphLayoutSpanColumns;
+			if (current.isEmpty && atParagraphStart && wantsColumnSpan && current.isSpanRegion())
+			{
+				const ParagraphStyle previousSpanStyle = itemText.paragraphStyle(a - 1);
+				current.yPos += previousSpanStyle.spanSpaceAfter() + style.spanSpaceBefore();
+			}
+			if (current.isEmpty && wantsColumnSpan && !current.isSpanRegion())
+			{
+				int stepIndex = columnSpanLayoutStep(a);
+				if (stepIndex < 0)
+				{
+					ColumnSpanLayoutStep step;
+					step.storyStart = a;
+					step.continuation = spanContinuation;
+					step.segmentTop = current.currentRegionTop();
+					step.segmentFlowTop = current.currentFlowTop();
+					step.low = step.segmentTop;
+					step.high = current.currentFlowBottom();
+					if (a == firstInFrame())
+					{
+						step.high = step.low;
+						step.spanTop = step.low;
+					}
+					else
+					{
+						const double usableHeight = qMax(0.01, step.high - step.segmentFlowTop);
+						const double usedHeight = current.currentLogicalColumn() * usableHeight
+							+ qMax(0.0, current.yPos - step.segmentFlowTop);
+						step.spanTop = qBound(step.low, step.segmentTop + usedHeight / columnGeometry().size(), step.high);
+					}
+					m_columnSpanLayoutSteps.append(step);
+					restartColumnSpanLayout();
+					if (ownsColumnSpanLayout)
+						clearColumnSpanLayout();
+					return;
+				}
+
+				if (reviseColumnSpanTop(stepIndex, true))
+				{
+					restartColumnSpanLayout();
+					if (ownsColumnSpanLayout)
+						clearColumnSpanLayout();
+					return;
+				}
+
+				if (!current.moveToBand(TextFlowBandKind::Span, a, textLayout))
+				{
+					m_maxChars = a;
+					goto NoRoom;
+				}
+				current.mustLineEnd = current.colRight;
+				current.restartX = current.xPos;
+				current.addLeftIndent = true;
+				current.rowDesc = 0.0;
+				current.recalculateY = true;
+				lastLineY = current.yPos;
+				activeSpanStart = a;
+				linesAtSpanStart = textLayout.lines();
+			}
+			else if (current.isEmpty && atParagraphStart && !wantsColumnSpan && current.isSpanRegion())
+			{
+				const int stepIndex = columnSpanLayoutStep(current.currentBandStoryStart());
+				if (stepIndex >= 0 && m_columnSpanLayoutSteps.at(stepIndex).spanBottom < 0.0)
+				{
+					const ParagraphStyle spanStyle = itemText.paragraphStyle(a - 1);
+					double spanBottom = qMax(qMax(current.yPos, textLayout.box()->naturalHeight()), maxYDesc)
+						+ spanStyle.spanSpaceAfter() + style.gapBefore();
+					m_columnSpanLayoutSteps[stepIndex].spanBottom = qMin(spanBottom, current.currentFlowBottom());
+					restartColumnSpanLayout();
+					if (ownsColumnSpanLayout)
+						clearColumnSpanLayout();
+					return;
+				}
+
+				if (!current.moveToNextBand(TextFlowBandKind::Columns, textLayout))
+				{
+					m_maxChars = a;
+					goto NoRoom;
+				}
+				current.mustLineEnd = current.colRight;
+				current.restartX = current.xPos;
+				current.addLeftIndent = true;
+				current.rowDesc = 0.0;
+				current.recalculateY = true;
+				lastLineY = current.yPos;
+				activeSpanStart = -1;
+			}
+
 			if (current.isEmpty)
 				opticalMargins = style.opticalMargins();
 			//-->#13490
@@ -1991,6 +2180,21 @@
 					}
 					if (current.isEndOfCol(realDesc))
 					{
+						if (current.nextRegionLeavesSpan())
+						{
+							m_maxChars = a;
+							goto NoRoom;
+						}
+						if (current.nextRegionIsReserved(a))
+						{
+							const int stepIndex = columnSpanLayoutStep(current.regions.at(current.regionIndex + 1).storyStart);
+							if (stepIndex >= 0)
+								reviseColumnSpanTop(stepIndex, false);
+							restartColumnSpanLayout();
+							if (ownsColumnSpanLayout)
+								clearColumnSpanLayout();
+							return;
+						}
 						current.regionIndex++;
 						if (current.hasCurrentRegion())
 						{
@@ -2426,7 +2630,7 @@
 
 			if ((itemText.text(a) == SpecialChars::FRAMEBREAK) && (a < itemText.length() - 1))
 				goNoRoom = true;
-			if ((itemText.text(a) == SpecialChars::COLBREAK) && (m_columns > 1))
+			if ((itemText.text(a) == SpecialChars::COLBREAK) && (m_columns > 1) && !current.isSpanRegion())
 				goNextColumn = true;
 
 			current.isEmpty = (i - current.lineData.firstCluster + 1) == 0;
@@ -2854,6 +3058,21 @@
 				if (goNextColumn)
 				{
 					goNextColumn = false;
+					if (current.nextRegionLeavesSpan())
+					{
+						m_maxChars = a;
+						goto NoRoom;
+					}
+					if (current.nextRegionIsReserved(a))
+					{
+						const int stepIndex = columnSpanLayoutStep(current.regions.at(current.regionIndex + 1).storyStart);
+						if (stepIndex >= 0)
+							reviseColumnSpanTop(stepIndex, false);
+						restartColumnSpanLayout();
+						if (ownsColumnSpanLayout)
+							clearColumnSpanLayout();
+						return;
+					}
 					current.regionIndex++;
 					if (current.hasCurrentRegion())
 					{
@@ -3032,6 +3251,7 @@
 			current.startOfCol = false;
 
 			if (moveLinesFromPreviousFrame ()) {
+				clearColumnSpanLayout();
 				layout ();  // line moving ensures that this won't be an endless loop
 				itemText.blockSignals(false);
 				return;
@@ -3054,6 +3274,7 @@
 				double topDist = m_textDistanceMargins.top();
 				m_textDistanceMargins.setTop(topDist + hAdjust);
 				verticalAlign = 0;
+				clearColumnSpanLayout();
 				layout();
 				verticalAlign = vertAlign;
 				m_textDistanceMargins.setTop(topDist);
@@ -3083,11 +3304,15 @@
 		}
 	}
 	itemText.blockSignals(false);
+	if (ownsColumnSpanLayout)
+		clearColumnSpanLayout();
 //	qDebug("textframe: len=%d, done relayout", itemText.length());
 	return;
 
 NoRoom:
 	invalid = false;
+	if (activeSpanStart >= 0 && textLayout.lines() == linesAtSpanStart)
+		m_maxChars = activeSpanStart;
 	
 	adjustParagraphEndings ();
 
@@ -3106,6 +3331,7 @@
 				double topDist = m_textDistanceMargins.top();
 				m_textDistanceMargins.setTop(topDist + hAdjust);
 				verticalAlign = 0;
+				clearColumnSpanLayout();
 				layout();
 				verticalAlign = vertAlign;
 				m_textDistanceMargins.setTop(topDist);
@@ -3143,6 +3369,8 @@
 	}
 //	qDebug("textframe: len=%d, done relayout (no room %d)", itemText.length(), MaxChars);
 	itemText.blockSignals(false);
+	if (ownsColumnSpanLayout)
+		clearColumnSpanLayout();
 }
 
 void PageItem_TextFrame::invalidateLayout(bool wholeChain)
@@ -5206,6 +5434,48 @@
 	return band;
 }
 
+TextFlowBand PageItem_TextFrame::spanBand(int storyStart, double bandTop, double bandBottom, double flowTop, double flowBottom) const
+{
+	double lineCorr = 0.0;
+	if (lineColor() != CommonStrings::None)
+		lineCorr = m_lineWidth / 2.0;
+	if (bandBottom < 0.0)
+		bandBottom = m_height;
+	bandTop = qBound(0.0, bandTop, m_height);
+	bandBottom = qBound(bandTop, bandBottom, m_height);
+	if (flowTop < 0.0)
+		flowTop = bandTop;
+	if (flowBottom < 0.0)
+		flowBottom = bandBottom - m_textDistanceMargins.bottom() - lineCorr;
+
+	const QVector<TextColumnGeometry> geometry = columnGeometry();
+	double left = m_textDistanceMargins.left() + lineCorr;
+	double right = m_width - m_textDistanceMargins.right() - lineCorr;
+	if (!geometry.isEmpty())
+	{
+		left = geometry.first().left;
+		right = geometry.first().left + geometry.first().width;
+		for (const TextColumnGeometry& column : geometry)
+		{
+			left = qMin(left, column.left);
+			right = qMax(right, column.left + column.width);
+		}
+	}
+
+	TextFlowBand band;
+	band.kind = TextFlowBandKind::Span;
+	band.storyStart = storyStart;
+	band.top = bandTop;
+	band.bottom = bandBottom;
+	TextFlowRegion region;
+	region.bounds = QRectF(left, bandTop, qMax(0.0, right - left), bandBottom - bandTop);
+	region.flowTop = flowTop;
+	region.flowBottom = flowBottom;
+	region.logicalColumn = -1;
+	band.regions.append(region);
+	return band;
+}
+
 TextFlowPlan PageItem_TextFrame::initialFlowPlan() const
 {
 	TextFlowPlan plan;
@@ -5213,6 +5483,83 @@
 	return plan;
 }
 
+TextFlowPlan PageItem_TextFrame::columnSpanFlowPlan() const
+{
+	if (m_columnSpanLayoutSteps.isEmpty())
+		return initialFlowPlan();
+
+	double lineCorr = 0.0;
+	if (lineColor() != CommonStrings::None)
+		lineCorr = m_lineWidth / 2.0;
+	const double contentBottom = m_height - m_textDistanceMargins.bottom() - lineCorr;
+
+	TextFlowPlan plan;
+	for (const ColumnSpanLayoutStep& step : m_columnSpanLayoutSteps)
+	{
+		TextFlowBand columns = columnBand(step.segmentTop, step.spanTop, step.segmentFlowTop, step.spanTop);
+		plan.bands.append(columns);
+
+		const ParagraphStyle spanStyle = itemText.paragraphStyle(step.storyStart);
+		double spanFlowTop = qMax(step.spanTop, step.segmentFlowTop);
+		if (!step.continuation)
+		{
+			spanFlowTop += spanStyle.spanSpaceBefore();
+			if (step.storyStart > firstInFrame() && itemText.isBlockStart(step.storyStart))
+				spanFlowTop += spanStyle.gapBefore();
+		}
+		const double spanBottom = step.spanBottom >= 0.0 ? step.spanBottom : m_height;
+		plan.bands.append(spanBand(step.storyStart, step.spanTop, spanBottom, spanFlowTop,
+			step.spanBottom >= 0.0 ? step.spanBottom : contentBottom));
+
+		if (step.spanBottom < 0.0)
+			return plan;
+	}
+
+	const ColumnSpanLayoutStep& lastStep = m_columnSpanLayoutSteps.constLast();
+	if (lastStep.spanBottom < m_height)
+		plan.bands.append(columnBand(lastStep.spanBottom, m_height, lastStep.spanBottom, contentBottom));
+	return plan;
+}
+
+int PageItem_TextFrame::columnSpanLayoutStep(int storyStart) const
+{
+	for (int i = 0; i < m_columnSpanLayoutSteps.size(); ++i)
+	{
+		if (m_columnSpanLayoutSteps.at(i).storyStart == storyStart)
+			return i;
+	}
+	return -1;
+}
+
+bool PageItem_TextFrame::reviseColumnSpanTop(int stepIndex, bool prefixFits)
+{
+	if (stepIndex < 0 || stepIndex >= m_columnSpanLayoutSteps.size())
+		return false;
+
+	ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[stepIndex];
+	if (prefixFits)
+		step.high = qMin(step.high, step.spanTop);
+	else
+		step.low = qMax(step.low, step.spanTop);
+	++step.attempts;
+
+	const bool converged = (step.high - step.low <= 0.25) || (step.attempts >= 16);
+	const double nextTop = converged ? step.high : (step.low + step.high) / 2.0;
+	const bool needsRetry = !prefixFits || !converged;
+	step.spanTop = nextTop;
+	if (converged)
+		step.low = step.high;
+	return needsRetry;
+}
+
+void PageItem_TextFrame::clearColumnSpanLayout()
+{
+	m_columnSpanLayoutSteps.clear();
+	m_columnSpanLayoutRetries = 0;
+	m_columnSpanLayoutFallback = false;
+	m_columnSpanLayoutActive = false;
+}
+
 /*
 void PageItem_TextFrame::drawOverflowMarker(ScPainter *p)
 {
Index: scribus/pageitem_textframe.h
===================================================================
--- scribus/pageitem_textframe.h	(revision 27861)
+++ scribus/pageitem_textframe.h	(working copy)
@@ -127,7 +127,9 @@
 
 protected:
 	TextFlowBand columnBand(double bandTop = 0.0, double bandBottom = -1.0, double flowTop = -1.0, double flowBottom = -1.0) const;
+	TextFlowBand spanBand(int storyStart, double bandTop, double bandBottom = -1.0, double flowTop = -1.0, double flowBottom = -1.0) const;
 	TextFlowPlan initialFlowPlan() const;
+	TextFlowPlan columnSpanFlowPlan() const;
 	QRegion calcAvailableRegion();
 	QRegion m_availableRegion;
 	void DrawObj_Item(ScPainter *p, const QRectF& e) override;
@@ -152,6 +154,27 @@
 	void adjustParagraphEndings ();
 
 private:
+	struct ColumnSpanLayoutStep
+	{
+		int storyStart { -1 };
+		bool continuation { false };
+		double segmentTop { 0.0 };
+		double segmentFlowTop { 0.0 };
+		double low { 0.0 };
+		double high { 0.0 };
+		double spanTop { 0.0 };
+		double spanBottom { -1.0 };
+		int attempts { 0 };
+	};
+
+	bool m_columnSpanLayoutActive { false };
+	bool m_columnSpanLayoutFallback { false };
+	int m_columnSpanLayoutRetries { 0 };
+	QVector<ColumnSpanLayoutStep> m_columnSpanLayoutSteps;
+	int columnSpanLayoutStep(int storyStart) const;
+	bool reviseColumnSpanTop(int stepIndex, bool prefixFits);
+	void clearColumnSpanLayout();
+
 	bool cursorBiasBackward {false};
 	// If the last paragraph had to be split, this is how many lines of the paragraph are in this frame.
 	// Used for orphan/widow control
Index: scribus/text/textlayout.cpp
===================================================================
--- scribus/text/textlayout.cpp	(revision 27861)
+++ scribus/text/textlayout.cpp	(working copy)
@@ -40,6 +40,7 @@
 		{
 			region.bandKind = band.kind;
 			region.bandIndex = bandIndex;
+			region.storyStart = band.storyStart;
 			result.append(region);
 		}
 	}
Index: scribus/text/textlayout.h
===================================================================
--- scribus/text/textlayout.h	(revision 27861)
+++ scribus/text/textlayout.h	(working copy)
@@ -48,6 +48,7 @@
 	double flowBottom { 0.0 };
 	TextFlowBandKind bandKind { TextFlowBandKind::Columns };
 	int bandIndex { 0 };
+	int storyStart { -1 };
 	int logicalColumn { 0 };
 };
 
cs4-column-span-ui-v1.02.patch (39,271 bytes)   
Index: scribus/ui/propertiespalette_text.cpp
===================================================================
--- scribus/ui/propertiespalette_text.cpp	(revision 27861)
+++ scribus/ui/propertiespalette_text.cpp	(working copy)
@@ -86,7 +86,7 @@
 	scHyphenation->restorePreferences();
 
 	orphanBox = new PropertyWidget_Orphans(this);
-	scOrphans = new SectionContainer(tr("Orphans && Widows"), "SectionTPOrphansWidows", true, false);
+	scOrphans = new SectionContainer(tr("Paragraph flow"), "SectionTPOrphansWidows", true, false);
 	scOrphans->setCanSaveState(true);
 	scOrphans->setWidget(orphanBox);
 	scOrphans->restorePreferences();
@@ -347,6 +347,7 @@
 	distanceWidgets->unitChange();
 	pathTextWidgets->unitChange();
 	parEffectWidgets->unitChange();
+	orphanBox->unitChange();
 	textWidgets->unitChange();
 
 	m_haveItem = tmp;
@@ -427,7 +428,7 @@
 	scDistance->setText(tr("Columns && Indentation"));
 	scFontFeatures->setText(tr("OpenType Features"));
 	scHyphenation->setText(tr("Hyphenation && Language"));
-	scOrphans->setText(tr("Orphans && Widows"));
+	scOrphans->setText(tr("Paragraph flow"));
 	scParEffect->setText(tr("Lists && Drop Caps"));
 	scPathText->setText(tr("Text on Path"));
 	scText->setText(tr("Font"));
Index: scribus/ui/propertywidget_orphans.cpp
===================================================================
--- scribus/ui/propertywidget_orphans.cpp	(revision 27861)
+++ scribus/ui/propertywidget_orphans.cpp	(working copy)
@@ -10,6 +10,8 @@
 #include "iconmanager.h"
 #include "scribusapp.h"
 #include "scribusdoc.h"
+#include "styles/paragraphstyle.h"
+#include "units.h"
 
 PropertyWidget_Orphans::PropertyWidget_Orphans(QWidget* parent) : QFrame(parent)
 {
@@ -18,6 +20,8 @@
 	layout()->setAlignment(Qt::AlignTop);
 	keepLinesStart->setDecimals(0);
 	keepLinesEnd->setDecimals(0);
+	paragraphLayout->addItem(tr("None"), ParagraphStyle::ParagraphLayoutSingleColumn);
+	paragraphLayout->addItem(tr("All columns"), ParagraphStyle::ParagraphLayoutSpanColumns);
 
 	iconSetChange();
 	languageChange();
@@ -25,8 +29,23 @@
 	connect(ScQApp, SIGNAL(iconSetChanged()), this, SLOT(iconSetChange()));
 }
 
+void PropertyWidget_Orphans::setDoc(ScribusDoc *doc)
+{
+	PropertyWidgetBase::setDoc(doc);
+	if (!m_doc)
+		return;
+
+	m_unitRatio = m_doc->unitRatio();
+	m_unitIndex = m_doc->unitIndex();
+	spanSpaceBefore->setNewUnit(m_unitIndex);
+	spanSpaceAfter->setNewUnit(m_unitIndex);
+}
+
 void PropertyWidget_Orphans::connectSignals()
 {
+	connect(paragraphLayout, SIGNAL(activated(int)), this, SLOT(handleParagraphLayout(int)));
+	connect(spanSpaceBefore, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceBefore()));
+	connect(spanSpaceAfter, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceAfter()));
 	connect(keepLinesStart, SIGNAL(valueChanged(double)), this, SLOT(handleKeepLinesStart()));
 	connect(keepLinesEnd, SIGNAL(valueChanged(double)), this, SLOT(handleKeepLinesEnd()));
 	connect(keepTogether, SIGNAL(toggled(bool)), this, SLOT(handleKeepTogether()));
@@ -35,12 +54,46 @@
 
 void PropertyWidget_Orphans::disconnectSignals()
 {
+	disconnect(paragraphLayout, SIGNAL(activated(int)), this, SLOT(handleParagraphLayout(int)));
+	disconnect(spanSpaceBefore, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceBefore()));
+	disconnect(spanSpaceAfter, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceAfter()));
 	disconnect(keepLinesStart, SIGNAL(valueChanged(double)), this, SLOT(handleKeepLinesStart()));
 	disconnect(keepLinesEnd, SIGNAL(valueChanged(double)), this, SLOT(handleKeepLinesEnd()));
 	disconnect(keepTogether, SIGNAL(toggled(bool)), this, SLOT(handleKeepTogether()));
 	disconnect(keepWithNext, SIGNAL(toggled(bool)), this, SLOT(handleKeepWithNext()));
 }
 
+void PropertyWidget_Orphans::handleParagraphLayout(int index)
+{
+	if (!m_doc)
+		return;
+
+	ParagraphStyle newStyle;
+	newStyle.setParagraphLayout(static_cast<ParagraphStyle::ParagraphLayoutMode>(paragraphLayout->itemData(index).toInt()));
+	m_doc->itemSelection_ApplyParagraphStyle(newStyle);
+	updateSpanSpaceEnabled();
+}
+
+void PropertyWidget_Orphans::handleSpanSpaceBefore()
+{
+	if (!m_doc)
+		return;
+
+	ParagraphStyle newStyle;
+	newStyle.setSpanSpaceBefore(spanSpaceBefore->value() / m_unitRatio);
+	m_doc->itemSelection_ApplyParagraphStyle(newStyle);
+}
+
+void PropertyWidget_Orphans::handleSpanSpaceAfter()
+{
+	if (!m_doc)
+		return;
+
+	ParagraphStyle newStyle;
+	newStyle.setSpanSpaceAfter(spanSpaceAfter->value() / m_unitRatio);
+	m_doc->itemSelection_ApplyParagraphStyle(newStyle);
+}
+
 void PropertyWidget_Orphans::handleKeepLinesStart()
 {
 	if (!m_doc) return;
@@ -76,6 +129,10 @@
 void PropertyWidget_Orphans::updateStyle(const ParagraphStyle& newCurrent)
 {
 	disconnectSignals ();
+	paragraphLayout->setCurrentIndex(paragraphLayout->findData(newCurrent.paragraphLayout()));
+	spanSpaceBefore->setValue(newCurrent.spanSpaceBefore() * m_unitRatio);
+	spanSpaceAfter->setValue(newCurrent.spanSpaceAfter() * m_unitRatio);
+	updateSpanSpaceEnabled();
 	keepLinesStart->setValue (newCurrent.keepLinesStart());
 	keepLinesEnd->setValue (newCurrent.keepLinesEnd());
 	keepTogether->setChecked (newCurrent.keepTogether());
@@ -83,14 +140,22 @@
 	connectSignals ();
 }
 
-void PropertyWidget_Orphans::changeEvent(QEvent *e)
+void PropertyWidget_Orphans::unitChange()
 {
-	if (e->type() == QEvent::LanguageChange)
-	{
-		languageChange();
+	if (!m_doc)
 		return;
-	}
-	QWidget::changeEvent(e);
+
+	m_unitRatio = m_doc->unitRatio();
+	m_unitIndex = m_doc->unitIndex();
+	spanSpaceBefore->setNewUnit(m_unitIndex);
+	spanSpaceAfter->setNewUnit(m_unitIndex);
+}
+
+void PropertyWidget_Orphans::updateSpanSpaceEnabled()
+{
+	const bool enabled = paragraphLayout->currentData().toInt() == ParagraphStyle::ParagraphLayoutSpanColumns;
+	spanSpaceBeforeLabel->setEnabled(enabled);
+	spanSpaceAfterLabel->setEnabled(enabled);
 }
 
 void PropertyWidget_Orphans::iconSetChange()
@@ -101,8 +166,22 @@
 	keepLabelEnd->setPixmap(im.loadPixmap("paragraph-widow"));
 }
 
+void PropertyWidget_Orphans::changeEvent(QEvent *e)
+{
+	if (e->type() == QEvent::LanguageChange)
+	{
+		languageChange();
+		return;
+	}
+	QWidget::changeEvent(e);
+}
+
 void PropertyWidget_Orphans::languageChange()
 {
+	const int oldLayout = paragraphLayout->currentData().toInt();
 	retranslateUi(this);
+	paragraphLayout->setItemText(0, tr("None"));
+	paragraphLayout->setItemText(1, tr("All columns"));
+	paragraphLayout->setCurrentIndex(paragraphLayout->findData(oldLayout));
 }
 
Index: scribus/ui/propertywidget_orphans.h
===================================================================
--- scribus/ui/propertywidget_orphans.h	(revision 27861)
+++ scribus/ui/propertywidget_orphans.h	(working copy)
@@ -21,6 +21,7 @@
 	PropertyWidget_Orphans(QWidget* parent);
 	~PropertyWidget_Orphans() {};
 
+	void setDoc(ScribusDoc *doc);
 	void updateStyle(const ParagraphStyle& newCurrent);
 
 protected:
@@ -29,14 +30,22 @@
 public slots:
 	void iconSetChange();
 	void languageChange();
+	void unitChange();
+	void handleParagraphLayout(int index);
+	void handleSpanSpaceBefore();
+	void handleSpanSpaceAfter();
 	void handleKeepLinesStart();
 	void handleKeepLinesEnd();
 	void handleKeepTogether();
 	void handleKeepWithNext();
 
 private:
+	double m_unitRatio { 1.0 };
+	int m_unitIndex { 0 };
+
 	void connectSignals();
 	void disconnectSignals();
+	void updateSpanSpaceEnabled();
 };
 
 #endif
Index: scribus/ui/propertywidget_orphansbase.ui
===================================================================
--- scribus/ui/propertywidget_orphansbase.ui	(revision 27861)
+++ scribus/ui/propertywidget_orphansbase.ui	(working copy)
@@ -11,6 +11,9 @@
    </rect>
   </property>
   <layout class="QVBoxLayout" name="verticalLayout">
+   <property name="spacing">
+    <number>8</number>
+   </property>
    <property name="leftMargin">
     <number>8</number>
    </property>
@@ -24,113 +27,32 @@
     <number>8</number>
    </property>
    <item>
-    <layout class="QHBoxLayout" name="horizontalLayout_3">
-     <property name="spacing">
-      <number>16</number>
-     </property>
+    <layout class="QHBoxLayout" name="keepLinesLayout" stretch="0,0,1">
+     <property name="spacing"><number>8</number></property>
      <item>
       <widget class="FormWidget" name="keepLabelStart">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="label" stdset="0">
-        <string/>
-       </property>
-       <property name="direction">
-        <enum>FormWidget::LabelPosition::Left</enum>
-       </property>
-       <layout class="QHBoxLayout" name="horizontalLayout">
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <property name="leftMargin">
-         <number>0</number>
-        </property>
-        <property name="topMargin">
-         <number>0</number>
-        </property>
-        <property name="rightMargin">
-         <number>0</number>
-        </property>
-        <property name="bottomMargin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="ScrSpinBox" name="keepLinesStart">
-          <property name="toolTip">
-           <string>Ensure that first lines of a paragraph won't end up separated from the rest (known as widow/orphan control)</string>
-          </property>
-          <property name="suffix">
-           <string> lines</string>
-          </property>
-          <property name="maximum">
-           <double>10.000000000000000</double>
-          </property>
-         </widget>
-        </item>
+       <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+       <property name="label" stdset="0"><string>At start</string></property>
+       <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+       <layout class="QHBoxLayout" name="horizontalLayout"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+        <item><widget class="ScrSpinBox" name="keepLinesStart"><property name="toolTip"><string>Minimum lines kept together at the beginning of a paragraph</string></property><property name="suffix"><string> lines</string></property><property name="maximum"><double>10.000000000000000</double></property></widget></item>
        </layout>
       </widget>
      </item>
      <item>
       <widget class="FormWidget" name="keepLabelEnd">
-       <property name="sizePolicy">
-        <sizepolicy hsizetype="Preferred" vsizetype="Minimum">
-         <horstretch>0</horstretch>
-         <verstretch>0</verstretch>
-        </sizepolicy>
-       </property>
-       <property name="label" stdset="0">
-        <string/>
-       </property>
-       <property name="direction">
-        <enum>FormWidget::LabelPosition::Left</enum>
-       </property>
-       <layout class="QHBoxLayout" name="horizontalLayout_2">
-        <property name="spacing">
-         <number>4</number>
-        </property>
-        <property name="leftMargin">
-         <number>0</number>
-        </property>
-        <property name="topMargin">
-         <number>0</number>
-        </property>
-        <property name="rightMargin">
-         <number>0</number>
-        </property>
-        <property name="bottomMargin">
-         <number>0</number>
-        </property>
-        <item>
-         <widget class="ScrSpinBox" name="keepLinesEnd">
-          <property name="toolTip">
-           <string>Ensure that last lines of a paragraph won't end up separated from the rest (known as widow/orphan control)</string>
-          </property>
-          <property name="suffix">
-           <string> lines</string>
-          </property>
-          <property name="maximum">
-           <double>10.000000000000000</double>
-          </property>
-         </widget>
-        </item>
+       <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+       <property name="label" stdset="0"><string>At end</string></property>
+       <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+       <layout class="QHBoxLayout" name="horizontalLayout_2"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+        <item><widget class="ScrSpinBox" name="keepLinesEnd"><property name="toolTip"><string>Minimum lines kept together at the end of a paragraph</string></property><property name="suffix"><string> lines</string></property><property name="maximum"><double>10.000000000000000</double></property></widget></item>
        </layout>
       </widget>
      </item>
      <item>
-      <spacer name="horizontalSpacer">
-       <property name="orientation">
-        <enum>Qt::Orientation::Horizontal</enum>
-       </property>
-       <property name="sizeHint" stdset="0">
-        <size>
-         <width>40</width>
-         <height>20</height>
-        </size>
-       </property>
+      <spacer name="keepLinesSpacer">
+       <property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property>
+       <property name="sizeHint" stdset="0"><size><width>0</width><height>20</height></size></property>
       </spacer>
      </item>
     </layout>
@@ -155,6 +77,47 @@
      </property>
     </widget>
    </item>
+   <item>
+    <layout class="QHBoxLayout" name="paragraphLayoutRow" stretch="0,0,0,1">
+     <property name="spacing"><number>8</number></property>
+     <item>
+      <widget class="FormWidget" name="paragraphLayoutLabel">
+       <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+       <property name="label" stdset="0"><string>Column span</string></property>
+       <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+       <layout class="QHBoxLayout" name="paragraphLayoutControl"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+        <item><widget class="QComboBox" name="paragraphLayout"><property name="toolTip"><string>Choose whether the paragraph spans all columns in its text frame</string></property><property name="sizeAdjustPolicy"><enum>QComboBox::SizeAdjustPolicy::AdjustToContents</enum></property></widget></item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="FormWidget" name="spanSpaceBeforeLabel">
+       <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+       <property name="label" stdset="0"><string>Space before</string></property>
+       <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+       <layout class="QHBoxLayout" name="spanSpaceBeforeLayout"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+        <item><widget class="ScrSpinBox" name="spanSpaceBefore"><property name="toolTip"><string>Additional space before a spanning paragraph</string></property><property name="minimum"><double>0.000000000000000</double></property><property name="maximum"><double>1000.000000000000000</double></property></widget></item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <widget class="FormWidget" name="spanSpaceAfterLabel">
+       <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+       <property name="label" stdset="0"><string>Space after</string></property>
+       <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+       <layout class="QHBoxLayout" name="spanSpaceAfterLayout"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+        <item><widget class="ScrSpinBox" name="spanSpaceAfter"><property name="toolTip"><string>Additional space after a spanning paragraph</string></property><property name="minimum"><double>0.000000000000000</double></property><property name="maximum"><double>1000.000000000000000</double></property></widget></item>
+       </layout>
+      </widget>
+     </item>
+     <item>
+      <spacer name="paragraphLayoutSpacer">
+       <property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property>
+       <property name="sizeHint" stdset="0"><size><width>0</width><height>20</height></size></property>
+      </spacer>
+     </item>
+    </layout>
+   </item>
   </layout>
  </widget>
  <customwidgets>
@@ -178,6 +141,11 @@
  <tabstops>
   <tabstop>keepLinesStart</tabstop>
   <tabstop>keepLinesEnd</tabstop>
+  <tabstop>keepTogether</tabstop>
+  <tabstop>keepWithNext</tabstop>
+  <tabstop>paragraphLayout</tabstop>
+  <tabstop>spanSpaceBefore</tabstop>
+  <tabstop>spanSpaceAfter</tabstop>
  </tabstops>
  <resources/>
  <connections/>
Index: scribus/ui/smpstylewidget.cpp
===================================================================
--- scribus/ui/smpstylewidget.cpp	(revision 27861)
+++ scribus/ui/smpstylewidget.cpp	(working copy)
@@ -6,6 +6,7 @@
 */
 
 #include <QEvent>
+#include <QSignalBlocker>
 
 
 #include "iconmanager.h"
@@ -49,6 +50,9 @@
 	lineSpacing->setSuffix(unitGetSuffixFromIndex(0));
 	spaceAbove->setSuffix(unitGetSuffixFromIndex(0));
 	spaceBelow->setSuffix(unitGetSuffixFromIndex(0));
+	spanSpaceBefore->setSuffix(unitGetSuffixFromIndex(0));
+	spanSpaceAfter->setSuffix(unitGetSuffixFromIndex(0));
+	fillParagraphLayoutCombo();
 
 //	optMarginCombo->addItem(tr("None"), ParagraphStyle::OM_None);
 //	optMarginCombo->addItem(tr("Left Protruding"), ParagraphStyle::OM_LeftProtruding);
@@ -145,6 +149,11 @@
 	lineSpacing->setSuffix(unitGetSuffixFromIndex(0));
 	spaceAbove->setSuffix(unitGetSuffixFromIndex(0));
 	spaceBelow->setSuffix(unitGetSuffixFromIndex(0));
+	spanSpaceBefore->setSuffix(unitGetSuffixFromIndex(spanSpaceBefore->unitIndex()));
+	spanSpaceAfter->setSuffix(unitGetSuffixFromIndex(spanSpaceAfter->unitIndex()));
+	const int oldParagraphLayout = paragraphLayout->currentData().toInt();
+	fillParagraphLayoutCombo();
+	paragraphLayout->setCurrentIndex(paragraphLayout->findData(oldParagraphLayout));
 
 	keepLinesStart->setSuffix( tr(" lines"));
 	keepLinesEnd->setSuffix( tr(" lines"));
@@ -164,9 +173,20 @@
 void SMPStyleWidget::unitChange(double oldRatio, double newRatio, int unitIndex)
 {
 	parEffectOffset->setNewUnit(unitIndex);
+	spanSpaceBefore->setNewUnit(unitIndex);
+	spanSpaceAfter->setNewUnit(unitIndex);
 	tabList->unitChange(unitIndex);
 }
 
+void SMPStyleWidget::fillParagraphLayoutCombo()
+{
+	const QSignalBlocker blocker(paragraphLayout);
+	paragraphLayout->setParentValueText(tr("Inherited"));
+	paragraphLayout->clear();
+	paragraphLayout->addItem(tr("None"), ParagraphStyle::ParagraphLayoutSingleColumn);
+	paragraphLayout->addItem(tr("All columns"), ParagraphStyle::ParagraphLayoutSpanColumns);
+}
+
 void SMPStyleWidget::setDoc(ScribusDoc *doc)
 {
 	if (m_Doc)
@@ -187,6 +207,9 @@
 {
 	m_currPStyle = pstyle;
 	double unitRatio = unitGetRatioFromIndex(unitIndex);
+	spanSpaceBefore->setNewUnit(unitIndex);
+	spanSpaceAfter->setNewUnit(unitIndex);
+	fillParagraphLayoutCombo();
 	parentCombo->setEnabled(!pstyle->isDefaultStyle());
 	const ParagraphStyle *parent = dynamic_cast<const ParagraphStyle*>(pstyle->parentStyle());
 	m_hasParent = pstyle->hasParent() && parent != nullptr && parent->hasName() && pstyle->parent() != "";
@@ -284,6 +307,12 @@
 		keepLinesEnd->setParentValue (parent->keepLinesEnd());
 		keepTogether->setParentValue (parent->keepTogether());
 		keepWithNext->setParentValue (parent->keepWithNext());
+		paragraphLayout->setCurrentItemByData(pstyle->paragraphLayout(), pstyle->isInhParagraphLayout());
+		paragraphLayout->setParentItem(paragraphLayout->getItemIndexForData(parent->paragraphLayout()));
+		spanSpaceBefore->setValue(pstyle->spanSpaceBefore() * unitRatio, pstyle->isInhSpanSpaceBefore());
+		spanSpaceBefore->setParentValue(parent->spanSpaceBefore() * unitRatio);
+		spanSpaceAfter->setValue(pstyle->spanSpaceAfter() * unitRatio, pstyle->isInhSpanSpaceAfter());
+		spanSpaceAfter->setParentValue(parent->spanSpaceAfter() * unitRatio);
 		
 //Effects Gropup Box
 		m_parentDC = parent->hasDropCap();
@@ -398,11 +427,17 @@
 		keepLinesEnd->setValue (pstyle->keepLinesEnd());
 		keepTogether->setChecked (pstyle->keepTogether());
 		keepWithNext->setChecked (pstyle->keepWithNext());
+		paragraphLayout->setCurrentItemByData(pstyle->paragraphLayout());
+		spanSpaceBefore->setValue(pstyle->spanSpaceBefore() * unitRatio);
+		spanSpaceAfter->setValue(pstyle->spanSpaceAfter() * unitRatio);
 		backgroundColor->setColor(pstyle->backgroundColor(), qRound(pstyle->backgroundShade()));
 
 	}
 
 	lineSpacing->setEnabled(pstyle->lineSpacingMode() == ParagraphStyle::FixedLineSpacing);
+	const bool spanEnabled = pstyle->paragraphLayout() == ParagraphStyle::ParagraphLayoutSpanColumns;
+	spanSpaceBeforeLabel->setEnabled(spanEnabled);
+	spanSpaceAfterLabel->setEnabled(spanEnabled);
 
 	if (pstyle->hasDropCap())
 		setParagraphEffect(1);
@@ -457,6 +492,7 @@
 		m_currPStyle = pstyles[0];
 		showLineSpacing(pstyles);
 		showSpaceAB(pstyles, unitIndex);
+		showParagraphFlow(pstyles, unitIndex);
 		showDropCap(pstyles, cstyles, unitIndex);
 		showBullet(pstyles, cstyles, unitIndex);
 		showNumeration(pstyles, cstyles, unitIndex);
@@ -476,6 +512,46 @@
 	}
 }
 
+void SMPStyleWidget::showParagraphFlow(const QList<ParagraphStyle*> &pstyles, int unitIndex)
+{
+	const double unitRatio = unitGetRatioFromIndex(unitIndex);
+	spanSpaceBefore->setNewUnit(unitIndex);
+	spanSpaceAfter->setNewUnit(unitIndex);
+	fillParagraphLayoutCombo();
+
+	int layoutMode = pstyles[0]->paragraphLayout();
+	double spaceBefore = pstyles[0]->spanSpaceBefore();
+	double spaceAfter = pstyles[0]->spanSpaceAfter();
+	bool sameLayout = true;
+	bool sameBefore = true;
+	bool sameAfter = true;
+	for (int i = 1; i < pstyles.count(); ++i)
+	{
+		sameLayout &= pstyles[i]->paragraphLayout() == layoutMode;
+		sameBefore &= isEqual(pstyles[i]->spanSpaceBefore(), spaceBefore);
+		sameAfter &= isEqual(pstyles[i]->spanSpaceAfter(), spaceAfter);
+	}
+
+	if (sameLayout)
+		paragraphLayout->setCurrentItemByData(layoutMode);
+	else
+	{
+		paragraphLayout->addItem(QString());
+		paragraphLayout->setCurrentIndex(paragraphLayout->count() - 1);
+	}
+	if (sameBefore)
+		spanSpaceBefore->setValue(spaceBefore * unitRatio);
+	else
+		spanSpaceBefore->clear();
+	if (sameAfter)
+		spanSpaceAfter->setValue(spaceAfter * unitRatio);
+	else
+		spanSpaceAfter->clear();
+
+	spanSpaceBeforeLabel->setEnabled(!sameLayout || layoutMode == ParagraphStyle::ParagraphLayoutSpanColumns);
+	spanSpaceAfterLabel->setEnabled(!sameLayout || layoutMode == ParagraphStyle::ParagraphLayoutSpanColumns);
+}
+
 void SMPStyleWidget::showColors(const QList<ParagraphStyle*> &cstyles)
 {
 	double d = -30000;
Index: scribus/ui/smpstylewidget.h
===================================================================
--- scribus/ui/smpstylewidget.h	(revision 27861)
+++ scribus/ui/smpstylewidget.h	(working copy)
@@ -52,10 +52,12 @@
 	void fillNumerationsCombo();
 	void fillNumRestartCombo();
 	void fillPECombo();
+	void fillParagraphLayoutCombo();
 	void setParagraphEffect(int);
 	void showColors(const QList<ParagraphStyle*> &cstyles);
 	void showLineSpacing(const QList<ParagraphStyle*> &pstyles);
 	void showSpaceAB(const QList<ParagraphStyle*> &pstyles, int unitIndex);
+	void showParagraphFlow(const QList<ParagraphStyle*> &pstyles, int unitIndex);
 	void showDropCap(const QList<ParagraphStyle*> &pstyles, const QList<CharStyle> &cstyles, int unitIndex);
 	void showBullet(const QList<ParagraphStyle*> &pstyles, const QList<CharStyle> &cstyles, int unitIndex);
 	void showNumeration(const QList<ParagraphStyle*> &pstyles, const QList<CharStyle> &cstyles, int unitIndex);
Index: scribus/ui/smpstylewidget.ui
===================================================================
--- scribus/ui/smpstylewidget.ui	(revision 27861)
+++ scribus/ui/smpstylewidget.ui	(working copy)
@@ -780,11 +780,11 @@
          <item row="2" column="1">
           <widget class="QGroupBox" name="textFlowBox">
            <property name="title">
-            <string>Orphans &amp;&amp; Widows</string>
+            <string>Paragraph flow</string>
            </property>
            <layout class="QVBoxLayout" name="verticalLayout_3">
             <property name="spacing">
-             <number>4</number>
+             <number>8</number>
             </property>
             <property name="leftMargin">
              <number>8</number>
@@ -799,9 +799,9 @@
              <number>8</number>
             </property>
             <item>
-             <layout class="QHBoxLayout" name="horizontalLayout_11">
+             <layout class="QHBoxLayout" name="horizontalLayout_11" stretch="0,0,1">
               <property name="spacing">
-               <number>16</number>
+               <number>8</number>
               </property>
               <item>
                <widget class="FormWidget" name="keepLabelStart">
@@ -812,7 +812,10 @@
                  </sizepolicy>
                 </property>
                 <property name="label" stdset="0">
-                 <string/>
+                 <string>At start</string>
+                </property>
+                <property name="direction">
+                 <enum>FormWidget::LabelPosition::Bottom</enum>
                 </property>
                 <layout class="QHBoxLayout" name="horizontalLayout_13">
                  <property name="leftMargin">
@@ -830,7 +833,7 @@
                  <item>
                   <widget class="SMSpinBox" name="keepLinesStart">
                    <property name="toolTip">
-                    <string>Ensure that first lines of a paragraph won't end up separated from the rest (known as widow/orphan control)</string>
+                    <string>Minimum lines kept together at the beginning of a paragraph</string>
                    </property>
                    <property name="suffix">
                     <string> lines</string>
@@ -852,7 +855,10 @@
                  </sizepolicy>
                 </property>
                 <property name="label" stdset="0">
-                 <string/>
+                 <string>At end</string>
+                </property>
+                <property name="direction">
+                 <enum>FormWidget::LabelPosition::Bottom</enum>
                 </property>
                 <layout class="QHBoxLayout" name="horizontalLayout_17">
                  <property name="leftMargin">
@@ -870,7 +876,7 @@
                  <item>
                   <widget class="SMSpinBox" name="keepLinesEnd">
                    <property name="toolTip">
-                    <string>Ensure that last lines of a paragraph won't end up separated from the rest (known as widow/orphan control)</string>
+                    <string>Minimum lines kept together at the end of a paragraph</string>
                    </property>
                    <property name="suffix">
                     <string> lines</string>
@@ -919,6 +925,47 @@
              </widget>
             </item>
             <item>
+             <layout class="QHBoxLayout" name="paragraphLayoutRow" stretch="0,0,0,1">
+              <property name="spacing"><number>8</number></property>
+              <item>
+               <widget class="FormWidget" name="paragraphLayoutLabel">
+                <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+                <property name="label" stdset="0"><string>Column span</string></property>
+                <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+                <layout class="QHBoxLayout" name="paragraphLayoutControl"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+                 <item><widget class="SMScComboBox" name="paragraphLayout"><property name="toolTip"><string>Choose the column span. Inherited uses the parent paragraph style</string></property><property name="sizeAdjustPolicy"><enum>QComboBox::SizeAdjustPolicy::AdjustToContents</enum></property></widget></item>
+                </layout>
+               </widget>
+              </item>
+              <item>
+               <widget class="FormWidget" name="spanSpaceBeforeLabel">
+                <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+                <property name="label" stdset="0"><string>Space before</string></property>
+                <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+                <layout class="QHBoxLayout" name="spanSpaceBeforeLayout"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+                 <item><widget class="SMScrSpinBox" name="spanSpaceBefore"><property name="toolTip"><string>Additional space before a spanning paragraph</string></property><property name="minimum"><double>0.000000000000000</double></property><property name="maximum"><double>1000.000000000000000</double></property></widget></item>
+                </layout>
+               </widget>
+              </item>
+              <item>
+               <widget class="FormWidget" name="spanSpaceAfterLabel">
+                <property name="sizePolicy"><sizepolicy hsizetype="Preferred" vsizetype="Minimum"><horstretch>0</horstretch><verstretch>0</verstretch></sizepolicy></property>
+                <property name="label" stdset="0"><string>Space after</string></property>
+                <property name="direction"><enum>FormWidget::LabelPosition::Bottom</enum></property>
+                <layout class="QHBoxLayout" name="spanSpaceAfterLayout"><property name="leftMargin"><number>0</number></property><property name="topMargin"><number>0</number></property><property name="rightMargin"><number>0</number></property><property name="bottomMargin"><number>0</number></property>
+                 <item><widget class="SMScrSpinBox" name="spanSpaceAfter"><property name="toolTip"><string>Additional space after a spanning paragraph</string></property><property name="minimum"><double>0.000000000000000</double></property><property name="maximum"><double>1000.000000000000000</double></property></widget></item>
+                </layout>
+               </widget>
+              </item>
+              <item>
+               <spacer name="paragraphLayoutSpacer">
+                <property name="orientation"><enum>Qt::Orientation::Horizontal</enum></property>
+                <property name="sizeHint" stdset="0"><size><width>0</width><height>20</height></size></property>
+               </spacer>
+              </item>
+             </layout>
+            </item>
+            <item>
              <spacer name="verticalSpacer_4">
               <property name="orientation">
                <enum>Qt::Orientation::Vertical</enum>
@@ -1788,6 +1835,9 @@
   <tabstop>keepLinesEnd</tabstop>
   <tabstop>keepTogether</tabstop>
   <tabstop>keepWithNext</tabstop>
+  <tabstop>paragraphLayout</tabstop>
+  <tabstop>spanSpaceBefore</tabstop>
+  <tabstop>spanSpaceAfter</tabstop>
   <tabstop>peCombo</tabstop>
   <tabstop>parentParEffectsButton</tabstop>
   <tabstop>dropCapLines</tabstop>
Index: scribus/ui/smsccombobox.cpp
===================================================================
--- scribus/ui/smsccombobox.cpp	(revision 27861)
+++ scribus/ui/smsccombobox.cpp	(working copy)
@@ -38,7 +38,7 @@
 	if (!isParentValue && !m_useParentValue)
 	{
 		m_useParentValue = true;
-		addItem( tr("Use Parent Value"));
+		addItem(parentValueText());
 	}
 
 	QComboBox::setCurrentIndex(i);
@@ -67,7 +67,7 @@
 	if (!isParentValue && !m_useParentValue)
 	{
 		m_useParentValue = true;
-		addItem( tr("Use Parent Value"));
+		addItem(parentValueText());
 	}
 
 	for (int idx(0); idx < count(); ++idx)
@@ -103,7 +103,7 @@
 	if (!isParentValue && !m_useParentValue)
 	{
 		m_useParentValue = true;
-		addItem( tr("Use Parent Value"));
+		addItem(parentValueText());
 	}
 
 	for (int idx(0); idx < count(); ++idx)
@@ -149,6 +149,18 @@
 	m_pItem = i;
 }
 
+void SMScComboBox::setParentValueText(const QString& text)
+{
+	m_parentValueText = text;
+	if (m_useParentValue && count() > 0)
+		setItemText(count() - 1, parentValueText());
+}
+
+QString SMScComboBox::parentValueText() const
+{
+	return m_parentValueText.isEmpty() ? tr("Use Parent Value") : m_parentValueText;
+}
+
 bool SMScComboBox::useParentValue()
 {
 	bool ret = false;
@@ -180,7 +192,7 @@
 	if (m_hasParent && !m_useParentValue)
 	{
 		setFont(true);
-		addItem( tr("Use Parent Value"));
+		addItem(parentValueText());
 		m_useParentValue = true;
 	}
 }
Index: scribus/ui/smsccombobox.h
===================================================================
--- scribus/ui/smsccombobox.h	(revision 27861)
+++ scribus/ui/smsccombobox.h	(working copy)
@@ -31,6 +31,7 @@
 	int getItemIndexForData(double d);
 	
 	void setParentItem(int i);
+	void setParentValueText(const QString& text);
 	bool useParentValue();
 
 public slots:
@@ -40,8 +41,10 @@
 	bool   m_hasParent = false;
 	bool   m_useParentValue = false;
 	int    m_pItem = 0;
+	QString m_parentValueText;
 
 	void setFont(bool wantBold);
+	QString parentValueText() const;
 
 private slots:
 	void currentChanged();
Index: scribus/ui/smtextstyles.cpp
===================================================================
--- scribus/ui/smtextstyles.cpp	(revision 27861)
+++ scribus/ui/smtextstyles.cpp	(working copy)
@@ -489,6 +489,9 @@
 	connect(m_pwidget->lineSpacing, SIGNAL(valueChanged(double)), this, SLOT(slotLineSpacing()));
 	connect(m_pwidget->spaceAbove, SIGNAL(valueChanged(double)), this, SLOT(slotSpaceAbove()));
 	connect(m_pwidget->spaceBelow, SIGNAL(valueChanged(double)), this, SLOT(slotSpaceBelow()));
+	connect(m_pwidget->paragraphLayout, SIGNAL(activated(int)), this, SLOT(handleParagraphLayout(int)));
+	connect(m_pwidget->spanSpaceBefore, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceBefore()));
+	connect(m_pwidget->spanSpaceAfter, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceAfter()));
 	connect(m_pwidget->alignment->TextL, SIGNAL(clicked()), this, SLOT(slotAlignment()));
 	connect(m_pwidget->alignment->TextR, SIGNAL(clicked()), this, SLOT(slotAlignment()));
 	connect(m_pwidget->alignment->TextC, SIGNAL(clicked()), this, SLOT(slotAlignment()));
@@ -584,6 +587,9 @@
 	disconnect(m_pwidget->lineSpacing, SIGNAL(valueChanged(double)), this, SLOT(slotLineSpacing()));
 	disconnect(m_pwidget->spaceAbove, SIGNAL(valueChanged(double)), this, SLOT(slotSpaceAbove()));
 	disconnect(m_pwidget->spaceBelow, SIGNAL(valueChanged(double)), this, SLOT(slotSpaceBelow()));
+	disconnect(m_pwidget->paragraphLayout, SIGNAL(activated(int)), this, SLOT(handleParagraphLayout(int)));
+	disconnect(m_pwidget->spanSpaceBefore, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceBefore()));
+	disconnect(m_pwidget->spanSpaceAfter, SIGNAL(valueChanged(double)), this, SLOT(handleSpanSpaceAfter()));
 	disconnect(m_pwidget->alignment->TextL, SIGNAL(clicked()), this, SLOT(slotAlignment()));
 	disconnect(m_pwidget->alignment->TextR, SIGNAL(clicked()), this, SLOT(slotAlignment()));
 	disconnect(m_pwidget->alignment->TextC, SIGNAL(clicked()), this, SLOT(slotAlignment()));
@@ -734,6 +740,62 @@
 	slotSelectionDirty();
 }
 
+void SMParagraphStyle::handleParagraphLayout(int index)
+{
+	if (m_pwidget->paragraphLayout->useParentValue())
+	{
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->resetParagraphLayout();
+	}
+	else if (index >= 0 && index < 2)
+	{
+		const auto mode = static_cast<ParagraphStyle::ParagraphLayoutMode>(m_pwidget->paragraphLayout->itemData(index).toInt());
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->setParagraphLayout(mode);
+	}
+
+	const bool spanEnabled = m_pwidget->paragraphLayout->currentData().toInt() == ParagraphStyle::ParagraphLayoutSpanColumns;
+	m_pwidget->spanSpaceBeforeLabel->setEnabled(spanEnabled);
+	m_pwidget->spanSpaceAfterLabel->setEnabled(spanEnabled);
+	slotSelectionDirty();
+}
+
+void SMParagraphStyle::handleSpanSpaceBefore()
+{
+	if (m_pwidget->spanSpaceBefore->useParentValue())
+	{
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->resetSpanSpaceBefore();
+	}
+	else
+	{
+		double a, b, value;
+		int c;
+		m_pwidget->spanSpaceBefore->getValues(&a, &b, &c, &value);
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->setSpanSpaceBefore(value / m_unitRatio);
+	}
+	slotSelectionDirty();
+}
+
+void SMParagraphStyle::handleSpanSpaceAfter()
+{
+	if (m_pwidget->spanSpaceAfter->useParentValue())
+	{
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->resetSpanSpaceAfter();
+	}
+	else
+	{
+		double a, b, value;
+		int c;
+		m_pwidget->spanSpaceAfter->getValues(&a, &b, &c, &value);
+		for (int i = 0; i < m_selection.count(); ++i)
+			m_selection[i]->setSpanSpaceAfter(value / m_unitRatio);
+	}
+	slotSelectionDirty();
+}
+
 void SMParagraphStyle::slotAlignment()
 {
 	ParagraphStyle::AlignmentType style = static_cast<ParagraphStyle::AlignmentType>(m_pwidget->alignment->getStyle());
@@ -2745,4 +2807,3 @@
 	m_page = nullptr;
 	m_widget = nullptr;
 }
-
Index: scribus/ui/smtextstyles.h
===================================================================
--- scribus/ui/smtextstyles.h	(revision 27861)
+++ scribus/ui/smtextstyles.h	(working copy)
@@ -93,6 +93,9 @@
 	void slotNumHigher(bool isOn);
 	void slotSpaceAbove();
 	void slotSpaceBelow();
+	void handleParagraphLayout(int index);
+	void handleSpanSpaceBefore();
+	void handleSpanSpaceAfter();
 	void slotAlignment();
 	void slotDirection();
 	void slotOpticalMargin(int i);
cs4-column-span-ui-v1.02.patch (39,271 bytes)   
cs5-column-span-recomposition-performance-v1.09.patch (31,461 bytes)   
Index: scribus/pageitem_textframe.cpp
===================================================================
--- scribus/pageitem_textframe.cpp	(revision 27859)
+++ scribus/pageitem_textframe.cpp	(working copy)
@@ -1297,6 +1297,7 @@
 	bool goNextColumn = false;
 	bool ownsColumnSpanLayout = false;
 	int activeSpanStart = -1;
+	double activeSpanRequiredBottom = -1.0;
 	uint linesAtSpanStart = 0;
 
 	TabControl tabs;
@@ -1346,6 +1347,7 @@
 	//fast validate empty frames
 	if (itLen == 0 || firstInFrame() == itLen)
 	{
+		clearColumnSpanCache();
 		PageItem_TextFrame * next = this;
 		while (next != nullptr)
 		{
@@ -1380,6 +1382,7 @@
 		m_availableRegion = calcAvailableRegion();
 		if (m_availableRegion.isEmpty())
 		{
+			clearColumnSpanCache();
 			m_maxChars = firstInFrame();
 			goto NoRoom;
 		}
@@ -1400,21 +1403,28 @@
 			m_availableRegion = matrix.map(m_availableRegion);
 		}
 
+		// update Bullet & number list if any.
+		if (itemText.hasTextMarks() || itemText.hasBulletOrNum() ||  itemText.marksCountChanged())
+		{
+			updateBulletsNum();
+			itemText.resetMarksCountChanged();
+		}
+
 		if (!m_columnSpanLayoutActive)
 		{
+			if (!columnSpanCacheMatchesGeometry())
+				clearColumnSpanCache();
 			m_columnSpanLayoutActive = true;
 			m_columnSpanLayoutFallback = false;
 			m_columnSpanLayoutRetries = 0;
-			m_columnSpanLayoutSteps.clear();
+			m_columnSpanLayoutSteps = m_columnSpanCachedSteps;
+			for (ColumnSpanLayoutStep& step : m_columnSpanLayoutSteps)
+			{
+				step.attempts = 0;
+				step.directAttempts = 0;
+			}
 			ownsColumnSpanLayout = true;
 		}
-		
-		// update Bullet & number list if any.
-		if (itemText.hasTextMarks() || itemText.hasBulletOrNum() ||  itemText.marksCountChanged())
-		{
-			updateBulletsNum();
-			itemText.resetMarksCountChanged();
-		}
 
 		ITextContext* context = this;
 		//TextShaper textShaper(this, itemText, firstInFrame());
@@ -1482,7 +1492,9 @@
 		auto restartColumnSpanLayout = [&]()
 		{
 			++m_columnSpanLayoutRetries;
-			if (m_columnSpanLayoutRetries > 128)
+			// Each discovered span gets its own bounded search allowance.
+			const int retryLimit = 16 + 24 * qMax(1, static_cast<int>(m_columnSpanLayoutSteps.size()));
+			if (m_columnSpanLayoutRetries > retryLimit)
 			{
 				// Pathological exclusion geometry or rounding must not recurse
 				// forever. Preserve story progress with ordinary column flow.
@@ -1569,32 +1581,42 @@
 					step.continuation = spanContinuation;
 					step.segmentTop = current.currentRegionTop();
 					step.segmentFlowTop = current.currentFlowTop();
+					step.segmentFlowBottom = current.currentFlowBottom();
 					step.low = step.segmentTop;
 					step.high = current.currentFlowBottom();
 					if (a == firstInFrame())
 					{
 						step.high = step.low;
 						step.spanTop = step.low;
+						step.topState = ColumnSpanLayoutStep::TopState::Settled;
 					}
 					else
 					{
 						const double usableHeight = qMax(0.01, step.high - step.segmentFlowTop);
 						const double usedHeight = current.currentLogicalColumn() * usableHeight
 							+ qMax(0.0, current.yPos - step.segmentFlowTop);
-						step.spanTop = qBound(step.low, step.segmentTop + usedHeight / columnGeometry().size(), step.high);
+						step.spanTop = qBound(step.low,
+							step.segmentTop + usedHeight / columnGeometry().size(), step.high);
 					}
 					m_columnSpanLayoutSteps.append(step);
 					restartColumnSpanLayout();
 					if (ownsColumnSpanLayout)
-						clearColumnSpanLayout();
+						finishColumnSpanLayout();
 					return;
 				}
 
-				if (reviseColumnSpanTop(stepIndex, true))
+				const ColumnSpanRevision revision = reviseColumnSpanTop(stepIndex, true,
+					current.currentLogicalColumn(), qMax(current.yPos, maxYDesc));
+				if (revision != ColumnSpanRevision::Resolved)
 				{
+					if (revision == ColumnSpanRevision::Failed)
+					{
+						m_columnSpanLayoutFallback = true;
+						m_columnSpanLayoutSteps.clear();
+					}
 					restartColumnSpanLayout();
 					if (ownsColumnSpanLayout)
-						clearColumnSpanLayout();
+						finishColumnSpanLayout();
 					return;
 				}
 
@@ -1610,21 +1632,35 @@
 				current.recalculateY = true;
 				lastLineY = current.yPos;
 				activeSpanStart = a;
+				activeSpanRequiredBottom = -1.0;
 				linesAtSpanStart = textLayout.lines();
 			}
 			else if (current.isEmpty && atParagraphStart && !wantsColumnSpan && current.isSpanRegion())
 			{
 				const int stepIndex = columnSpanLayoutStep(current.currentBandStoryStart());
-				if (stepIndex >= 0 && m_columnSpanLayoutSteps.at(stepIndex).spanBottom < 0.0)
+				if (stepIndex >= 0
+					&& (m_columnSpanLayoutSteps.at(stepIndex).spanBottom < 0.0
+						|| m_columnSpanLayoutSteps.at(stepIndex).bottomNeedsValidation))
 				{
 					const ParagraphStyle spanStyle = itemText.paragraphStyle(a - 1);
-					double spanBottom = qMax(qMax(current.yPos, textLayout.box()->naturalHeight()), maxYDesc)
+					double spanBottom = qMax(qMax(qMax(current.yPos, textLayout.box()->naturalHeight()), maxYDesc),
+						activeSpanRequiredBottom)
 						+ spanStyle.spanSpaceAfter() + style.gapBefore();
-					m_columnSpanLayoutSteps[stepIndex].spanBottom = qMin(spanBottom, current.currentFlowBottom());
-					restartColumnSpanLayout();
-					if (ownsColumnSpanLayout)
-						clearColumnSpanLayout();
-					return;
+					ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[stepIndex];
+					spanBottom = qMin(spanBottom, step.segmentFlowBottom);
+					const bool planHasFollowingBand = step.spanBottom >= 0.0;
+					const bool geometryChanged = !planHasFollowingBand
+						|| qAbs(step.spanBottom - spanBottom) > 0.001;
+					step.storyEnd = a;
+					step.bottomNeedsValidation = false;
+					if (geometryChanged)
+					{
+						setColumnSpanBottom(stepIndex, spanBottom);
+						restartColumnSpanLayout();
+						if (ownsColumnSpanLayout)
+							finishColumnSpanLayout();
+						return;
+					}
 				}
 
 				if (!current.moveToNextBand(TextFlowBandKind::Columns, textLayout))
@@ -1639,6 +1675,7 @@
 				current.recalculateY = true;
 				lastLineY = current.yPos;
 				activeSpanStart = -1;
+				activeSpanRequiredBottom = -1.0;
 			}
 
 			if (current.isEmpty)
@@ -2087,6 +2124,11 @@
 				maxYAsc = qMax(0.0, qMin(maxYAsc, current.yPos - asce));
 				maxYDesc = current.yPos + desc;
 			}
+			if (current.isSpanRegion())
+			{
+				const double spanLineBottom = qMax(maxYDesc, current.yPos + realDesc);
+				activeSpanRequiredBottom = qMax(activeSpanRequiredBottom, spanLineBottom);
+			}
 
 			regionMinY = static_cast<int>(floor(maxYAsc));
 			regionMaxY = static_cast<int>(floor(maxYDesc));
@@ -2171,6 +2210,11 @@
 							maxYAsc = qMax(0.0, qMin(maxYAsc, current.yPos - asce));
 							maxYDesc = current.yPos + desc;
 						}
+						if (current.isSpanRegion())
+						{
+							const double spanLineBottom = qMax(maxYDesc, current.yPos + realDesc);
+							activeSpanRequiredBottom = qMax(activeSpanRequiredBottom, spanLineBottom);
+						}
 
 						regionMinY = static_cast<int>(floor(maxYAsc));
 						regionMaxY = static_cast<int>(floor(maxYDesc));
@@ -2182,18 +2223,36 @@
 					{
 						if (current.nextRegionLeavesSpan())
 						{
+							const int stepIndex = columnSpanLayoutStep(current.currentBandStoryStart());
+							if (stepIndex >= 0
+								&& m_columnSpanLayoutSteps.at(stepIndex).bottomNeedsValidation
+								&& m_columnSpanLayoutSteps.at(stepIndex).spanBottom < m_height - 0.25)
+							{
+								setColumnSpanBottom(stepIndex, m_height);
+								restartColumnSpanLayout();
+								if (ownsColumnSpanLayout)
+									finishColumnSpanLayout();
+								return;
+							}
 							m_maxChars = a;
 							goto NoRoom;
 						}
 						if (current.nextRegionIsReserved(a))
 						{
 							const int stepIndex = columnSpanLayoutStep(current.regions.at(current.regionIndex + 1).storyStart);
-							if (stepIndex >= 0)
-								reviseColumnSpanTop(stepIndex, false);
-							restartColumnSpanLayout();
-							if (ownsColumnSpanLayout)
-								clearColumnSpanLayout();
-							return;
+							const ColumnSpanRevision revision = reviseColumnSpanTop(stepIndex, false);
+							if (revision == ColumnSpanRevision::Failed)
+							{
+								m_columnSpanLayoutFallback = true;
+								m_columnSpanLayoutSteps.clear();
+							}
+							if (revision != ColumnSpanRevision::Resolved)
+							{
+								restartColumnSpanLayout();
+								if (ownsColumnSpanLayout)
+									finishColumnSpanLayout();
+								return;
+							}
 						}
 						current.regionIndex++;
 						if (current.hasCurrentRegion())
@@ -3060,18 +3119,36 @@
 					goNextColumn = false;
 					if (current.nextRegionLeavesSpan())
 					{
+						const int stepIndex = columnSpanLayoutStep(current.currentBandStoryStart());
+						if (stepIndex >= 0
+							&& m_columnSpanLayoutSteps.at(stepIndex).bottomNeedsValidation
+							&& m_columnSpanLayoutSteps.at(stepIndex).spanBottom < m_height - 0.25)
+						{
+							setColumnSpanBottom(stepIndex, m_height);
+							restartColumnSpanLayout();
+							if (ownsColumnSpanLayout)
+								finishColumnSpanLayout();
+							return;
+						}
 						m_maxChars = a;
 						goto NoRoom;
 					}
 					if (current.nextRegionIsReserved(a))
 					{
 						const int stepIndex = columnSpanLayoutStep(current.regions.at(current.regionIndex + 1).storyStart);
-						if (stepIndex >= 0)
-							reviseColumnSpanTop(stepIndex, false);
-						restartColumnSpanLayout();
-						if (ownsColumnSpanLayout)
-							clearColumnSpanLayout();
-						return;
+						const ColumnSpanRevision revision = reviseColumnSpanTop(stepIndex, false);
+						if (revision == ColumnSpanRevision::Failed)
+						{
+							m_columnSpanLayoutFallback = true;
+							m_columnSpanLayoutSteps.clear();
+						}
+						if (revision != ColumnSpanRevision::Resolved)
+						{
+							restartColumnSpanLayout();
+							if (ownsColumnSpanLayout)
+								finishColumnSpanLayout();
+							return;
+						}
 					}
 					current.regionIndex++;
 					if (current.hasCurrentRegion())
@@ -3189,6 +3266,11 @@
 				maxYAsc = qMax(0.0, qMin(maxYAsc, current.yPos - asce));
 				maxYDesc = current.yPos + desc;
 			}
+			if (current.isSpanRegion())
+			{
+				const double spanLineBottom = qMax(maxYDesc, current.yPos + realDesc);
+				activeSpanRequiredBottom = qMax(activeSpanRequiredBottom, spanLineBottom);
+			}
 
 			regionMinY = static_cast<int>(floor(maxYAsc));
 			regionMaxY = static_cast<int>(floor(maxYDesc));
@@ -3251,6 +3330,7 @@
 			current.startOfCol = false;
 
 			if (moveLinesFromPreviousFrame ()) {
+				clearColumnSpanCache();
 				clearColumnSpanLayout();
 				layout ();  // line moving ensures that this won't be an endless loop
 				itemText.blockSignals(false);
@@ -3274,6 +3354,7 @@
 				double topDist = m_textDistanceMargins.top();
 				m_textDistanceMargins.setTop(topDist + hAdjust);
 				verticalAlign = 0;
+				clearColumnSpanCache();
 				clearColumnSpanLayout();
 				layout();
 				verticalAlign = vertAlign;
@@ -3296,16 +3377,20 @@
 	if (m_nextBox != nullptr)
 	{
 		PageItem_TextFrame * nextFrame = dynamic_cast<PageItem_TextFrame*>(m_nextBox);
+		bool directNextFrame = true;
 		while (nextFrame)
 		{
+			if (!directNextFrame || nextFrame->firstChar != m_maxChars)
+				nextFrame->clearColumnSpanCache();
 			nextFrame->invalid   = true;
 			nextFrame->firstChar = m_maxChars;
 			nextFrame = dynamic_cast<PageItem_TextFrame*>(nextFrame->m_nextBox);
+			directNextFrame = false;
 		}
 	}
 	itemText.blockSignals(false);
 	if (ownsColumnSpanLayout)
-		clearColumnSpanLayout();
+		finishColumnSpanLayout();
 //	qDebug("textframe: len=%d, done relayout", itemText.length());
 	return;
 
@@ -3331,6 +3416,7 @@
 				double topDist = m_textDistanceMargins.top();
 				m_textDistanceMargins.setTop(topDist + hAdjust);
 				verticalAlign = 0;
+				clearColumnSpanCache();
 				clearColumnSpanLayout();
 				layout();
 				verticalAlign = vertAlign;
@@ -3360,34 +3446,43 @@
 			if (m_Doc->appMode == modeEdit)
 				next->itemText.setCursorPosition( qMax(nCP, signed(m_maxChars)) );
 		}
+		bool directNextFrame = true;
 		while (next)
 		{
+			if (!directNextFrame || next->firstChar != m_maxChars)
+				next->clearColumnSpanCache();
 			next->invalid   = true;
 			next->firstChar = m_maxChars;
 			next = dynamic_cast<PageItem_TextFrame*>(next->m_nextBox);
+			directNextFrame = false;
 		}
 	}
 //	qDebug("textframe: len=%d, done relayout (no room %d)", itemText.length(), MaxChars);
 	itemText.blockSignals(false);
 	if (ownsColumnSpanLayout)
-		clearColumnSpanLayout();
+		finishColumnSpanLayout();
 }
 
 void PageItem_TextFrame::invalidateLayout(bool wholeChain)
 {
 	//const bool wholeChain = true;
+	clearColumnSpanCache();
 	invalid = true;
 	if (wholeChain)
 	{
 		PageItem *prevFrame = this->prevInChain();
 		while (prevFrame != nullptr)
 		{
+			if (PageItem_TextFrame* textFrame = dynamic_cast<PageItem_TextFrame*>(prevFrame))
+				textFrame->clearColumnSpanCache();
 			prevFrame->invalid = true;
 			prevFrame = prevFrame->prevInChain();
 		}
 		PageItem *nextFrame = this->nextInChain();
 		while (nextFrame != nullptr)
 		{
+			if (PageItem_TextFrame* textFrame = dynamic_cast<PageItem_TextFrame*>(nextFrame))
+				textFrame->clearColumnSpanCache();
 			nextFrame->invalid = true;
 			nextFrame = nextFrame->nextInChain();
 		}
@@ -3400,8 +3501,9 @@
 	slotInvalidateLayout(firstChar, storyLen);
 }
 
-void PageItem_TextFrame::slotInvalidateLayout(int firstItem, int /*endItem*/)
+void PageItem_TextFrame::slotInvalidateLayout(int firstItem, int endItem)
 {
+	pruneColumnSpanCache(firstItem, endItem);
 	PageItem* firstFrame = firstInChain();
 	firstItem = itemText.prevParagraph(firstItem);
 
@@ -5507,11 +5609,11 @@
 			if (step.storyStart > firstInFrame() && itemText.isBlockStart(step.storyStart))
 				spanFlowTop += spanStyle.gapBefore();
 		}
-		const double spanBottom = step.spanBottom >= 0.0 ? step.spanBottom : m_height;
+		const double spanBottom = step.spanBottom >= 0.0 ? qMin(step.spanBottom, m_height) : m_height;
 		plan.bands.append(spanBand(step.storyStart, step.spanTop, spanBottom, spanFlowTop,
-			step.spanBottom >= 0.0 ? step.spanBottom : contentBottom));
+			step.spanBottom >= 0.0 ? spanBottom : contentBottom));
 
-		if (step.spanBottom < 0.0)
+		if (step.spanBottom < 0.0 || step.spanBottom >= m_height)
 			return plan;
 	}
 
@@ -5531,25 +5633,445 @@
 	return -1;
 }
 
-bool PageItem_TextFrame::reviseColumnSpanTop(int stepIndex, bool prefixFits)
+PageItem_TextFrame::ColumnSpanRevision PageItem_TextFrame::reviseColumnSpanTop(int stepIndex, bool prefixFits,
+	int logicalColumn, double usedBottom)
 {
 	if (stepIndex < 0 || stepIndex >= m_columnSpanLayoutSteps.size())
-		return false;
+		return ColumnSpanRevision::Failed;
 
 	ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[stepIndex];
+	auto rememberPrefix = [&]()
+	{
+		if (!prefixFits || logicalColumn < 0)
+			return;
+		step.prefixLogicalColumn = logicalColumn;
+		step.prefixSlack = step.spanTop - usedBottom;
+		step.prefixFingerprintValid = true;
+	};
+	if (step.topState == ColumnSpanLayoutStep::TopState::Settled)
+	{
+		if (prefixFits)
+		{
+			rememberPrefix();
+			return ColumnSpanRevision::Resolved;
+		}
+
+		// The cached top was reached before all prefix text fitted. Reopen only
+		// the interval below that top; a settled step must never be re-probed
+		// merely because an unrelated edit started a new layout transaction.
+		step.topState = ColumnSpanLayoutStep::TopState::Search;
+		step.low = step.spanTop;
+		step.high = step.segmentFlowBottom;
+		step.attempts = 0;
+		step.directAttempts = 0;
+		step.prefixFingerprintValid = false;
+		if (step.high - step.low <= 0.25)
+			return ColumnSpanRevision::Failed;
+		setColumnSpanTop(stepIndex, (step.low + step.high) / 2.0);
+		return ColumnSpanRevision::Retry;
+	}
+	if (step.topState == ColumnSpanLayoutStep::TopState::Validate)
+	{
+		const double observedSlack = step.spanTop - usedBottom;
+		if (prefixFits && step.prefixFingerprintValid
+			&& logicalColumn == step.prefixLogicalColumn
+			&& qAbs(observedSlack - step.prefixSlack) <= 0.25)
+		{
+			// The cached span boundary reproduced the same terminal column and
+			// vertical slack. Its prefix geometry is unchanged, so do not search
+			// through otherwise legitimate end-of-column whitespace again.
+			step.low = step.spanTop;
+			step.high = step.spanTop;
+			step.attempts = 0;
+			step.directAttempts = 0;
+			step.topState = ColumnSpanLayoutStep::TopState::Settled;
+			rememberPrefix();
+			return ColumnSpanRevision::Resolved;
+		}
+
+		step.topState = ColumnSpanLayoutStep::TopState::Search;
+		step.low = step.segmentTop;
+		step.high = step.segmentFlowBottom;
+		step.attempts = 0;
+		step.directAttempts = 0;
+		step.prefixFingerprintValid = false;
+	}
+
+	const double previousTop = step.spanTop;
 	if (prefixFits)
 		step.high = qMin(step.high, step.spanTop);
 	else
 		step.low = qMax(step.low, step.spanTop);
 	++step.attempts;
 
-	const bool converged = (step.high - step.low <= 0.25) || (step.attempts >= 16);
-	const double nextTop = converged ? step.high : (step.low + step.high) / 2.0;
-	const bool needsRetry = !prefixFits || !converged;
-	step.spanTop = nextTop;
-	if (converged)
+	const double remaining = step.high - step.low;
+	if (prefixFits)
+	{
+		const int columnCount = static_cast<int>(columnGeometry().size());
+		const int lastColumn = columnCount - 1;
+		const double fittedBottom = qBound(step.low, usedBottom, step.high);
+		const double slack = qMax(0.0, step.spanTop - fittedBottom);
+		if (logicalColumn >= lastColumn && slack <= 0.25)
+		{
+			step.low = step.high;
+			setColumnSpanTop(stepIndex, step.high);
+			m_columnSpanLayoutSteps[stepIndex].topState = ColumnSpanLayoutStep::TopState::Settled;
+			rememberPrefix();
+			return ColumnSpanRevision::Resolved;
+		}
+
+		if (remaining > 0.25 && logicalColumn >= 0 && step.directAttempts < 4)
+		{
+			// Use measured occupancy for the first probes. Binary bisection below
+			// remains the fallback for exclusions and other irregular geometry.
+			double nextTop = fittedBottom;
+			if (logicalColumn < lastColumn && columnCount > 0)
+			{
+				const double probeHeight = qMax(0.01, step.spanTop - step.segmentFlowTop);
+				const double usedHeight = logicalColumn * probeHeight
+					+ qMax(0.0, fittedBottom - step.segmentFlowTop);
+				nextTop = step.segmentTop + usedHeight / columnCount;
+			}
+			nextTop = qBound(step.low + 0.25, nextTop, step.high);
+			if (nextTop < step.spanTop - 0.01)
+			{
+				setColumnSpanTop(stepIndex, nextTop);
+				++step.directAttempts;
+				return ColumnSpanRevision::Retry;
+			}
+		}
+	}
+
+	if (remaining <= 0.25)
+	{
 		step.low = step.high;
-	return needsRetry;
+		setColumnSpanTop(stepIndex, step.high);
+		if (prefixFits)
+		{
+			m_columnSpanLayoutSteps[stepIndex].topState = ColumnSpanLayoutStep::TopState::Settled;
+			rememberPrefix();
+			return ColumnSpanRevision::Resolved;
+		}
+		return qAbs(previousTop - step.high) > 0.01
+			? ColumnSpanRevision::Retry : ColumnSpanRevision::Failed;
+	}
+
+	if (step.attempts >= 16)
+	{
+		setColumnSpanTop(stepIndex, step.high);
+		if (prefixFits)
+		{
+			step.low = step.high;
+			m_columnSpanLayoutSteps[stepIndex].topState = ColumnSpanLayoutStep::TopState::Settled;
+			rememberPrefix();
+			return ColumnSpanRevision::Resolved;
+		}
+		return qAbs(previousTop - step.high) > 0.01
+			? ColumnSpanRevision::Retry : ColumnSpanRevision::Failed;
+	}
+
+	setColumnSpanTop(stepIndex, (step.low + step.high) / 2.0);
+	return ColumnSpanRevision::Retry;
+}
+
+void PageItem_TextFrame::setColumnSpanTop(int stepIndex, double spanTop)
+{
+	if (stepIndex < 0 || stepIndex >= m_columnSpanLayoutSteps.size())
+		return;
+	ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[stepIndex];
+	spanTop = qBound(step.segmentTop, spanTop, step.segmentFlowBottom);
+	const double delta = spanTop - step.spanTop;
+	if (qAbs(delta) <= 0.001)
+		return;
+	step.spanTop = spanTop;
+	if (step.spanHeight >= 0.0)
+	{
+		step.spanBottom = step.spanTop + step.spanHeight;
+		step.bottomNeedsValidation = true;
+	}
+	translateColumnSpanSteps(stepIndex + 1, delta);
+}
+
+void PageItem_TextFrame::setColumnSpanBottom(int stepIndex, double spanBottom)
+{
+	if (stepIndex < 0 || stepIndex >= m_columnSpanLayoutSteps.size())
+		return;
+	ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[stepIndex];
+	spanBottom = qBound(step.spanTop, spanBottom, m_height);
+	const double oldBottom = step.spanBottom;
+	step.spanBottom = spanBottom;
+	step.spanHeight = spanBottom - step.spanTop;
+	if (oldBottom >= 0.0)
+		translateColumnSpanSteps(stepIndex + 1, spanBottom - oldBottom);
+}
+
+void PageItem_TextFrame::translateColumnSpanSteps(int firstStep, double delta)
+{
+	if (qAbs(delta) <= 0.001)
+		return;
+	for (int i = qMax(0, firstStep); i < m_columnSpanLayoutSteps.size(); ++i)
+	{
+		ColumnSpanLayoutStep& step = m_columnSpanLayoutSteps[i];
+		step.segmentTop += delta;
+		step.segmentFlowTop += delta;
+		step.spanTop += delta;
+		if (step.spanHeight >= 0.0)
+		{
+			step.spanBottom = step.spanTop + step.spanHeight;
+			step.bottomNeedsValidation = true;
+		}
+		step.low = step.segmentTop;
+		step.high = step.segmentFlowBottom;
+		step.attempts = 0;
+		step.directAttempts = 0;
+		step.topState = ColumnSpanLayoutStep::TopState::Validate;
+	}
+}
+
+bool PageItem_TextFrame::columnSpanStepMatchesStory(const ColumnSpanLayoutStep& step) const
+{
+	const int storyLength = itemText.length();
+	if (step.storyStart < firstInFrame() || step.storyStart >= storyLength)
+		return false;
+	if (!step.continuation && !itemText.isBlockStart(step.storyStart))
+		return false;
+	if (itemText.paragraphStyle(step.storyStart).paragraphLayout()
+		!= ParagraphStyle::ParagraphLayoutSpanColumns)
+	{
+		return false;
+	}
+	if (step.storyEnd < 0 || step.storyEnd > storyLength || step.storyEnd <= step.storyStart)
+		return false;
+
+	int paragraphStart = step.storyStart;
+	while (paragraphStart < step.storyEnd)
+	{
+		if (itemText.paragraphStyle(paragraphStart).paragraphLayout()
+			!= ParagraphStyle::ParagraphLayoutSpanColumns)
+		{
+			return false;
+		}
+		const int nextStart = itemText.nextParagraph(paragraphStart) + 1;
+		if (nextStart <= paragraphStart)
+			return false;
+		paragraphStart = nextStart;
+	}
+	if (paragraphStart != step.storyEnd)
+		return false;
+	return step.storyEnd == storyLength
+		|| itemText.paragraphStyle(step.storyEnd).paragraphLayout()
+			!= ParagraphStyle::ParagraphLayoutSpanColumns;
+}
+
+bool PageItem_TextFrame::columnSpanCacheMatchesGeometry() const
+{
+	if (m_columnSpanCachedSteps.isEmpty())
+		return true;
+	if (m_columnSpanCachedStoryLength != itemText.length()
+		|| m_columnSpanCachedAvailableRegion != m_availableRegion)
+	{
+		return false;
+	}
+
+	const QVector<TextFlowRegion> regions = initialFlowPlan().regions();
+	if (regions.size() != m_columnSpanCachedRegions.size())
+		return false;
+	for (int i = 0; i < regions.size(); ++i)
+	{
+		const TextFlowRegion& current = regions.at(i);
+		const TextFlowRegion& cached = m_columnSpanCachedRegions.at(i);
+		if (current.bandKind != cached.bandKind
+			|| current.logicalColumn != cached.logicalColumn
+			|| current.bounds != cached.bounds
+			|| qAbs(current.flowTop - cached.flowTop) > 0.001
+			|| qAbs(current.flowBottom - cached.flowBottom) > 0.001)
+		{
+			return false;
+		}
+	}
+
+	for (const ColumnSpanLayoutStep& step : m_columnSpanCachedSteps)
+	{
+		if (!columnSpanStepMatchesStory(step))
+			return false;
+	}
+	return true;
+}
+
+void PageItem_TextFrame::pruneColumnSpanCache(int firstItem, int endItem)
+{
+	if (m_columnSpanCachedSteps.isEmpty())
+		return;
+
+	const int storyLength = itemText.length();
+	const int lengthDelta = m_columnSpanCachedStoryLength >= 0
+		? storyLength - m_columnSpanCachedStoryLength : 0;
+	const bool wholeStoryInvalidated = firstItem <= 0 && endItem >= storyLength
+		&& m_columnSpanCachedStoryLength == storyLength;
+	const int changedAt = qBound(0, firstItem, storyLength);
+	int paragraphStart = changedAt;
+	while (paragraphStart > 0 && !itemText.isBlockStart(paragraphStart))
+		--paragraphStart;
+
+	int dirtySpan = -1;
+	int validateFrom = m_columnSpanCachedSteps.size();
+	for (int i = 0; i < m_columnSpanCachedSteps.size(); ++i)
+	{
+		ColumnSpanLayoutStep& step = m_columnSpanCachedSteps[i];
+		const int oldStart = step.storyStart;
+		const int oldEnd = step.storyEnd;
+		if (oldStart <= changedAt && changedAt < oldEnd)
+		{
+			dirtySpan = i;
+			validateFrom = qMin(validateFrom, i + 1);
+		}
+		else if (changedAt < oldStart)
+			validateFrom = qMin(validateFrom, i);
+
+		if (step.storyStart > changedAt)
+			step.storyStart += lengthDelta;
+		if (step.storyEnd > changedAt)
+			step.storyEnd += lengthDelta;
+		step.attempts = 0;
+		step.directAttempts = 0;
+	}
+
+	int validCount = 0;
+	while (validCount < m_columnSpanCachedSteps.size()
+		&& columnSpanStepMatchesStory(m_columnSpanCachedSteps.at(validCount)))
+	{
+		++validCount;
+	}
+	if (validCount < m_columnSpanCachedSteps.size())
+		m_columnSpanCachedSteps.resize(validCount);
+	if (dirtySpan >= m_columnSpanCachedSteps.size())
+		dirtySpan = -1;
+	validateFrom = qMin(validateFrom, m_columnSpanCachedSteps.size());
+
+	bool paragraphCoveredBySpan = false;
+	for (const ColumnSpanLayoutStep& step : std::as_const(m_columnSpanCachedSteps))
+	{
+		if (step.storyStart <= paragraphStart && paragraphStart < step.storyEnd)
+		{
+			paragraphCoveredBySpan = true;
+			break;
+		}
+	}
+	const bool changedParagraphIsSpan = paragraphStart < storyLength
+		&& itemText.paragraphStyle(paragraphStart).paragraphLayout()
+			== ParagraphStyle::ParagraphLayoutSpanColumns;
+	if (changedParagraphIsSpan && !paragraphCoveredBySpan)
+	{
+		int firstLaterStep = 0;
+		while (firstLaterStep < m_columnSpanCachedSteps.size()
+			&& m_columnSpanCachedSteps.at(firstLaterStep).storyStart < paragraphStart)
+		{
+			++firstLaterStep;
+		}
+		m_columnSpanCachedSteps.resize(firstLaterStep);
+		validateFrom = qMin(validateFrom, firstLaterStep);
+	}
+
+	const int paragraphEnd = storyLength > 0
+		? itemText.nextParagraph(qMin(changedAt, storyLength - 1)) : 0;
+	const bool paragraphMayHaveChanged = m_columnSpanCachedStoryLength == storyLength
+		&& endItem >= paragraphEnd;
+	if (paragraphMayHaveChanged)
+	{
+		// A span band's bottom includes the following paragraph's gap-before.
+		// Remeasure it when that following paragraph's style may have changed.
+		for (int i = 0; i < m_columnSpanCachedSteps.size(); ++i)
+		{
+			ColumnSpanLayoutStep& step = m_columnSpanCachedSteps[i];
+			if (step.storyEnd == paragraphStart)
+			{
+				step.bottomNeedsValidation = true;
+				validateFrom = qMin(validateFrom, i + 1);
+				break;
+			}
+		}
+	}
+
+	if (dirtySpan >= 0)
+	{
+		ColumnSpanLayoutStep& dirtyStep = m_columnSpanCachedSteps[dirtySpan];
+		dirtyStep.low = dirtyStep.spanTop;
+		dirtyStep.high = dirtyStep.spanTop;
+		dirtyStep.topState = ColumnSpanLayoutStep::TopState::Settled;
+		dirtyStep.bottomNeedsValidation = true;
+		dirtyStep.attempts = 0;
+		dirtyStep.directAttempts = 0;
+	}
+
+	if (wholeStoryInvalidated)
+	{
+		// Named-style changes invalidate StoryText as one full range. Every
+		// cached span may therefore have a different height or spacing even
+		// though its story positions and the frame geometry are unchanged.
+		validateFrom = 0;
+		for (ColumnSpanLayoutStep& step : m_columnSpanCachedSteps)
+			step.bottomNeedsValidation = true;
+	}
+
+	for (int i = validateFrom; i < m_columnSpanCachedSteps.size(); ++i)
+	{
+		ColumnSpanLayoutStep& step = m_columnSpanCachedSteps[i];
+		step.low = step.segmentTop;
+		step.high = step.segmentFlowBottom;
+		step.topState = ColumnSpanLayoutStep::TopState::Validate;
+		step.attempts = 0;
+		step.directAttempts = 0;
+	}
+	m_columnSpanCachedStoryLength = storyLength;
+}
+
+void PageItem_TextFrame::clearColumnSpanCache()
+{
+	m_columnSpanCachedSteps.clear();
+	m_columnSpanCachedRegions.clear();
+	m_columnSpanCachedAvailableRegion = QRegion();
+	m_columnSpanCachedStoryLength = -1;
+}
+
+void PageItem_TextFrame::finishColumnSpanLayout()
+{
+	if (m_columnSpanLayoutFallback)
+	{
+		clearColumnSpanCache();
+	}
+	else
+	{
+		QVector<ColumnSpanLayoutStep> completedSteps;
+		completedSteps.reserve(m_columnSpanLayoutSteps.size());
+		for (ColumnSpanLayoutStep step : std::as_const(m_columnSpanLayoutSteps))
+		{
+			if (step.spanBottom < 0.0 || step.spanHeight < 0.0 || step.storyEnd < 0
+				|| step.topState != ColumnSpanLayoutStep::TopState::Settled
+				|| step.bottomNeedsValidation)
+			{
+				break;
+			}
+			step.low = step.spanTop;
+			step.high = step.spanTop;
+			step.attempts = 0;
+			step.directAttempts = 0;
+			step.topState = ColumnSpanLayoutStep::TopState::Settled;
+			completedSteps.append(step);
+		}
+
+		if (completedSteps.isEmpty())
+		{
+			clearColumnSpanCache();
+		}
+		else
+		{
+			m_columnSpanCachedSteps = completedSteps;
+			m_columnSpanCachedRegions = initialFlowPlan().regions();
+			m_columnSpanCachedAvailableRegion = m_availableRegion;
+			m_columnSpanCachedStoryLength = itemText.length();
+		}
+	}
+	clearColumnSpanLayout();
 }
 
 void PageItem_TextFrame::clearColumnSpanLayout()
Index: scribus/pageitem_textframe.h
===================================================================
--- scribus/pageitem_textframe.h	(revision 27859)
+++ scribus/pageitem_textframe.h	(working copy)
@@ -24,6 +24,7 @@
 
 #include <QHash>
 #include <QRectF>
+#include <QRegion>
 #include <QString>
 #include <QKeyEvent>
 
@@ -157,22 +158,59 @@
 	struct ColumnSpanLayoutStep
 	{
 		int storyStart { -1 };
+		int storyEnd { -1 };
 		bool continuation { false };
 		double segmentTop { 0.0 };
 		double segmentFlowTop { 0.0 };
+		double segmentFlowBottom { 0.0 };
 		double low { 0.0 };
 		double high { 0.0 };
 		double spanTop { 0.0 };
 		double spanBottom { -1.0 };
+		double spanHeight { -1.0 };
 		int attempts { 0 };
+		int directAttempts { 0 };
+		int prefixLogicalColumn { -1 };
+		double prefixSlack { 0.0 };
+		bool prefixFingerprintValid { false };
+		enum class TopState
+		{
+			Settled,
+			Validate,
+			Search
+		};
+		TopState topState { TopState::Search };
+		bool bottomNeedsValidation { false };
+	};
+
+	enum class ColumnSpanRevision
+	{
+		Resolved,
+		Retry,
+		Failed
 	};
 
 	bool m_columnSpanLayoutActive { false };
 	bool m_columnSpanLayoutFallback { false };
 	int m_columnSpanLayoutRetries { 0 };
 	QVector<ColumnSpanLayoutStep> m_columnSpanLayoutSteps;
+	// Completed bands from the last layout remain in the active flow plan.
+	// Story invalidation marks affected geometry for validation in place.
+	QVector<ColumnSpanLayoutStep> m_columnSpanCachedSteps;
+	QVector<TextFlowRegion> m_columnSpanCachedRegions;
+	QRegion m_columnSpanCachedAvailableRegion;
+	int m_columnSpanCachedStoryLength { -1 };
 	int columnSpanLayoutStep(int storyStart) const;
-	bool reviseColumnSpanTop(int stepIndex, bool prefixFits);
+	ColumnSpanRevision reviseColumnSpanTop(int stepIndex, bool prefixFits, int logicalColumn = -1,
+		double usedBottom = 0.0);
+	void setColumnSpanTop(int stepIndex, double spanTop);
+	void setColumnSpanBottom(int stepIndex, double spanBottom);
+	void translateColumnSpanSteps(int firstStep, double delta);
+	bool columnSpanStepMatchesStory(const ColumnSpanLayoutStep& step) const;
+	bool columnSpanCacheMatchesGeometry() const;
+	void pruneColumnSpanCache(int firstItem, int endItem);
+	void clearColumnSpanCache();
+	void finishColumnSpanLayout();
 	void clearColumnSpanLayout();
 
 	bool cursorBiasBackward {false};

buttar

2026-09-23 05:17

reporter   ~0054485

Currently, the span options are 'All Columns' and 'None' (which is default). Here are some screenshot that show it in action with the UI.
sm-para-flow-group-PROPOSED.png (374,886 bytes)   
sm-para-flow-group-PROPOSED.png (374,886 bytes)   
span-column-editing-PROPOSED.png (184,808 bytes)   
span-column-editing-PROPOSED.png (184,808 bytes)   
span-column-preview-PROPOSED.png (179,338 bytes)   
span-column-preview-PROPOSED.png (179,338 bytes)   

buttar

2026-09-23 09:55

reporter   ~0054486

Here is one more screenshot, and a sample test .sla.

Also, since there is no relationship/duplicate mentioned, let me leave this as a reminder that when (whenever) this is closed, close 0002039 as well.
column-span-test.sla (34,668 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<SCRIBUSUTF8NEW Version="1.7.4.svn">
    <Document PageCount="6" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" MarginPreset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" PageOrientation="0" PageSize="A4" FirstPageNumber="1" PagePositioning="1" BindingDirection="0" IsRTL="0" AutomaticTextFrameColumnCount="1" AutomaticTextFrameColumnGap="11" UnitIndex="2" FontFace="Arial Regular" FontSize="12" TextColumnCount="1" TextColumnGap="0" TabFillCharacter="" TabWidth="36" TextDistanceLeft="0" TextDistanceRight="0" TextDistanceBottom="0" TextDistanceTop="0" FirstLineOffset="1" DocumentInfoAuthor="" DocumentInfoComments="" DocumentInfoKeywords="" DocumentInfoPublisher="" DocumentInfoDate="" DocumentInfoType="" DocumentInfoFormat="" DocumentInfoIdentifier="" DocumentInfoSource="" DocumentInfoLanguage="" DocumentInfoRelation="" DocumentInfoCoverage="" DocumentInfoRights="" DocumentInfoContributors="" DocumentInfoTitle="" DocumentInfoSubject="" SuperScriptDisplacement="33" SuperScriptScaling="66" SubScriptDisplacement="33" SubScriptScaling="66" SmallCapsScaling="75" BaselineGridSpacing="14.4" BaselineGridOffset="0" AutoLineSpacingPct="100" UnderlinePosition="-1" UnderlineWidth="-1" StrikeThruPosition="-1" StrikeThruWidth="-1" GroupCounter="1" DocumentHasCMS="0" SoftProofOn="0" SoftProofFullOn="0" ColorManagementActive="0" GamutCheck="0" BlackPoint="1" DefaultPrinterProfile="ISO Coated v2 300% (basICColor)" DefaultImageRGBProfile="sRGB display profile (ICC v2.2)" DefaultImageCMYKProfile="ISO Coated v2 300% (basICColor)" DefaultSolidColorRGBProfile="sRGB display profile (ICC v2.2)" DefaultSolidColorCMYKProfile="ISO Coated v2 300% (basICColor)" DefaultIntentColors="1" DefaultIntentImages="0" ActiveLayer="0" Language="en_GB" AutomaticHyphenation="1" AutomaticHyphenationCheck="0" GuideLock="0" SnapToGuides="1" SnapToGrid="0" SnapToItems="0" MinorGridSpacing="20.002" MajorGridSpacing="100.001" ShowGrid="0" ShowGuides="1" ShowColumnBorders="1" ShowFrames="1" ShowControls="0" ShowTableCellFrames="0" ShowLayerMarkers="0" ShowMargins="1" ShowBaselineGrid="0" ShowImages="1" ShowLinks="0" RulerMode="1" ShowRulers="1" ShowBleed="1" RulerXOffset="0" RulerYOffset="0" GuideRadius="10" GrabRadius="4" PolygonCorners="4" PolygonFactor="0.502" PolygonRotation="0" PolygonInnerRotation="0" PolygonCurvature="0" PolygonOuterCurvature="0" PolygonUseFactor="0" ArcStartAngle="30" ArcSweepAngle="300" SpiralStartAngle="0" SpiralEndAngle="1080" SpiralFactor="1.2" AutoSave="0" AutoSaveTime="600000" AutoSaveCount="1" AutoSaveKeep="0" AutoSaveInDocumentDirectory="1" AutoSaveDirectory="" ScratchBottom="20.002" ScratchLeft="100.001" ScratchRight="100.001" ScratchTop="20.002" GapHorizontal="0" GapVertical="40.003" LineStartArrow="0" LineEndArrow="0" ShapeLineColor="None" ShapeFillColor="Cyan" LineColor="Black" TextColor="Black" TextStrokeColor="Black" TextBackgroundColor="None" TextLineColor="None" TextBackgroundColorShade="100" TextLineColorShade="100" TextColorShade="100" TextStrokeColorShade="100" ShapeLineStyle="1" LineStyle="1" ShapeLineWidth="1" LineWidth="1" ShapeLineColorShade="100" LineColorShade="100" ShapeFillColorShade="100" ImageFillColor="None" ImageFillColorShade="100" ImageStrokeColor="None" ImageStrokeColorShade="100" ImageScaleX="1" ImageScaleY="1" ImageScaleType="1" ImageAspectRatio="1" ImageUseEmbeddedPath="0" ImageLowResType="1" DisplayOffsetX="10.001" DisplayOffsetY="10.001" RotationConstrainAngle="15" MinorGridColor="#00ff00" MajorGridColor="#00ff00" GuidesColor="#000080" BaselineGridColor="#c0c0c0" RenderStack="2 0 4 1 3" GridType="0" PageColor="#ffffff" MarginColor="#0000ff" ShowMarginsFilled="0" CurrentProfile="PDF 1.4" CalligraphicPenFillColor="Black" CalligraphicPenLineColor="Black" CalligraphicPenFillColorShade="100" CalligraphicPenLineColorShade="100" CalligraphicPenLineWidth="1" CalligraphicPenAngle="0" CalligraphicPenWidth="10" CalligraphicPenStyle="1">
        <CheckProfile Name="PDF 1.3" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="1" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="0" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="1" CheckFontIsOpenType="1" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="0"/>
        <CheckProfile Name="PDF 1.4" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="0" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="0" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="1" CheckFontIsOpenType="1" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PDF 1.5" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="0" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="0" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="1" CheckFontIsOpenType="1" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PDF 1.6" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="0" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="0" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="1" CheckFontIsOpenType="0" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PDF/X-1a" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="1" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="1" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="1" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="1" CheckFontIsOpenType="1" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PDF/X-3" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="1" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="1" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="1" CheckFontNotEmbedded="1" CheckFontIsOpenType="1" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PDF/X-4" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="0" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="1" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="1" CheckFontNotEmbedded="1" CheckFontIsOpenType="0" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <CheckProfile Name="PostScript" IgnoreErrors="0" AutoCheck="1" CheckGlyphs="1" CheckOrphans="1" CheckOverflow="1" CheckPictures="1" CheckPartFilledImageFrames="0" CheckResolution="1" CheckTransparency="1" MinimumResolution="144" MaximumResolution="2400" CheckAnnotations="0" CheckRasterPDF="1" CheckForGIF="1" IgnoreOffLayers="0" CheckNotCMYKOrSpot="0" CheckDeviceColorsAndOutputIntent="0" CheckFontNotEmbedded="0" CheckFontIsOpenType="0" CheckAppliedMasterDifferentSide="1" CheckEmptyTextFrames="1" CheckImageHasProgressiveEncoding="1"/>
        <Color Name="Black" Space="CMYK" C="0" M="0" Y="0" K="100"/>
        <Color Name="Blue" Space="RGB" R="0" G="0" B="255"/>
        <Color Name="Cool Black" Space="CMYK" C="60" M="0" Y="0" K="100"/>
        <Color Name="Cyan" Space="CMYK" C="100" M="0" Y="0" K="0"/>
        <Color Name="Green" Space="RGB" R="0" G="255" B="0"/>
        <Color Name="Magenta" Space="CMYK" C="0" M="100" Y="0" K="0"/>
        <Color Name="Red" Space="RGB" R="255" G="0" B="0"/>
        <Color Name="Registration" Space="CMYK" C="100" M="100" Y="100" K="100" Register="1"/>
        <Color Name="Rich Black" Space="CMYK" C="60" M="40" Y="40" K="100"/>
        <Color Name="Warm Black" Space="CMYK" C="0" M="60" Y="29.8039215686275" K="100"/>
        <Color Name="White" Space="CMYK" C="0" M="0" Y="0" K="0"/>
        <Color Name="Yellow" Space="CMYK" C="0" M="0" Y="100" K="0"/>
        <Hyphenator/>
        <CharacterStyle Name="Default Character Style" DefaultStyle="1" Font="Arial Regular" FontSize="12" FontFeatures="" Features="inherit" FontColor="Black" FillShade="100" HyphenWordMinimum="3" StrokeColor="Black" BackgroundColor="None" BackgroundShade="100" StrokeShade="100" TextShadowXOffset="5" TextShadowYOffset="-5" TextOutlineWidth="1" TextUnderlineOffset="-0.1" TextUnderlineWidth="-0.1" TextStrikeThroughOffset="-0.1" TextStrikeThroughWidth="-0.1" ScaleHorizontal="100" ScaleVertical="100" BaselineOffset="0" Kerning="0" Language="en_GB"/>
        <ParagraphStyle Name="Default Paragraph Style" DefaultStyle="1" Alignment="3" Direction="0" LineSpacingMode="0" LineSpacing="16" LeftMargin="0" RightMargin="0" FirstIndent="0" GapBefore="0" GapAfter="0" ParagraphEffectOffset="0" HasDropCap="0" DropCapLines="2" Bullet="0" Numeration="0" HyphenConsecutiveLines="2" ParagraphBackgroundColor="None" ParagraphBackgroundColorShade="100" Font="League Spartan Regular" FontFeatures="-clig"/>
        <ParagraphStyle Name="Byliine" OpticalMarginSetId="preset_0" ParagraphLayout="1" SpanSpaceAfter="13.5" Features="underline" TextShadowXOffset="5" TextShadowYOffset="-5" TextOutlineWidth="1" TextUnderlineOffset="-0.1" TextUnderlineWidth="-0.1" TextStrikeThroughOffset="-0.1" TextStrikeThroughWidth="-0.1" Language="en_GB"/>
        <ParagraphStyle Name="Headline" LineSpacingMode="0" LineSpacing="30" OpticalMarginSetId="preset_0" ParagraphLayout="1" SpanSpaceAfter="18" Font="Lato Black" FontSize="30" FontFeatures="-clig" HyphenWordMinimum="3" Language="en_GB"/>
        <ParagraphStyle Name="Sub-headlines" LineSpacing="16" OpticalMarginSetId="preset_0" ParagraphLayout="1" SpanSpaceBefore="13.5" SpanSpaceAfter="9" Font="Lato Regular" FontSize="18" FontFeatures="-clig" Language="en_GB"/>
        <ParagraphStyle Name="Sub-headline Child" Parent="Sub-headlines" LineSpacing="18" GapBefore="0" GapAfter="0" SpanSpaceBefore="13.5" SpanSpaceAfter="9" Font="Cormorant Garamond Bold" FontSize="18" FontFeatures="-clig"/>
        <TableStyle Name="Default Table Style" DefaultStyle="1" FillColor="None" FillShade="100">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </TableStyle>
        <CellStyle Name="Default Cell Style" DefaultStyle="1" FillColor="None" FillShade="100" LeftPadding="1" RightPadding="1" TopPadding="1" BottomPadding="1">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </CellStyle>
        <MultiLine Name="Default Line Style">
            <SubLine Color="Black" Shade="100" Dash="1" LineEnd="0" LineJoin="0" Width="1" Shortcut=""/>
        </MultiLine>
        <Layers Number="0" Level="0" Name="Background" IsViewable="1" IsPrintable="1" IsEditable="1" IsSelectable="0" FlowControl="1" Transparency="1" BlendMode="0" OutlineMode="0" LayerColor="#000000"/>
        <Layers Number="1" Level="1" Name="Fond de page" IsViewable="1" IsPrintable="1" IsEditable="1" IsSelectable="0" FlowControl="1" Transparency="1" BlendMode="0" OutlineMode="0" LayerColor="#000000"/>
        <Printer firstUse="1" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="1" useColor="1" mirrorH="0" mirrorV="0" useICC="0" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="1" PSLevel="3" PrintEngine="3" markLength="20.0016" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="File" filename="" separationName="All" printerCommand=""/>
        <PDF firstUse="1" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" rangeSel="0" rangeTxt="" RotateDeg="0" PresentMode="0" RecalcPic="0" FontEmbedding="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB display profile (ICC v2.2)" ImageP="sRGB display profile (ICC v2.2)" PrintP="ISO Coated v2 300% (basICColor)" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markLength="20.0016" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" openAfterExport="0" PageLayout="0" openAction="">
            <LPI Color="" Frequency="0" Angle="0" SpotFunction="0"/>
            <LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
            <LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
            <LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
            <LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
        </PDF>
        <DocItemAttributes/>
        <Indexes/>
        <TablesOfContents/>
        <NotesStyles>
            <notesStyle Name="Default" Start="1" Endnotes="0" Type="Type_1_2_3" Range="0" Prefix="" Suffix=")" AutoHeight="1" AutoWidth="1" AutoRemove="1" AutoWeld="1" SuperNote="1" SuperMaster="1" MarksStyle="" NotesStyle=""/>
        </NotesStyles>
        <OpticalMarginSets>
            <Set Id="preset_0" Type="preset" Name="Default">
                <Rules>
                    <Rule Left="0" Right="0.5" Unit="7" Characters="U+003A,U+003B,U+2013,U+2033"/>
                    <Rule Left="0" Right="0.75" Unit="7" Characters="U+002C,U+002D,U+002E,U+2010,U+2032"/>
                    <Rule Left="0.25" Right="0.25" Unit="7" Characters="U+2014"/>
                    <Rule Left="0.5" Right="0" Unit="7" Characters="U+2036"/>
                    <Rule Left="0.5" Right="0.5" Unit="7" Characters="U+0022,U+0028,U+0029,U+005B,U+005D,U+00AB,U+00BB,U+201C,U+201D,U+201E,U+201F"/>
                    <Rule Left="0.75" Right="0" Unit="7" Characters="U+2035"/>
                    <Rule Left="0.75" Right="0.75" Unit="7" Characters="U+0027,U+002A,U+0060,U+007E,U+00B4,U+2018,U+2019,U+201A,U+201B,U+2039,U+203A"/>
                </Rules>
            </Set>
        </OpticalMarginSets>
        <PageSets>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
        </PageSets>
        <Sections>
            <Section Number="0" Name="Section 1" From="0" To="5" Type="Type_1_2_3" Start="1" Reversed="0" Active="1" FillChar="0" FieldWidth="0"/>
        </Sections>
        <MasterPage PageXPosition="100.001" PageYPosition="20.002" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="0" PageName="Normal Left" MasterPageName="" Size="A4" Orientation="0" LeftPage="1" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <MasterPage PageXPosition="100.001" PageYPosition="20.002" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="1" PageName="Normal Right" MasterPageName="" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="695.2754" PageYPosition="20.002" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="0" PageName="" MasterPageName="Normal Right" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="100.001" PageYPosition="901.8938" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="1" PageName="" MasterPageName="Normal Left" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="695.2754" PageYPosition="901.8938" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="2" PageName="" MasterPageName="Normal Right" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="100.001" PageYPosition="1783.7856" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="3" PageName="" MasterPageName="Normal Left" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="695.2754" PageYPosition="1783.7856" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="4" PageName="" MasterPageName="Normal Right" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <Page PageXPosition="100.001" PageYPosition="2665.6774" PageWidth="595.2744" PageHeight="841.8888" BorderLeft="40" BorderRight="40" BorderTop="40" BorderBottom="40" PageNumber="5" PageName="" MasterPageName="Normal Left" Size="A4" Orientation="0" LeftPage="0" Preset="0" VerticalGuides="" HorizontalGuides="" AutoGuideHorizontalGap="0" AutoGuideVerticalGap="0" AutoGuideHorizontalCount="0" AutoGuideVerticalCount="0" AutoGuideHorizontalReference="0" AutoGuideVerticalReference="0" AutoGuideSelection="0 0 0 0" PageEffectDuration="1" PageViewDuration="1" PageEffectType="0" PageEffectLineDirection="0" PageEffectInsideOutside="0" PageEffectDirection="0"/>
        <PageObject XPosition="140.001" YPosition="941.8938" OwnPage="1" ItemID="316152380" ItemType="4" Width="515.2744" Height="761.8888" FrameType="0" ClipEdited="0" LineWidth="1" LinePenStyle="1" ImageScaleX="1" ImageScaleY="1" ImageOffsetX="0" ImageOffsetY="0" ImageRotation="0" ImageVisible="1" ImageScaleType="1" ImageRatio="1" Columns="3" ColumnGap="13.5" AutomaticTextFrame="0" TextToFrameDistanceLeft="0" TextToFrameDistanceTop="0" TextToFrameDistanceBottom="0" TextToFrameDistanceRight="0" VerticalAlignment="0" FirstLineOffset="1" PathTextShowPath="0" PathTextDistanceFromPath="0" TextPathType="0" TextPathFlipped="0" Path="M0 0 L515.274 0 L515.274 761.889 L0 761.889 L0 0 Z" ContourLinePath="M0 0 L515.274 0 L515.274 761.889 L0 761.889 L0 0 Z" gXpos="140.001" gYpos="941.8938" gWidth="0" gHeight="0" Alignment="3" Layer="0" NextItem="2041747577" BackItem="-1">
            <StoryText>
                <DefaultStyle Alignment="3"/>
                <Content Chars="Ar­riv­ing at Vi­enna early next morn­ing; should have ar­rived at 6:46"/>
                <para Parent="Headline"/>
                <Content Chars="Byline goes here"/>
                <para Parent="Byliine"/>
                <Content Chars="Buda-Pesth seems a won­der­ful place, from the glimpse which I got of it from the train and the little I could walk through the streets. I feared to go very far from the sta­tion, as we had ar­rived late and would start as near cor­rect time as pos­sible."/>
                <para Parent="Default Paragraph Style" Alignment="3"/>
                <Content Chars="Hav­ing had some time at my dis­posal when in Lon­don, I had vis­ited the Brit­ish Mu­seum, and made search among the books and maps in the lib­rary re­gard­ing Transylvania; it had struck me that some fore­know­ledge of the coun­try could hardly fail to have some im­port­ance in deal­ing a no­ble­man of that coun­try."/>
                <para Alignment="3"/>
                <Content Chars="I read that every known su­per­sti­tion in the world is gathered into the horse­shoe of the Carpath­i­ans, as if it were the centre of some sort of ima­gin­at­ive whirl­pool; if so my stay may be very in­ter­est­ing. (Mem., I must ask Count all about them.)"/>
                <para Alignment="3"/>
                <Content Chars="I find that the dis­trict he named is in the ex­treme east of the coun­try, just on the bor­ders of three states, Transylvania, Mol­davia, and Bukov­ina, in the midst of the Carpath­ian moun­tains; one of the wild­est and least known por­tions of Europe."/>
                <para Alignment="3"/>
                <Content Chars="We left in pretty good time, and came after night­fall to Klausen­burgh. Here I stopped for the night at the Hotel Roy­ale. I had for din­ner, or rather sup­per, a chicken done up some way with red pep­per, which was very good but thirsty. (Mem. get re­cipe for Mina.) I asked the waiter, and he said it was called &quot;paprika hendl,&quot; and that, as it was a na­tional dish, I should be able to get it any­where along the Carpath­i­ans. "/>
                <para Alignment="3"/>
                <Content Chars="In the pop­u­la­tion of Transylvania there are 4 dis­tinct na­tion­al­it­ies:"/>
                <para Parent="Sub-headlines"/>
                <Content Chars="Sax­ons in the South, and mixed with them the Wal­lachs, who are the des­cend­ants of the Da­cians; Mag­yars in West, and Szekelys in the East and North. I am go­ing among the lat­ter, who claim to be des­cen­ded from At­tila and the Huns. This may be so, for when the Mag­yars conquered the coun­try in the el­ev­enth cen­tury they found Huns settled it."/>
                <para Alignment="3"/>
                <Content Chars="I did not sleep well, though my bed was com­fort­able enough, for I had all sorts of queer dreams. There was a dog howl­ing all night un­der my win­dow, which may have had some­thing to do with it; or it may have been the paprika, for I had to drink up all the wa­ter in my carafe, and was still thirsty. To­wards morn­ing I slept and was wakened by the con­tinu­ous knock­ing at my door, so I guess I must sleep­ing soundly then."/>
                <para Alignment="3"/>
                <Content Chars="We left in pretty good time, and came after night­fall to Klausen­burgh. Here I stopped for the night at the Hotel Roy­ale. I had for din­ner, or rather sup­per, a chicken done up some way with red pep­per, which was very good but thirsty. (Mem. get re­cipe for Mina.)"/>
                <para Alignment="3"/>
                <Content Chars="I asked the waiter, and he said it was called that, as it was a na­tional dish, I should be able to get it any­where along the Carpath­i­ans."/>
                <para Parent="Sub-headline Child"/>
                <Content Chars="The strangest fig­ures we saw were the Slov­aks, who were more bar­bar­ian than the rest, with their big cow-boy hats, great the a in baggy dirty-white trousers, white linen shirts, and enorm­ous heavy leather belts, nearly a foot wide, all stud­ded over with brass nails. They wore high boots, with their trousers tucked into them, and had long black hair and heavy black mous­taches. They are very pic­tur­esque, but do not look pre­pos­sess­ing. On the stage they would be set down at once as some old Ori­ental band of brig­ands. They are, how­ever, I am told, very harm­less and rather want­ing in nat­ural self-as­ser­tion."/>
                <para Alignment="3"/>
                <Content Chars="I was not able to light on any map or work giv­ing the ex­act loc­al­ity of the Castle Drac­ula, as there are no maps of this coun­try as yet to com­pare with our own Ord­ance Sur­vey Maps; but I found that Bis­tritz, the post town named by Count Drac­ula, is a fairly well-known place. I shall enter here some of my notes, as they may re­fresh my memory when I talk over my travels with Mina."/>
                <para Alignment="3"/>
                <Content Chars="I find that the dis­trict he named is in the ex­treme east of the coun­try, just on the bor­ders of three states, Transylvania, Mol­davia, and Bukov­ina, in the midst of the Carpath­ian moun­tains; one of the wild­est and least known por­tions of Europe."/>
                <para Alignment="3"/>
                <Content Chars="I read that every known su­per­sti­tion in the world is gathered into the horse­shoe of the Carpath­i­ans, as if it were the centre of some sort of ima­gin­at­ive whirl­pool; if so my stay may be very in­ter­est­ing. (Mem., I must ask the Count all about them.)"/>
                <para Alignment="3"/>
                <Content Chars="I had to hurry break­fast, for the train star­ted a little be­fore eight, or rather it ought to have done so, for after rush­ing to the sta­tion at 7:30 I had to sit in the car­riage for more than an hour be­fore we began to move."/>
                <para Alignment="3"/>
                <Content Chars="The strangest fig­ures we saw were the Slov­aks, who were more bar­bar­ian than the rest, with their big cow-boy hats, great baggy dirty-white trousers, white linen shirts, and enorm­ous heavy leather belts, nearly a foot wide, all stud­ded over with brass nails. They wore high boots, with their trousers tucked into them, and had long black hair and heavy black mous­taches. They are very pic­tur­esque, but do not look pre­pos­sess­ing. On the stage they would be set down at once as some old Ori­ental band of brig­ands. They are, how­ever, I am told, very harm­less and rather want­ing in nat­ural self-as­ser­tion."/>
                <para Alignment="3"/>
                <Content Chars="I read that every known su­per­sti­tion in the world is gathered into the horse­shoe of the Carpath­i­ans, as if it were the centre of some sort of ima­gin­at­ive whirl­pool; if so my stay may be very in­ter­est­ing. (Mem., I must ask the Count all about them.)"/>
                <para Alignment="3"/>
                <Content Chars="3 May. Bis­tritz.--Left Mu­nich at 8:35 P.M., on 1st May, ar­riv­ing at Vi­enna early next morn­ing; should have ar­rived at 6:46, but train was an hour late. Buda-Pesth seems a won­der­ful place, from the glimpse which I got of it from the train and the little I could walk through the streets. I feared to go very far from the sta­tion, as we had ar­rived late and would start as near the cor­rect time as pos­sible."/>
                <trail Alignment="3"/>
            </StoryText>
        </PageObject>
        <PageObject XPosition="735.2754" YPosition="941.8938" OwnPage="2" ItemID="2041747577" ItemType="4" Width="515.2744" Height="761.8888" FrameType="0" ClipEdited="0" LineWidth="1" LinePenStyle="1" ImageScaleX="1" ImageScaleY="1" ImageOffsetX="0" ImageOffsetY="0" ImageRotation="0" ImageVisible="1" ImageScaleType="1" ImageRatio="1" Columns="1" ColumnGap="0" AutomaticTextFrame="0" TextToFrameDistanceLeft="0" TextToFrameDistanceTop="0" TextToFrameDistanceBottom="0" TextToFrameDistanceRight="0" VerticalAlignment="0" FirstLineOffset="1" PathTextShowPath="0" PathTextDistanceFromPath="0" TextPathType="0" TextPathFlipped="0" Path="M0 0 L515.274 0 L515.274 761.889 L0 761.889 L0 0 Z" ContourLinePath="M0 0 L515.274 0 L515.274 761.889 L0 761.889 L0 0 Z" gXpos="735.2754" gYpos="941.8938" gWidth="0" gHeight="0" Alignment="3" Layer="0" NextItem="-1" BackItem="316152380"/>
    </Document>
</SCRIBUSUTF8NEW>
column-span-test.sla (34,668 bytes)   

buttar

2026-09-23 09:57

reporter   ~0054487

This can be a base for future `Span N columns` and `Split Columns` features in paragraph styles.

Issue History

Date Modified Username Field Change
2020-02-15 04:40 sreerajp New Issue
2020-02-15 08:37 JLuc Note Added: 0047386
2020-02-15 09:42 sreerajp File Added: scribus.png
2020-02-15 09:42 sreerajp File Added: Indesign.png
2020-02-15 09:42 sreerajp Note Added: 0047387
2020-02-15 09:57 JLuc Note Added: 0047388
2020-02-15 10:11 sreerajp File Added: IndesignSpan.png
2020-02-15 10:11 sreerajp Note Added: 0047390
2020-02-15 10:58 jghali Priority high => normal
2024-09-06 15:13 BN_Dev Note Added: 0051305
2024-09-06 15:13 BN_Dev File Added: qxpcolflow.png
2024-09-06 15:32 BN_Dev Note Added: 0051306
2024-09-06 15:32 BN_Dev File Added: qxpflowoptions.png
2024-09-06 15:52 JLuc Note Added: 0051307
2024-09-07 11:13 PeterBenedek Note Added: 0051308
2024-09-07 11:19 PeterBenedek Note Edited: 0051308
2024-09-07 12:31 nitramr Note Added: 0051309
2024-09-07 12:31 nitramr File Added: screenshot_20240907-140520.png
2024-09-07 12:37 nitramr Note Edited: 0051309
2024-09-07 14:52 BN_Dev Note Added: 0051310
2024-09-09 14:40 ale Note Added: 0051316
2024-09-09 16:21 nitramr Note Added: 0051319
2024-09-09 16:25 JLuc Note Added: 0051320
2024-09-09 16:26 JLuc Note Edited: 0051320
2024-09-09 16:26 JLuc Note Edited: 0051320
2024-09-09 16:27 JLuc Note Edited: 0051320
2024-09-09 16:28 JLuc Note Edited: 0051320
2024-09-09 16:32 utnik Note Added: 0051321
2024-09-11 18:10 nitramr Note Added: 0051325
2024-09-11 18:10 nitramr File Added: ColSpan.pdf
2024-09-11 18:10 nitramr File Added: ColSpan.sla
2024-09-13 00:41 BN_Dev Note Added: 0051331
2024-09-13 12:51 BN_Dev Note Added: 0051332
2024-09-13 12:51 BN_Dev File Added: Colflow.qxp
2024-09-13 12:51 BN_Dev File Added: Colflow_Layout1.pdf
2024-09-13 12:54 BN_Dev Note Added: 0051333
2024-09-13 13:29 nitramr Note Added: 0051334
2024-09-13 13:29 nitramr Note Edited: 0051334
2024-09-13 13:54 nitramr Note Added: 0051336
2024-09-13 13:54 nitramr File Added: Bildschirmfoto 2024-09-13 um 15.49.52.png
2024-09-13 13:54 nitramr File Added: Bildschirmfoto 2024-09-13 um 15.53.54.png
2024-09-13 14:08 nitramr Note Edited: 0051334
2024-09-13 14:29 BN_Dev Note Added: 0051337
2024-09-13 14:29 BN_Dev File Added: Colflow_Layout2.pdf
2024-09-19 08:25 JLuc Note Added: 0051374
2024-09-19 10:08 BN_Dev Note Added: 0051375
2025-04-27 19:16 cbradney Category Story Editor / Text Frames => Text Frames / Story Editor
2026-09-23 05:15 buttar Note Added: 0054484
2026-09-23 05:15 buttar File Added: cs1-text-flow-region-infrastructure-v1.02.patch
2026-09-23 05:15 buttar File Added: cs2-column-span-property-persistence-v1.01.patch
2026-09-23 05:15 buttar File Added: cs3-column-span-all-layout-v1.02.patch
2026-09-23 05:15 buttar File Added: cs4-column-span-ui-v1.02.patch
2026-09-23 05:15 buttar File Added: cs5-column-span-recomposition-performance-v1.09.patch
2026-09-23 05:17 buttar Note Added: 0054485
2026-09-23 05:17 buttar File Added: sm-para-flow-group-PROPOSED.png
2026-09-23 05:17 buttar File Added: span-column-editing-PROPOSED.png
2026-09-23 05:17 buttar File Added: span-column-preview-PROPOSED.png
2026-09-23 09:55 buttar Note Added: 0054486
2026-09-23 09:55 buttar File Added: column-span-test.sla
2026-09-23 09:55 buttar File Added: text-properties-palette-PROPOSED.png
2026-09-23 09:55 buttar Tag Attached: #please_test
2026-09-23 09:57 buttar Note Added: 0054487
2026-09-23 10:47 JLuc Relationship added related to 0002039