]> source.dussan.org Git - poi.git/commitdiff
initial commit - still lots of errors, but I need to switch to a clean trunk for...
authorAndreas Beeker <kiwiwings@apache.org>
Sat, 21 Feb 2015 10:56:03 +0000 (10:56 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sat, 21 Feb 2015 10:56:03 +0000 (10:56 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/common_sl@1661322 13f79535-47bb-0310-9956-ffa450edef68

248 files changed:
build.xml
src/examples/src/org/apache/poi/hslf/examples/ApacheconEU08.java
src/examples/src/org/apache/poi/xslf/usermodel/Tutorial4.java
src/java/org/apache/poi/common/usermodel/Fill.java [deleted file]
src/java/org/apache/poi/common/usermodel/LineStyle.java [deleted file]
src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
src/java/org/apache/poi/util/Units.java
src/ooxml/java/org/apache/poi/xslf/model/PropertyFetcher.java
src/ooxml/java/org/apache/poi/xslf/model/geom/AbsExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/AddDivideExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/AddSubtractExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/AdjustValue.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/ArcTanExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/ArcToCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/ClosePathCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Context.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/CosExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/CosineArcTanExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/CurveToCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Expression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/ExpressionParser.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Formula.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Guide.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/IfElseExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/LineToCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/LiteralValueExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/MaxExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/MinExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/ModExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/MoveToCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/MultiplyDivideExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Outline.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/Path.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/PathCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/PinExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/PresetGeometries.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/QuadToCommand.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/SinArcTanExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/SinExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/SqrtExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/model/geom/TanExpression.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/RenderableShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/TextAlign.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/TextAutofit.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/TextCap.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/TextDirection.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/TextFragment.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/VerticalAlignment.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/XMLSlideShow.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFAutoShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFBackground.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFColor.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGraphicFrame.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFGroupShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotes.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFNotesMaster.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShadow.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeContainer.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeType.java [deleted file]
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSheet.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSimpleShape.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlide.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideLayout.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFSlideMaster.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableCell.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextParagraph.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextRun.java
src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTextShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFAutoShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFConnectorShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFSimpleShape.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextParagraph.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTextShape.java
src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/hslf/model/ActiveXShape.java
src/scratchpad/src/org/apache/poi/hslf/model/AutoShape.java
src/scratchpad/src/org/apache/poi/hslf/model/AutoShapes.java
src/scratchpad/src/org/apache/poi/hslf/model/Background.java
src/scratchpad/src/org/apache/poi/hslf/model/Freeform.java
src/scratchpad/src/org/apache/poi/hslf/model/Hyperlink.java
src/scratchpad/src/org/apache/poi/hslf/model/Line.java
src/scratchpad/src/org/apache/poi/hslf/model/MovieShape.java
src/scratchpad/src/org/apache/poi/hslf/model/OLEShape.java
src/scratchpad/src/org/apache/poi/hslf/model/PPGraphics2D.java
src/scratchpad/src/org/apache/poi/hslf/model/Picture.java
src/scratchpad/src/org/apache/poi/hslf/model/Placeholder.java
src/scratchpad/src/org/apache/poi/hslf/model/Polygon.java
src/scratchpad/src/org/apache/poi/hslf/model/Shape.java
src/scratchpad/src/org/apache/poi/hslf/model/ShapeFactory.java
src/scratchpad/src/org/apache/poi/hslf/model/ShapeGroup.java
src/scratchpad/src/org/apache/poi/hslf/model/ShapeTypes.java [deleted file]
src/scratchpad/src/org/apache/poi/hslf/model/Sheet.java
src/scratchpad/src/org/apache/poi/hslf/model/SimpleShape.java
src/scratchpad/src/org/apache/poi/hslf/model/Slide.java
src/scratchpad/src/org/apache/poi/hslf/model/Table.java
src/scratchpad/src/org/apache/poi/hslf/model/TableCell.java
src/scratchpad/src/org/apache/poi/hslf/model/TextBox.java
src/scratchpad/src/org/apache/poi/hslf/model/TextShape.java
src/scratchpad/src/org/apache/poi/hslf/record/PPDrawing.java
src/scratchpad/src/org/apache/poi/sl/draw/DrawAutoShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawFactory.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawFontManager.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawFreeformShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawMasterSheet.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawPaint.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawSheet.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawSimpleShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextBox.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextFragment.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextParagraph.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/DrawTextShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/Drawable.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/ImageRenderer.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAngle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColorMRU.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTComplementTransform.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnection.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSite.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTFixedPercentage.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGammaTransform.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuide.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuideList.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomRect.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHslColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHyperlink.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseTransform.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DClose.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DList.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPercentage.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint3D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositivePercentage.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetTextShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRatio.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRelativeRect.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSRgbColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScRgbColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScale2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSchemeColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSphereCoords.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSystemColor.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTTransform2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTVector3D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/ObjectFactory.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STBlackWhiteMode.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STPathFillMode.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STPresetColorVal.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STRectAlignment.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STSchemeColorVal.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STShapeType.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/binding/STTextShapeType.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/AbsExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/AddDivideExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/AddSubtractExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/AdjustValue.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcTanExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcToCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/ClosePathCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Context.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/CosExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/CosineArcTanExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/CurveToCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/CustomGeometry.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Expression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/ExpressionParser.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Formula.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Guide.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/IAdjustableShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/IfElseExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/LineToCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/LiteralValueExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/MaxExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/MinExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/ModExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/MoveToCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/MultiplyDivideExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Outline.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/Path.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/PathCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/PinExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/PresetGeometries.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/QuadToCommand.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/SinArcTanExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/SinExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/SqrtExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/draw/geom/TanExpression.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/AutoShape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/ColorStyle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/Fill.java [deleted file]
src/scratchpad/src/org/apache/poi/sl/usermodel/FillStyle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/FreeformShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/GradientPaint.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/Insets2D.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/LineDecoration.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/LineStyle.java [deleted file]
src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/PlaceableShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/Shadow.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/Shape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeContainer.java
src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeType.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeTypes.java [deleted file]
src/scratchpad/src/org/apache/poi/sl/usermodel/Sheet.java
src/scratchpad/src/org/apache/poi/sl/usermodel/SimpleShape.java
src/scratchpad/src/org/apache/poi/sl/usermodel/SlideShow.java
src/scratchpad/src/org/apache/poi/sl/usermodel/SolidPaint.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/StrokeStyle.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/TextParagraph.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/TextRun.java
src/scratchpad/src/org/apache/poi/sl/usermodel/TextShape.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/TexturePaint.java [new file with mode: 0644]
src/scratchpad/src/org/apache/poi/sl/usermodel/VerticalAlignment.java [new file with mode: 0644]
src/scratchpad/testcases/org/apache/poi/hslf/model/TestBackground.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestShapes.java
src/scratchpad/testcases/org/apache/poi/hslf/model/TestTextShape.java
src/scratchpad/testcases/org/apache/poi/hslf/usermodel/TestBugs.java
src/types/definitions/dml-shapeGeometry.xjb [new file with mode: 0644]

index cfa95666ecfdeb5a243d09836b443af1dabea843..f2d6630f5bb392416267b393d89dfb11e4d78f76 100644 (file)
--- a/build.xml
+++ b/build.xml
@@ -103,6 +103,12 @@ under the License.
     <property name="scratchpad.output.test.dir" location="build/scratchpad-test-classes"/>
     <property name="scratchpad.testokfile" location="build/scratchpad-testokfile.txt"/>
 
+    <!-- Scratchpad/Geometry -->
+       <property name="geometry.schema" value="src/resources/ooxml/org/apache/poi/xslf/usermodel/presetShapeDefinitions.xml"/>
+       <property name="geometry.pkg" value="org.apache.poi.sl.draw.binding"/>
+       <property name="geometry.output.tmpdir" value="build/geometry-java"/>
+       
+       
     <!-- Examples: -->
     <property name="examples.src" location="src/examples/src"/>
     <property name="examples.output.dir" location="build/examples-classes"/>
@@ -371,6 +377,7 @@ under the License.
         <mkdir dir="${scratchpad.output.dir}"/>
         <mkdir dir="${scratchpad.output.test.dir}"/>
         <mkdir dir="${scratchpad.reports.test}"/>
+       <mkdir dir="${geometry.output.tmpdir}"/>
         <mkdir dir="${ooxml.output.dir}"/>
         <mkdir dir="${ooxml.output.test.dir}"/>
         <mkdir dir="${ooxml.reports.test}"/>
@@ -690,7 +697,38 @@ under the License.
         </copy>
     </target>
 
-    <target name="compile-scratchpad" depends="compile-main">
+       <target name="generate-geometry" depends="fetch-ooxml-xsds">
+               <delete dir="${geometry.output.tmpdir}"/>
+               <!-- taskdef xjc -->
+               <!-- "D:\Program Files\Java\jdk1.6.0_45\bin\xjc" -p org.apache.poi.sl.model.geom.binding -readOnly -Xlocator -mark-generated ooxml-schemas\dml-shapeGeometry.xsd -->
+               <unzip src="${ooxml.lib}/${ooxml.xsds.izip.1}" dest="${geometry.output.tmpdir}"/>
+               <exec executable="${env.JAVA_HOME}/bin/xjc">
+                       <arg value="-p"/>
+                       <arg value="${geometry.pkg}"/>
+                       <arg value="-b"/>
+                       <arg file="src/types/definitions/dml-shapeGeometry.xjb"/>
+                       <arg value="-readOnly"/>
+                       <arg value="-npa"/>
+                       <arg value="-no-header"/>
+                       <arg value="-Xlocator"/>
+                       <arg file="${geometry.output.tmpdir}/dml-shapeGeometry.xsd"/>
+                       <arg value="-d"/>
+                       <arg file="${geometry.output.tmpdir}"/>
+               </exec>
+               <copy file="src/java/org/apache/poi/POIDocument.java" tofile="${geometry.output.tmpdir}/apache-license.txt">
+                       <filterchain>
+                       <headfilter lines="16"/>
+                       </filterchain>
+               </copy>
+               <copy todir="${scratchpad.src}">
+                       <fileset dir="${geometry.output.tmpdir}" includes="**/*.java"/>
+                    <filterchain>
+                        <concatfilter prepend="${geometry.output.tmpdir}/apache-license.txt"/>
+                    </filterchain>
+               </copy>
+       </target>
+       
+       <target name="compile-scratchpad" depends="compile-main,generate-geometry">
         <javac target="${jdk.version.class}"
                source="${jdk.version.source}"
                destdir="${scratchpad.output.dir}"
index 25f1eab9c5e096fe5ce9ae3be6408e87a883ab2a..489ba22a147577c556bfdf449a079233b5db03dd 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hslf.examples;
 import org.apache.poi.hslf.usermodel.*;
 import org.apache.poi.hslf.model.*;
 import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 import java.io.IOException;
 import java.io.FileOutputStream;
@@ -312,7 +313,7 @@ public final class ApacheconEU08 {
         box3.setAnchor(new Rectangle(473, 243, 170, 170));
         slide.addShape(box3);
 
-        AutoShape box4 = new AutoShape(ShapeTypes.Arrow);
+        AutoShape box4 = new AutoShape(ShapeType.RIGHT_ARROW);
         box4.getFill().setForegroundColor(new Color(187, 224, 227));
         box4.setLineWidth(0.75);
         box4.setLineColor(Color.black);
index ea4fba320c45db4ddc4c3aa8083f2fd6caa490c3..2e810e1d45d3a42c4576799a8ec0d690e73634c8 100644 (file)
@@ -24,6 +24,8 @@ import java.awt.geom.Rectangle2D;
 import java.io.FileOutputStream;\r
 import java.io.IOException;\r
 \r
+import org.apache.poi.sl.usermodel.TextAlign;\r
+\r
 /**\r
  * PPTX Tables\r
  *\r
diff --git a/src/java/org/apache/poi/common/usermodel/Fill.java b/src/java/org/apache/poi/common/usermodel/Fill.java
deleted file mode 100644 (file)
index 9e1ab45..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-package org.apache.poi.common.usermodel;
-
-import java.awt.Color;
-
-public interface Fill {
-       public Color getColor();
-       public void setColor(Color color);
-}
diff --git a/src/java/org/apache/poi/common/usermodel/LineStyle.java b/src/java/org/apache/poi/common/usermodel/LineStyle.java
deleted file mode 100644 (file)
index db676f5..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-package org.apache.poi.common.usermodel;
-
-public interface LineStyle {
-
-}
index dda4b395759509f438d169d397e212e06902e6c8..2c162b9703bd77354522c35c58663c8fc78cf322 100644 (file)
@@ -519,7 +519,7 @@ public final class HSSFPatriarch implements HSSFShapeContainer, Drawing {
     }
 
     public Chart createChart(ClientAnchor anchor) {
-        throw new RuntimeException("NotImplemented");
+        throw new UnsupportedOperationException("NotImplemented");
     }
 
 
index d402156abd077fec8d2aba26ab30623a51e3a58a..bc643fd97bd5d10071af703ba485c6a285384cca 100644 (file)
@@ -42,17 +42,32 @@ public class Units {
     }\r
     \r
     /**\r
-     * Converts a value of type FixedPoint to a decimal number\r
+     * Converts a value of type FixedPoint to a floating point\r
      *\r
      * @param fixedPoint\r
-     * @return decimal number\r
+     * @return floating point (double)\r
      * \r
      * @see <a href="http://msdn.microsoft.com/en-us/library/dd910765(v=office.12).aspx">[MS-OSHARED] - 2.2.1.6 FixedPoint</a>\r
      */\r
-    public static double fixedPointToDecimal(int fixedPoint) {\r
+    public static double fixedPointToDouble(int fixedPoint) {\r
         int i = (fixedPoint >> 16);\r
         int f = (fixedPoint >> 0) & 0xFFFF;\r
-        double decimal = (i + f/65536.0);\r
-        return decimal;\r
+        double floatPoint = (i + f/65536d);\r
+        return floatPoint;\r
+    }\r
+    \r
+    /**\r
+     * Converts a value of type floating point to a FixedPoint\r
+     *\r
+     * @param floatPoint\r
+     * @return fixedPoint\r
+     * \r
+     * @see <a href="http://msdn.microsoft.com/en-us/library/dd910765(v=office.12).aspx">[MS-OSHARED] - 2.2.1.6 FixedPoint</a>\r
+     */\r
+    public static int doubleToFixedPoint(double floatPoint) {\r
+        int i = (int)Math.floor(floatPoint);\r
+        int f = (int)((floatPoint % 1d)*65536d);\r
+        int fixedPoint = (i << 16) | (f & 0xFFFF);\r
+        return fixedPoint;\r
     }\r
 }\r
index d446ccedde8418a5f220d8e5205450993f806395..ddb3f0745b7e85a492e341758b85a30ae884e7fc 100644 (file)
@@ -19,8 +19,8 @@
 \r
 package org.apache.poi.xslf.model;\r
 \r
-import org.apache.poi.xslf.usermodel.XSLFSimpleShape;\r
 import org.apache.poi.util.Internal;\r
+import org.apache.poi.xslf.usermodel.XSLFShape;\r
 \r
 /**\r
  *  Used internally to navigate the PresentationML text style hierarchy and fetch properties\r
@@ -36,7 +36,7 @@ public abstract class PropertyFetcher<T> {
      * @param shape the shape being examined\r
      * @return true if the desired property was fetched\r
      */\r
-    public abstract boolean fetch(XSLFSimpleShape shape) ;\r
+    public abstract boolean fetch(XSLFShape shape) ;\r
 \r
     public T getValue(){\r
         return _value;\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/AbsExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/AbsExpression.java
deleted file mode 100644 (file)
index 5790e53..0000000
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Absolute Value Formula
- *
- * @author Yegor Kozlov
- */
-public class AbsExpression implements Expression {
-    private String arg;
-
-    AbsExpression(Matcher m){
-        arg = m.group(1);
-    }
-
-    public double evaluate(Context ctx){
-        double val = ctx.getValue(arg);
-        return Math.abs(val);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/AddDivideExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/AddDivideExpression.java
deleted file mode 100644 (file)
index 7fe14e8..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Add Divide Formula
- *
- * @author Yegor Kozlov
- */
-public class AddDivideExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    AddDivideExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return (x + y ) / z;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/AddSubtractExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/AddSubtractExpression.java
deleted file mode 100644 (file)
index bd7e47e..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Add Subtract Formula
- *
- * @author Yegor Kozlov
- */
-public class AddSubtractExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    AddSubtractExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return (x + y ) - z;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/AdjustValue.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/AdjustValue.java
deleted file mode 100644 (file)
index 8df1d6f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuide;
-
-/**
- * Represents a shape adjust values (see section 20.1.9.5 in the spec)
- *
- * @author Yegor Kozlov
- */
-public class AdjustValue extends Guide {
-
-    public AdjustValue(CTGeomGuide gd) {
-        super(gd.getName(), gd.getFmla());
-    }
-
-    @Override
-    public double evaluate(Context ctx){
-        String name = getName();
-        Guide adj = ctx.getAdjustValue(name);
-        if(adj != null) {
-            return adj.evaluate(ctx);
-        }
-        return super.evaluate(ctx);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/ArcTanExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/ArcTanExpression.java
deleted file mode 100644 (file)
index 252c0fc..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class ArcTanExpression implements Expression {
-    private String arg1, arg2;
-
-    ArcTanExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        return Math.atan(y / x);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/ArcToCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/ArcToCommand.java
deleted file mode 100644 (file)
index b1ea0de..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DArcTo;
-
-import java.awt.geom.Arc2D;
-import java.awt.geom.GeneralPath;
-import java.awt.geom.Point2D;
-
-/**
- * ArcTo command within a shape path in DrawingML:
- *
- * <arcTo wR="wr" hR="hr" stAng="stAng" swAng="swAng"/>
- *
- * Where <code>wr</code> and <code>wh</code> are the height and width radiuses
- * of the supposed circle being used to draw the arc.  This gives the circle
- * a total height of (2 * hR)  and a total width of (2 * wR)
- *
- * stAng is the <code>start</code> angle and <code></>swAng</code> is the swing angle
- *
- * @author Yegor Kozlov
- */
-public class ArcToCommand implements PathCommand {
-    private String hr, wr, stAng, swAng;
-
-    ArcToCommand(CTPath2DArcTo arc){
-        hr = arc.getHR().toString();
-        wr = arc.getWR().toString();
-        stAng = arc.getStAng().toString();
-        swAng = arc.getSwAng().toString();
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        double rx = ctx.getValue(wr);
-        double ry = ctx.getValue(hr);
-        double start = ctx.getValue(stAng) / 60000;
-        double extent = ctx.getValue(swAng) / 60000;
-        Point2D pt = path.getCurrentPoint();
-        double x0 = pt.getX() - rx - rx * Math.cos(Math.toRadians(start));
-        double y0 = pt.getY() - ry - ry * Math.sin(Math.toRadians(start));
-
-        Arc2D arc = new Arc2D.Double(
-                         x0,
-                         y0,
-                         2 * rx, 2 * ry,
-                         -start, -extent, 
-                         Arc2D.OPEN);
-               path.append(arc, true);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/ClosePathCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/ClosePathCommand.java
deleted file mode 100644 (file)
index b9a9540..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class ClosePathCommand implements PathCommand {
-
-    ClosePathCommand(){
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        path.closePath();
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Context.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Context.java
deleted file mode 100644 (file)
index ea86c51..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.awt.geom.Rectangle2D;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class Context {
-    final Map<String, Double> _ctx = new HashMap<String, Double>();
-    final IAdjustableShape _props;
-    final Rectangle2D _anchor;
-    
-    public Context(CustomGeometry geom, Rectangle2D anchor, IAdjustableShape props){
-        _props = props;
-        _anchor = anchor;
-        for(Guide gd : geom.adjusts) evaluate(gd);
-        for(Guide gd : geom.guides) evaluate(gd);
-    }
-
-    public Rectangle2D getShapeAnchor(){
-        return _anchor;
-    }
-
-    public Guide getAdjustValue(String name){
-        return _props.getAdjustValue(name);
-    }
-
-    public double getValue(String key){
-        if(key.matches("(\\+|-)?\\d+")){
-            return Double.parseDouble(key);
-        }
-
-        Formula builtIn = Formula.builtInFormulas.get(key);
-        if(builtIn != null){
-            return builtIn.evaluate(this);
-        }
-
-        if(!_ctx.containsKey(key)) {
-            throw new RuntimeException("undefined variable: " + key);
-        }
-
-        return _ctx.get(key);
-    }
-
-    public double evaluate(Formula fmla){
-        double result = fmla.evaluate(this);
-        String key = fmla.getName();
-        if(key != null) _ctx.put(key, result);
-        return result;
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/CosExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/CosExpression.java
deleted file mode 100644 (file)
index 47e38f1..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class CosExpression implements Expression {
-    private String arg1, arg2;
-
-    CosExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2)/ 60000;
-        return x * Math.cos(Math.toRadians(y));
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/CosineArcTanExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/CosineArcTanExpression.java
deleted file mode 100644 (file)
index cb9928b..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class CosineArcTanExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    CosineArcTanExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return x*Math.cos(Math.atan(z / y));
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/CurveToCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/CurveToCommand.java
deleted file mode 100644 (file)
index 6f342d2..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTAdjPoint2D;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class CurveToCommand implements PathCommand {
-    private String arg1, arg2, arg3, arg4, arg5, arg6;
-
-    CurveToCommand(CTAdjPoint2D pt1, CTAdjPoint2D pt2, CTAdjPoint2D pt3){
-        arg1 = pt1.getX().toString();
-        arg2 = pt1.getY().toString();
-        arg3 = pt2.getX().toString();
-        arg4 = pt2.getY().toString();
-        arg5 = pt3.getX().toString();
-        arg6 = pt3.getY().toString();
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        double x1 = ctx.getValue(arg1);
-        double y1 = ctx.getValue(arg2);
-        double x2 = ctx.getValue(arg3);
-        double y2 = ctx.getValue(arg4);
-        double x3 = ctx.getValue(arg5);
-        double y3 = ctx.getValue(arg6);
-        path.curveTo((float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/CustomGeometry.java
deleted file mode 100644 (file)
index 4e30ac9..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTCustomGeometry2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuide;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuideList;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomRect;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPath2DList;
-
-/**
- * Definition of a custom geometric shape
- *
- * @author Yegor Kozlov
- */
-public class CustomGeometry implements Iterable<Path>{
-    List<Guide> adjusts = new ArrayList<Guide>();
-    List<Guide> guides = new ArrayList<Guide>();
-    List<Path> paths = new ArrayList<Path>();
-    Path textBounds;
-
-    @SuppressWarnings("deprecation")
-    public CustomGeometry(CTCustomGeometry2D geom) {
-        CTGeomGuideList avLst = geom.getAvLst();
-        if(avLst != null) for(CTGeomGuide gd : avLst.getGdArray()){
-            adjusts.add(new AdjustValue(gd));
-        }
-
-        CTGeomGuideList gdLst = geom.getGdLst();
-        if(gdLst != null) for(CTGeomGuide gd : gdLst.getGdArray()){
-            guides.add(new Guide(gd));
-        }
-
-        CTPath2DList pathLst = geom.getPathLst();
-        if(pathLst != null) for(CTPath2D spPath : pathLst.getPathArray()){
-            paths.add(new Path(spPath));
-        }
-
-        if(geom.isSetRect()) {
-            CTGeomRect rect = geom.getRect();
-            textBounds = new Path();
-            textBounds.addCommand(
-                    new MoveToCommand(rect.getL().toString(), rect.getT().toString()));
-            textBounds.addCommand(
-                    new LineToCommand(rect.getR().toString(), rect.getT().toString()));
-            textBounds.addCommand(
-                    new LineToCommand(rect.getR().toString(), rect.getB().toString()));
-            textBounds.addCommand(
-                    new LineToCommand(rect.getL().toString(), rect.getB().toString()));
-            textBounds.addCommand(
-                    new ClosePathCommand());
-        }
-    }
-
-
-
-    public Iterator<Path> iterator() {
-        return paths.iterator();
-    }
-
-    public Path getTextBounds(){
-        return textBounds;        
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Expression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Expression.java
deleted file mode 100644 (file)
index 2b0f751..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public interface Expression {
-
-    double evaluate(Context ctx);
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/ExpressionParser.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/ExpressionParser.java
deleted file mode 100644 (file)
index 699f995..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.HashMap;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-
-/**
- * A simple regexp-based parser of shape guide formulas in DrawingML
- *
- * @author Yegor Kozlov
- */
-public class ExpressionParser {
-    static final HashMap<String, Class> impls = new HashMap<String, Class>();
-    static {
-        impls.put("\\*/ +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", MultiplyDivideExpression.class);
-        impls.put("\\+- +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)( 0)?", AddSubtractExpression.class);
-        impls.put("\\+/ +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", AddDivideExpression.class);
-        impls.put("\\?: +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", IfElseExpression.class);
-        impls.put("val +([\\-\\w]+)", LiteralValueExpression.class);
-        impls.put("abs +([\\-\\w]+)", AbsExpression.class);
-        impls.put("sqrt +([\\-\\w]+)", SqrtExpression.class);
-        impls.put("max +([\\-\\w]+) +([\\-\\w]+)", MaxExpression.class);
-        impls.put("min +([\\-\\w]+) +([\\-\\w]+)", MinExpression.class);
-        impls.put("at2 +([\\-\\w]+) +([\\-\\w]+)", ArcTanExpression.class);
-        impls.put("sin +([\\-\\w]+) +([\\-\\w]+)", SinExpression.class);
-        impls.put("cos +([\\-\\w]+) +([\\-\\w]+)", CosExpression.class);
-        impls.put("tan +([\\-\\w]+) +([\\-\\w]+)", TanExpression.class);
-        impls.put("cat2 +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", CosineArcTanExpression.class);
-        impls.put("sat2 +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", SinArcTanExpression.class);
-        impls.put("pin +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", PinExpression.class);
-        impls.put("mod +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", ModExpression.class);
-
-    }
-
-    public static Expression parse(String str){
-        for(String regexp : impls.keySet()) {
-            Pattern ptrn = Pattern.compile(regexp);
-            Matcher m = ptrn.matcher(str);
-            if(m.matches()) {
-                Class c = impls.get(regexp);
-                try {
-                    return (Expression)c.getDeclaredConstructor(Matcher.class).newInstance(m);
-                } catch (Exception e){
-                    throw new RuntimeException(e);
-                }
-            }
-        }
-        throw new RuntimeException("Unsupported formula: " + str);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Formula.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Formula.java
deleted file mode 100644 (file)
index 0d3b2bb..0000000
+++ /dev/null
@@ -1,385 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.awt.geom.Rectangle2D;
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A guide formula in DrawingML.
- * This is a base class for adjust values, geometric guides and bilt-in guides
- *
- * @author Yegor Kozlov
- */
-public abstract class Formula {
-
-    String getName(){
-        return null;
-    }
-
-    abstract double evaluate(Context ctx);
-
-    static Map<String, Formula> builtInFormulas = new HashMap<String, Formula>();
-    static {
-        // 3 x 360 / 4 = 270
-        builtInFormulas.put("3cd4",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 270 * 60000;
-            }
-
-         });
-
-        // 3 x 360 / 8 = 135
-        builtInFormulas.put("3cd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 135 * 60000;
-            }
-
-         });
-
-        // 5 x 360 / 8 = 225
-        builtInFormulas.put("5cd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 270 * 60000;
-            }
-
-         });
-
-        // 7 x 360 / 8 = 315
-        builtInFormulas.put("7cd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 270 * 60000;
-            }
-
-         });
-
-        // bottom
-        builtInFormulas.put("b",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getY() + anchor.getHeight();
-            }
-
-         });
-
-        // 360 / 2 = 180
-        builtInFormulas.put("cd2",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 180 * 60000;
-            }
-
-         });
-
-        // 360 / 4 = 90
-        builtInFormulas.put("cd4",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 90 * 60000;
-            }
-
-         });
-
-        // 360 / 8 = 45
-        builtInFormulas.put("cd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return 45 * 60000;
-            }
-
-         });
-
-        // horizontal center
-        builtInFormulas.put("hc",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getX() + anchor.getWidth()/2;
-            }
-
-         });
-
-        // height
-        builtInFormulas.put("h",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight();
-            }
-
-         });
-
-        // height / 2
-        builtInFormulas.put("hd2",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/2;
-            }
-
-         });
-
-        // height / 3
-        builtInFormulas.put("hd3",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/3;
-            }
-
-         });
-
-        // height / 4
-        builtInFormulas.put("hd4",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/4;
-            }
-
-         });
-
-        // height / 5
-        builtInFormulas.put("hd5",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/5;
-            }
-
-         });
-
-        // height / 6
-        builtInFormulas.put("hd6",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/6;
-            }
-
-         });
-
-        // height / 8
-        builtInFormulas.put("hd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getHeight()/8;
-            }
-
-         });
-
-        // left
-        builtInFormulas.put("l",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getX();
-            }
-
-         });
-
-        // long side
-        builtInFormulas.put("ls",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return Math.max(anchor.getWidth(), anchor.getHeight());
-            }
-
-         });
-
-        // right
-        builtInFormulas.put("r",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getX() + anchor.getWidth();
-            }
-
-         });
-
-        // short side
-        builtInFormulas.put("ss",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return Math.min(anchor.getWidth(), anchor.getHeight());
-            }
-
-         });
-
-        // short side / 2
-        builtInFormulas.put("ssd2",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 2;
-            }
-         });
-
-        // short side / 4
-        builtInFormulas.put("ssd4",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 4;
-            }
-         });
-
-        // short side / 6
-        builtInFormulas.put("ssd6",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 6;
-            }
-         });
-
-        // short side / 8
-        builtInFormulas.put("ssd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 8;
-            }
-         });
-
-        // short side / 16
-        builtInFormulas.put("ssd16",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 16;
-            }
-         });
-
-        // short side / 32
-        builtInFormulas.put("ssd32",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
-                return ss / 32;
-            }
-         });
-
-        // top
-        builtInFormulas.put("t",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getY();
-            }
-         });
-
-        // vertical center
-        builtInFormulas.put("vc",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                Rectangle2D anchor = ctx.getShapeAnchor();
-                return anchor.getY() + anchor.getHeight()/2;
-            }
-         });
-
-        // width
-        builtInFormulas.put("w",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth();
-            }
-         });
-
-        // width / 2
-        builtInFormulas.put("wd2",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/2;
-            }
-         });
-
-        // width / 3
-        builtInFormulas.put("wd3",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/3;
-            }
-         });
-
-        // width / 4
-        builtInFormulas.put("wd4",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/4;
-            }
-         });
-
-        // width / 5
-        builtInFormulas.put("wd5",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/5;
-            }
-         });
-
-        // width / 6
-        builtInFormulas.put("wd6",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/6;
-            }
-         });
-
-        // width / 8
-        builtInFormulas.put("wd8",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/8;
-            }
-         });
-
-        // width / 10
-        builtInFormulas.put("wd10",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/10;
-            }
-         });
-
-        // width / 32
-        builtInFormulas.put("wd32",  new Formula(){
-            @Override
-            double evaluate(Context ctx){
-                return ctx.getShapeAnchor().getWidth()/32;
-            }
-         });
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Guide.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Guide.java
deleted file mode 100644 (file)
index 584e224..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTGeomGuide;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class Guide extends Formula {
-    private String name, fmla;
-    private Expression expr;
-
-    public Guide(CTGeomGuide gd) {
-        this(gd.getName(), gd.getFmla());
-    }
-
-    public Guide(String nm, String fm){
-        name = nm;
-        fmla = fm;
-        expr = ExpressionParser.parse(fm);
-    }
-
-
-    String getName(){
-        return name;
-    }
-
-    String getFormula(){
-        return fmla;
-    }
-
-    @Override
-    public double evaluate(Context ctx){
-        return expr.evaluate(ctx);
-    }
-
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/IAdjustableShape.java
deleted file mode 100644 (file)
index 44f5a56..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-
-/**
- * A bridge to the consumer application.
- *
- * To get a shape geometry one needs to pass shape bounds and adjust values.
- *
- * @author Yegor Kozlov
- */
-public interface IAdjustableShape {
-    /**
-     *
-     * @param  name name of a adjust value, e.g. adj1
-     * @return adjust guide defined in the shape or null
-     */
-    Guide getAdjustValue(String name);
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/IfElseExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/IfElseExpression.java
deleted file mode 100644 (file)
index 3e16645..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * If Else Formula:
- * <p>
- *     Arguments: 3 (fmla="?: x y z")
- *     Usage: "?: x y z" = if (x > 0), then y = value of this guide,
- *     else z = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class IfElseExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    IfElseExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return x > 0 ? y : z;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/LineToCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/LineToCommand.java
deleted file mode 100644 (file)
index 5142dd2..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTAdjPoint2D;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class LineToCommand implements PathCommand {
-    private String arg1, arg2;
-
-    LineToCommand(CTAdjPoint2D pt){
-        arg1 = pt.getX().toString();
-        arg2 = pt.getY().toString();
-    }
-
-    LineToCommand(String s1, String s2){
-        arg1 = s1;
-        arg2 = s2;
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        path.lineTo((float)x, (float)y);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/LiteralValueExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/LiteralValueExpression.java
deleted file mode 100644 (file)
index f84483c..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Date: 10/24/11
- *
- * @author Yegor Kozlov
- */
-public class LiteralValueExpression implements Expression {
-    private String arg;
-
-    LiteralValueExpression(Matcher m){
-        arg = m.group(1);
-    }
-
-    public double evaluate(Context ctx){
-        return ctx.getValue(arg);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/MaxExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/MaxExpression.java
deleted file mode 100644 (file)
index 0c7ac3e..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Maximum Value Formula
- *
- * @author Yegor Kozlov
- */
-public class MaxExpression implements Expression {
-    private String arg1, arg2;
-
-    MaxExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        return Math.max(x, y);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/MinExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/MinExpression.java
deleted file mode 100644 (file)
index 3e28cdd..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Minimum Value Formula
- *
- * @author Yegor Kozlov
- */
-public class MinExpression implements Expression {
-    private String arg1, arg2;
-
-    MinExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        return Math.min(x, y);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/ModExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/ModExpression.java
deleted file mode 100644 (file)
index cf17f05..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Modulo Formula:
- * <p>
- *     Arguments: 3 (fmla="mod x y z")
- *     Usage: "mod x y z" = sqrt(x^2 + b^2 + c^2) = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class ModExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    ModExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-   public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return Math.sqrt(x*x + y*y + z*z);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/MoveToCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/MoveToCommand.java
deleted file mode 100644 (file)
index 9d9575a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTAdjPoint2D;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class MoveToCommand implements PathCommand {
-    private String arg1, arg2;
-
-    MoveToCommand(CTAdjPoint2D pt){
-        arg1 = pt.getX().toString();
-        arg2 = pt.getY().toString();
-    }
-
-    MoveToCommand(String s1, String s2){
-        arg1 = s1;
-        arg2 = s2;
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        path.moveTo((float)x, (float)y);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/MultiplyDivideExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/MultiplyDivideExpression.java
deleted file mode 100644 (file)
index 17aca48..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Multiply Divide Formula
- *
- * @author Yegor Kozlov
- */
-public class MultiplyDivideExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    MultiplyDivideExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return (x * y ) / z;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Outline.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Outline.java
deleted file mode 100644 (file)
index dbf9f1f..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.awt.Shape;
-
-/**
-* Date: 11/6/11
-*
-* @author Yegor Kozlov
-*/
-public class Outline {
-    private Shape shape;
-    private Path path;
-
-    public Outline(Shape shape, Path path){
-        this.shape = shape;
-        this.path = path;
-    }
-
-    public Path getPath(){
-        return path;
-    }
-
-    public Shape getOutline(){
-        return shape;
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/Path.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/Path.java
deleted file mode 100644 (file)
index 3f552a4..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.*;
-
-import java.awt.geom.GeneralPath;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Specifies a creation path consisting of a series of moves, lines and curves
- * that when combined forms a geometric shape
- *
- * @author Yegor Kozlov
- */
-public class Path {
-    private final List<PathCommand> commands;
-    boolean _fill, _stroke;
-    long _w, _h;
-
-    public Path(){
-        this(true, true);
-    }
-
-    public Path(boolean fill, boolean stroke){
-        commands = new ArrayList<PathCommand>();
-        _w = -1;
-        _h = -1;
-        _fill = fill;
-        _stroke = stroke;
-    }
-
-    public Path(CTPath2D spPath){
-        _fill = spPath.getFill() != STPathFillMode.NONE;
-        _stroke = spPath.getStroke();
-        _w = spPath.isSetW() ? spPath.getW() : -1;     
-        _h = spPath.isSetH() ? spPath.getH() : -1;     
-        
-        commands = new ArrayList<PathCommand>();
-        for(XmlObject ch : spPath.selectPath("*")){
-            if(ch instanceof CTPath2DMoveTo){
-                CTAdjPoint2D pt = ((CTPath2DMoveTo)ch).getPt();
-                commands.add(new MoveToCommand(pt));
-            } else if (ch instanceof CTPath2DLineTo){
-                CTAdjPoint2D pt = ((CTPath2DLineTo)ch).getPt();
-                commands.add(new LineToCommand(pt));
-            } else if (ch instanceof CTPath2DArcTo){
-                CTPath2DArcTo arc = (CTPath2DArcTo)ch;
-                commands.add(new ArcToCommand(arc));
-            } else if (ch instanceof CTPath2DQuadBezierTo){
-                CTPath2DQuadBezierTo bez = ((CTPath2DQuadBezierTo)ch);
-                CTAdjPoint2D pt1 = bez.getPtArray(0);
-                CTAdjPoint2D pt2 = bez.getPtArray(1);
-                commands.add(new QuadToCommand(pt1, pt2));
-            } else if (ch instanceof CTPath2DCubicBezierTo){
-                CTPath2DCubicBezierTo bez = ((CTPath2DCubicBezierTo)ch);
-                CTAdjPoint2D pt1 = bez.getPtArray(0);
-                CTAdjPoint2D pt2 = bez.getPtArray(1);
-                CTAdjPoint2D pt3 = bez.getPtArray(2);
-                commands.add(new CurveToCommand(pt1, pt2, pt3));
-            } else if (ch instanceof CTPath2DClose){
-                commands.add(new ClosePathCommand());
-            }  else {
-                throw new IllegalStateException("Unsupported path segment: " + ch);
-            }
-        }
-    }
-
-    public void addCommand(PathCommand cmd){
-        commands.add(cmd);
-    }
-
-    /**
-     * Convert the internal represenation to java.awt.GeneralPath
-     */
-    public GeneralPath getPath(Context ctx) {
-        GeneralPath path = new GeneralPath();
-        for(PathCommand cmd : commands)
-            cmd.execute(path, ctx);
-        return path;
-    }
-
-    public boolean isStroked(){
-        return _stroke;
-    }
-
-    public boolean isFilled(){
-        return _fill;
-    }
-    
-    public long getW(){
-       return _w;
-    }
-
-    public long getH(){
-       return _h;
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/PathCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/PathCommand.java
deleted file mode 100644 (file)
index 7b3ec49..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * A path command in DrawingML. One of:
- *
- *  - arcTo
- *  - moveTo
- *  - lineTo
- *  - cubicBezTo
- *  - quadBezTo
- *  - close
- *
- *
- * @author Yegor Kozlov
- */
-public interface PathCommand {
-    /**
-     * Execute the command an append a segment to the specified path
-     *
-     * @param path  the path to append the result to
-     * @param ctx   the context to lookup variables
-     */
-    void execute(GeneralPath path, Context ctx);
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/PinExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/PinExpression.java
deleted file mode 100644 (file)
index c1b7fe4..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Pin To Formula:
- * <gd name="enAng" fmla="pin 0 adj2 21599999"/>
- *
- * <p>
- *     Usage: "pin x y z" = if (y < x), then x = value of this guide
- *     else if (y > z), then z = value of this guide
- *     else y = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class PinExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    PinExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-   public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        if(y < x) return x;
-        else if (y > z) return z;
-        else return y;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/PresetGeometries.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/PresetGeometries.java
deleted file mode 100644 (file)
index 62accc4..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.apache.poi.xslf.usermodel.XMLSlideShow;
-import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTCustomGeometry2D;
-
-import java.io.InputStream;
-import java.util.LinkedHashMap;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class PresetGeometries extends LinkedHashMap<String, CustomGeometry> {
-    private static PresetGeometries _inst;
-
-    private PresetGeometries(){
-        try {
-            InputStream is =
-                    XMLSlideShow.class.getResourceAsStream("presetShapeDefinitions.xml");
-            read(is);
-        } catch (Exception e){
-            throw new RuntimeException(e);
-        }
-    }
-
-    private void read(InputStream is) throws Exception {
-        XmlObject obj = XmlObject.Factory.parse(is);
-        for (XmlObject def : obj.selectPath("*/*")) {
-
-            String name = def.getDomNode().getLocalName();
-            CTCustomGeometry2D geom = CTCustomGeometry2D.Factory.parse(def.toString());
-
-            if(containsKey(name)) {
-                System.out.println("Duplicate definoition of " + name) ;
-            }
-            put(name, new CustomGeometry(geom));
-        }
-    }
-
-    public static PresetGeometries getInstance(){
-        if(_inst == null) _inst = new PresetGeometries();
-
-        return _inst;
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/QuadToCommand.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/QuadToCommand.java
deleted file mode 100644 (file)
index 65fd7d4..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import org.openxmlformats.schemas.drawingml.x2006.main.CTAdjPoint2D;
-
-import java.awt.geom.GeneralPath;
-
-/**
- * Date: 10/25/11
- *
- * @author Yegor Kozlov
- */
-public class QuadToCommand implements PathCommand {
-    private String arg1, arg2, arg3, arg4;
-
-    QuadToCommand(CTAdjPoint2D pt1, CTAdjPoint2D pt2){
-        arg1 = pt1.getX().toString();
-        arg2 = pt1.getY().toString();
-        arg3 = pt2.getX().toString();
-        arg4 = pt2.getY().toString();
-    }
-
-    public void execute(GeneralPath path, Context ctx){
-        double x1 = ctx.getValue(arg1);
-        double y1 = ctx.getValue(arg2);
-        double x2 = ctx.getValue(arg3);
-        double y2 = ctx.getValue(arg4);
-        path.quadTo((float)x1, (float)y1, (float)x2, (float)y2);
-    }
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/SinArcTanExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/SinArcTanExpression.java
deleted file mode 100644 (file)
index 8ac68e0..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Sine ArcTan Formula:
- * <gd name="dy1" fmla="sat2 x y z"/>
- *
- * <p>
- *     Arguments: 3 (fmla="sat2 x y z")
- *     Usage: "sat2 x y z" = (x*sin(arctan(z / y))) = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class SinArcTanExpression implements Expression {
-    private String arg1, arg2, arg3;
-
-    SinArcTanExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-        arg3 = m.group(3);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        double z = ctx.getValue(arg3);
-        return x*Math.sin(Math.atan(z / y));
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/SinExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/SinExpression.java
deleted file mode 100644 (file)
index 9e82f5a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Sine Formula:
- * <gd name="z" fmla="sin x y"/>
- *
- * <p>
- *     Arguments: 2 (fmla="sin x y")
- *     Usage: "sin x y" = (x * sin( y )) = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class SinExpression implements Expression {
-    private String arg1, arg2;
-
-    SinExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2) / 60000;
-        return x * Math.sin(Math.toRadians(y));
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/SqrtExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/SqrtExpression.java
deleted file mode 100644 (file)
index d798e93..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Square Root Formula:
- * <gd name="x" fmla="sqrt y"/>
- *
- * <p>
- *     Arguments: 1 (fmla="sqrt x")
- *     Usage: "sqrt x" = sqrt(x) = value of this guide
- * </p>
- * @author Yegor Kozlov
- */
-public class SqrtExpression implements Expression {
-    private String arg;
-
-    SqrtExpression(Matcher m){
-        arg =m.group(1);
-    }
-
-    public double evaluate(Context ctx){
-        double val = ctx.getValue(arg);
-        return Math.sqrt(val);
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/model/geom/TanExpression.java b/src/ooxml/java/org/apache/poi/xslf/model/geom/TanExpression.java
deleted file mode 100644 (file)
index 3435f35..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ====================================================================
- */
-
-package org.apache.poi.xslf.model.geom;
-
-import java.util.regex.Matcher;
-
-/**
- * Tangent Formula:
- *
- * <gd name="z" fmla="tan x y"/>
- *
- * <p>
- * Arguments: 2 (fmla="tan x y")
- * Usage: "tan x y" = (x * tan( y )) = value of this guide
- * </p>
- *
- * @author Yegor Kozlov
- */
-public class TanExpression implements Expression {
-    private String arg1, arg2;
-
-    TanExpression(Matcher m){
-        arg1 = m.group(1);
-        arg2 = m.group(2);
-    }
-
-    public double evaluate(Context ctx){
-        double x = ctx.getValue(arg1);
-        double y = ctx.getValue(arg2);
-        return x * Math.tan(Math.toRadians(y / 60000));
-    }
-
-}
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/LineCap.java
deleted file mode 100644 (file)
index 55b4c84..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/* ====================================================================\r
-   Licensed to the Apache Software Foundation (ASF) under one or more\r
-   contributor license agreements.  See the NOTICE file distributed with\r
-   this work for additional information regarding copyright ownership.\r
-   The ASF licenses this file to You under the Apache License, Version 2.0\r
-   (the "License"); you may not use this file except in compliance with\r
-   the License.  You may obtain a copy of the License at\r
-\r
-       http://www.apache.org/licenses/LICENSE-2.0\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
-==================================================================== */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * \r
- *\r
- * @author Yegor Kozlov\r
- */\r
-public enum LineCap {\r
-    /**\r
-     *  Rounded ends\r
-     */\r
-    ROUND,\r
-    /**\r
-     * Square protrudes by half line width\r
-     */\r
-    SQUARE,\r
-\r
-    /**\r
-     *  Line ends at end point\r
-     */\r
-    FLAT;\r
-}
\ No newline at end of file
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/LineDash.java
deleted file mode 100644 (file)
index 71891f8..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-/* ====================================================================\r
-   Licensed to the Apache Software Foundation (ASF) under one or more\r
-   contributor license agreements.  See the NOTICE file distributed with\r
-   this work for additional information regarding copyright ownership.\r
-   The ASF licenses this file to You under the Apache License, Version 2.0\r
-   (the "License"); you may not use this file except in compliance with\r
-   the License.  You may obtain a copy of the License at\r
-\r
-       http://www.apache.org/licenses/LICENSE-2.0\r
-\r
-   Unless required by applicable law or agreed to in writing, software\r
-   distributed under the License is distributed on an "AS IS" BASIS,\r
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-   See the License for the specific language governing permissions and\r
-   limitations under the License.\r
-==================================================================== */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * @author Yegor Kozlov\r
- */\r
-public enum LineDash {\r
-    SOLID,\r
-    DOT,\r
-    DASH,\r
-    LG_DASH,\r
-    DASH_DOT,\r
-    LG_DASH_DOT,\r
-    LG_DASH_DOT_DOT,\r
-    SYS_DASH,\r
-    SYS_DOT,\r
-    SYS_DASH_DOT,\r
-    SYS_DASH_DOT_DOT;\r
-}\r
index 053ccd491dd6ca093bfa3609a78aa047941b5737..8a11c1cd17f3df718ccc8251f3eedfa3bd759a34 100644 (file)
@@ -40,6 +40,8 @@ import java.util.Comparator;
 \r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.openxml4j.opc.PackageRelationship;\r
+import org.apache.poi.sl.usermodel.LineCap;\r
+import org.apache.poi.sl.usermodel.LineDash;\r
 import org.apache.poi.util.Internal;\r
 import org.apache.poi.util.Units;\r
 import org.apache.poi.xslf.model.PropertyFetcher;\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAlign.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAlign.java
deleted file mode 100644 (file)
index 2570e6c..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * Specified a list of text alignment types\r
- *\r
- * @author Yegor Kozlov\r
- */\r
-public enum TextAlign {\r
-    /**\r
-     * Align text to the left margin.\r
-     */\r
-    LEFT,\r
-    /**\r
-     * Align text in the center.\r
-     */\r
-    CENTER,\r
-\r
-    /**\r
-     * Align text to the right margin.\r
-     */\r
-    RIGHT,\r
-\r
-    /**\r
-     * Align text so that it is justified across the whole line. It\r
-     * is smart in the sense that it will not justify sentences\r
-     * which are short\r
-     */\r
-    JUSTIFY,\r
-    JUSTIFY_LOW,\r
-    DIST,\r
-    THAI_DIST\r
-}\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAutofit.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/TextAutofit.java
deleted file mode 100644 (file)
index 94d6b24..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * Specifies alist of auto-fit types.\r
- * <p>\r
- * Autofit specofies that a shape should be auto-fit to fully contain the text described within it.\r
- * Auto-fitting is when text within a shape is scaled in order to contain all the text inside\r
- * </p>\r
- * \r
- * @author Yegor Kozlov\r
- */\r
-public enum TextAutofit {\r
-    /**\r
-     * Specifies that text within the text body should not be auto-fit to the bounding box.\r
-     * Auto-fitting is when text within a text box is scaled in order to remain inside\r
-     * the text box.\r
-     */\r
-    NONE,\r
-    /**\r
-     * Specifies that text within the text body should be normally auto-fit to the bounding box.\r
-     * Autofitting is when text within a text box is scaled in order to remain inside the text box.\r
-     *\r
-     * <p>\r
-     * <em>Example:</em> Consider the situation where a user is building a diagram and needs\r
-     * to have the text for each shape that they are using stay within the bounds of the shape.\r
-     * An easy way this might be done is by using NORMAL autofit\r
-     * </p>\r
-     */\r
-    NORMAL,\r
-    /**\r
-     * Specifies that a shape should be auto-fit to fully contain the text described within it.\r
-     * Auto-fitting is when text within a shape is scaled in order to contain all the text inside.\r
-     *\r
-     * <p>\r
-     * <em>Example:</em> Consider the situation where a user is building a diagram and needs to have\r
-     * the text for each shape that they are using stay within the bounds of the shape.\r
-     * An easy way this might be done is by using SHAPE autofit\r
-     * </p>\r
-     */\r
-    SHAPE\r
-}\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/TextCap.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/TextCap.java
deleted file mode 100644 (file)
index c4ad625..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * @author Yegor Kozlov\r
- */\r
-public enum TextCap {\r
-    NONE,\r
-    SMALL,\r
-    ALL\r
-}\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/TextDirection.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/TextDirection.java
deleted file mode 100644 (file)
index 3f35ec2..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * Vertical Text Types\r
- */\r
-public enum TextDirection {\r
-    /**\r
-     * Horizontal text. This should be default.\r
-     */\r
-    HORIZONTAL,\r
-    /**\r
-     * Vertical orientation.\r
-     * (each line is 90 degrees rotated clockwise, so it goes\r
-     * from top to bottom; each next line is to the left from\r
-     * the previous one).\r
-     */\r
-    VERTICAL,\r
-    /**\r
-     * Vertical orientation.\r
-     * (each line is 270 degrees rotated clockwise, so it goes\r
-     * from bottom to top; each next line is to the right from\r
-     * the previous one).\r
-     */\r
-    VERTICAL_270,\r
-    /**\r
-     * Determines if all of the text is vertical\r
-     * ("one letter on top of another").\r
-     */\r
-    STACKED;\r
-}\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/TextFragment.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/TextFragment.java
deleted file mode 100644 (file)
index 1114b89..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-import java.awt.*;\r
-import java.awt.font.TextLayout;\r
-import java.text.AttributedCharacterIterator;\r
-import java.text.AttributedString;\r
-import java.text.CharacterIterator;\r
-\r
-/**\r
- * a renderable text fragment\r
-*/\r
-class TextFragment {\r
-    final TextLayout _layout;\r
-    final AttributedString _str;\r
-\r
-    TextFragment(TextLayout layout, AttributedString str){\r
-        _layout = layout;\r
-        _str = str;\r
-    }\r
-\r
-    void draw(Graphics2D graphics, double x, double y){\r
-        if(_str == null) {\r
-            return;\r
-        }\r
-\r
-        double yBaseline = y + _layout.getAscent();\r
-\r
-        Integer textMode = (Integer)graphics.getRenderingHint(XSLFRenderingHint.TEXT_RENDERING_MODE);\r
-        if(textMode != null && textMode == XSLFRenderingHint.TEXT_AS_SHAPES){\r
-            _layout.draw(graphics, (float)x, (float)yBaseline);\r
-        } else {\r
-            graphics.drawString(_str.getIterator(), (float)x, (float)yBaseline );\r
-        }\r
-    }\r
-\r
-    /**\r
-     * @return full height of this text run which is sum of ascent, descent and leading\r
-     */\r
-    public float getHeight(){\r
-        double h = Math.ceil(_layout.getAscent()) + Math.ceil(_layout.getDescent()) + _layout.getLeading();\r
-        return (float)h;\r
-    }\r
-\r
-    /**\r
-     *\r
-     * @return width if this text run\r
-     */\r
-    public float getWidth(){\r
-        return _layout.getAdvance();\r
-    }\r
-\r
-    /**\r
-     *\r
-     * @return the string to be painted\r
-     */\r
-    public String getString(){\r
-        if(_str == null) return "";\r
-\r
-        AttributedCharacterIterator it = _str.getIterator();\r
-         StringBuffer buf = new StringBuffer();\r
-         for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) {\r
-             buf.append(c);\r
-         }\r
-        return buf.toString();\r
-    }\r
-\r
-    @Override\r
-    public String toString(){\r
-        return "[" + getClass().getSimpleName() + "] " + getString();\r
-    }\r
-}\r
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/VerticalAlignment.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/VerticalAlignment.java
deleted file mode 100644 (file)
index fd00a64..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*\r
- *  ====================================================================\r
- *    Licensed to the Apache Software Foundation (ASF) under one or more\r
- *    contributor license agreements.  See the NOTICE file distributed with\r
- *    this work for additional information regarding copyright ownership.\r
- *    The ASF licenses this file to You under the Apache License, Version 2.0\r
- *    (the "License"); you may not use this file except in compliance with\r
- *    the License.  You may obtain a copy of the License at\r
- *\r
- *        http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- *    Unless required by applicable law or agreed to in writing, software\r
- *    distributed under the License is distributed on an "AS IS" BASIS,\r
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- *    See the License for the specific language governing permissions and\r
- *    limitations under the License.\r
- * ====================================================================\r
- */\r
-package org.apache.poi.xslf.usermodel;\r
-\r
-/**\r
- * Specifies a list of available anchoring types for text\r
- * \r
- * @author Yegor Kozlov\r
- */\r
-public enum VerticalAlignment {\r
-    /**\r
-     * Anchor the text at the top of the bounding rectangle\r
-     */\r
-    TOP,\r
-\r
-    /**\r
-     * Anchor the text at the middle of the bounding rectangle\r
-     */\r
-    MIDDLE,\r
-\r
-    /**\r
-     * Anchor the text at the bottom of the bounding rectangle.\r
-     */\r
-    BOTTOM,\r
-\r
-    /**\r
-     * Anchor the text so that it is justified vertically.\r
-     * <p>\r
-     * When text is horizontal, this spaces out the actual lines of\r
-     * text and is almost always identical in behavior to\r
-     * {@link #DISTRIBUTED} (special case: if only 1 line, then anchored at top).\r
-     * </p>\r
-     * <p>\r
-     * When text is vertical, then it justifies the letters\r
-     * vertically. This is different than {@link #DISTRIBUTED},\r
-     * because in some cases such as very little text in a line,\r
-     * it will not justify.\r
-     * </p>\r
-     */\r
-    JUSTIFIED,\r
-\r
-    /**\r
-     * Anchor the text so that it is distributed vertically.\r
-     * <p>\r
-     * When text is horizontal, this spaces out the actual lines\r
-     * of text and is almost always identical in behavior to\r
-     * {@link #JUSTIFIED} (special case: if only 1 line, then anchored in middle).\r
-     * </p>\r
-     * <p>\r
-     * When text is vertical, then it distributes the letters vertically.\r
-     * This is different than {@link #JUSTIFIED}, because it always forces distribution\r
-     * of the words, even if there are only one or two words in a line.\r
-     */\r
-    DISTRIBUTED\r
-}\r
index b1c6be45732d6fa88f239d71e23a8d27d2cb3069..1c5f855db3658eef81c326590838275f282ea3a0 100644 (file)
@@ -20,7 +20,11 @@ import java.awt.Dimension;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.regex.Pattern;
 
 import org.apache.poi.POIXMLDocument;
@@ -32,6 +36,9 @@ import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackagePartName;
 import org.apache.poi.openxml4j.opc.TargetMode;
+import org.apache.poi.sl.usermodel.MasterSheet;
+import org.apache.poi.sl.usermodel.Resources;
+import org.apache.poi.sl.usermodel.SlideShow;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
@@ -53,6 +60,10 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideIdListEntry;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTSlideSize;
 import org.openxmlformats.schemas.presentationml.x2006.main.PresentationDocument;
 
+import sun.reflect.generics.reflectiveObjects.NotImplementedException;
+
+import com.sun.org.apache.xml.internal.utils.UnImplNode;
+
 /**
  * High level representation of a ooxml slideshow.
  * This is the first object most users will construct whether
@@ -60,7 +71,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.PresentationDocument
  *  top level object for creating new slides/etc.
  */
 @Beta
-public class XMLSlideShow  extends POIXMLDocument {
+public class XMLSlideShow extends POIXMLDocument implements SlideShow {
     private static POILogger _logger = POILogFactory.getLogger(XMLSlideShow.class);
 
     private CTPresentation _presentation;
@@ -437,7 +448,7 @@ public class XMLSlideShow  extends POIXMLDocument {
      */
     public int addPicture(byte[] pictureData, int format) {
         XSLFPictureData img = findPictureData(pictureData);
-        POIXMLRelation relDesc = XSLFPictureData.RELATIONS[format];
+        // POIXMLRelation relDesc = XSLFPictureData.RELATIONS[format];
 
         if(img == null) {
             int imageNumber = _pictures.size();
@@ -485,4 +496,17 @@ public class XMLSlideShow  extends POIXMLDocument {
         return null;
     }
 
+    public MasterSheet<XSLFShape>[] getMasterSheet() {
+        return getSlideMasters();
+    }
+
+    public MasterSheet<XSLFShape> createMasterSheet() throws IOException {
+        // TODO: implement!
+        throw new UnsupportedOperationException();
+    }
+
+    public Resources getResources() {
+        // TODO: implement!
+        throw new UnsupportedOperationException();
+    }
 }
index 1ee8f6f55fe755c8ff6065ed03248203bfe1ddae..47bcace2f32a3be1dd85372e2f18c3cf05b16203 100644 (file)
@@ -19,6 +19,7 @@
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import org.apache.poi.sl.usermodel.AutoShape;\r
 import org.apache.poi.util.Beta;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetGeometry2D;\r
@@ -35,7 +36,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTShapeNonVisual;
  * @author Yegor Kozlov\r
  */\r
 @Beta\r
-public class XSLFAutoShape extends XSLFTextShape {\r
+public class XSLFAutoShape extends XSLFTextShape implements AutoShape {\r
 \r
     /*package*/ XSLFAutoShape(CTShape shape, XSLFSheet sheet) {\r
         super(shape, sheet);\r
index 604c9dff3a63a2f5dc2a53b4d8d4c3e4e43090af..80c6a1acbe1e9c863225753a76da45161b7a237b 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.*;\r
+import java.awt.geom.Rectangle2D;\r
+\r
+import org.apache.poi.sl.usermodel.Background;\r
 import org.apache.xmlbeans.XmlObject;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTBackgroundFillStyleList;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTStyleMatrixReference;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;\r
 \r
-import java.awt.Color;\r
-import java.awt.Dimension;\r
-import java.awt.Graphics2D;\r
-import java.awt.Paint;\r
-import java.awt.geom.Rectangle2D;\r
-\r
 /**\r
  * Background shape\r
  *\r
  * @author Yegor Kozlov\r
  */\r
-public class XSLFBackground extends XSLFSimpleShape {\r
+public class XSLFBackground extends XSLFSimpleShape implements Background {\r
 \r
     /* package */XSLFBackground(CTBackground shape, XSLFSheet sheet) {\r
         super(shape, sheet);\r
index c0f4762c7e2e2c1b4f765ac74ad84d51e779ff0f..527cef781d01f11571270475acb510c23a703ed8 100644 (file)
  */\r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.Color;\r
+import java.util.HashMap;\r
+import java.util.Map;\r
+\r
+import org.apache.poi.sl.draw.DrawPaint;\r
+import org.apache.poi.sl.usermodel.ColorStyle;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Internal;\r
 import org.apache.xmlbeans.XmlObject;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTHslColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTPresetColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTScRgbColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSystemColor;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.w3c.dom.Node;\r
 \r
-import java.awt.Color;\r
-import java.util.HashMap;\r
-import java.util.Map;\r
-\r
 /**\r
  * Encapsulates logic to read color definitions from DrawingML and convert them to java.awt.Color\r
  *\r
@@ -63,40 +59,37 @@ public class XSLFColor {
      * If not color information was found in the supplied xml object then a null is returned.\r
      */\r
     public Color getColor() {\r
-        return _color == null ? null : applyColorTransform(_color);\r
+        return DrawPaint.applyColorTransform(getColorStyle());\r
     }\r
 \r
-    private Color applyColorTransform(Color color){\r
-        Color result = color;\r
+    public ColorStyle getColorStyle() {\r
+        return new ColorStyle() {\r
+            public Color getColor() {\r
+                return _color;\r
+            }\r
 \r
-        int alpha = getAlpha();\r
-        if(alpha != -1){\r
-            result = new Color(\r
-                    result.getRed(), result.getGreen(), result.getBlue(), \r
-                    Math.round(255 * alpha * 0.01f));\r
-        }\r
+            public int getAlpha() {\r
+                return getRawValue("alpha");\r
+            }\r
 \r
-        int lumOff = getLumOff();\r
-        int lumMod = getLumMod();\r
-        if(lumMod != -1 || lumOff != -1){\r
-            result = modulateLuminanace(result,\r
-                    lumMod == -1 ? 100 : lumMod,\r
-                    lumOff == -1 ? 0 : lumOff);\r
-        }\r
+            public int getLumOff() {\r
+                return getRawValue("lumOff");\r
+            }\r
 \r
-        int shade = getShade();\r
-        if(shade != -1){\r
-               result = shade(result, shade);\r
-        }\r
+            public int getLumMod() {\r
+                return getRawValue("lumMod");\r
+            }\r
 \r
-        int tint = getTint();\r
-        if(tint != -1){\r
-            result = tint(result, tint);\r
-        }\r
+            public int getShade() {\r
+                return getRawValue("shade");\r
+            }\r
 \r
-        return result;\r
+            public int getTint() {\r
+                return getRawValue("tint");\r
+            }\r
+        };\r
     }\r
-\r
+    \r
     Color toColor(XmlObject obj, XSLFTheme theme) {\r
         Color color = null;\r
         for (XmlObject ch : obj.selectPath("*")) {\r
@@ -140,6 +133,7 @@ public class XSLFColor {
                     color = new Color(0xFF & val[0], 0xFF & val[1], 0xFF & val[2]);\r
                 } else {\r
                     // YK: color is a string like "menuText" or "windowText", we return black for such cases\r
+                    @SuppressWarnings("unused")\r
                     String colorName = sys.getVal().toString();\r
                     color = Color.black;\r
                 }\r
@@ -150,66 +144,50 @@ public class XSLFColor {
         return color;\r
     }\r
 \r
-    /**\r
-     * Read a perecentage value from the supplied xml bean.\r
-     * Example:\r
-     *   <a:tint val="45000"/>\r
-     *\r
-     * the returned value is 45\r
-     *\r
-     * @return  the percentage value in the range [0 .. 100]\r
-     */\r
-    private int getPercentageValue(String elem){\r
+    private int getRawValue(String elem) {\r
         String query = "declare namespace a='http://schemas.openxmlformats.org/drawingml/2006/main' $this//a:" + elem;\r
 \r
         XmlObject[] obj;\r
 \r
         // first ask the context color and if not found, ask the actual color bean\r
-        if(_phClr != null){\r
+        if (_phClr != null){\r
             obj = _phClr.selectPath(query);\r
-            if(obj.length == 1){\r
+            if (obj.length == 1){\r
                 Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");\r
                 if(attr != null) {\r
-                    return Integer.parseInt(attr.getNodeValue()) / 1000;\r
+                    return Integer.parseInt(attr.getNodeValue());\r
                 }\r
             }\r
         }\r
 \r
         obj = _xmlObject.selectPath(query);\r
-        if(obj.length == 1){\r
+        if (obj.length == 1){\r
             Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");\r
             if(attr != null) {\r
-                return Integer.parseInt(attr.getNodeValue()) / 1000;\r
+                return Integer.parseInt(attr.getNodeValue());\r
             }\r
         }\r
 \r
-\r
-        return -1;\r
+        return -1;        \r
+    }\r
+    \r
+    /**\r
+     * Read a perecentage value from the supplied xml bean.\r
+     * Example:\r
+     *   <a:tint val="45000"/>\r
+     *\r
+     * the returned value is 45\r
+     *\r
+     * @return  the percentage value in the range [0 .. 100]\r
+     */\r
+    private int getPercentageValue(String elem){\r
+        int val = getRawValue(elem);\r
+        return (val == -1) ? val : (val / 1000);\r
     }\r
 \r
     private int getAngleValue(String elem){\r
-        String color = "declare namespace a='http://schemas.openxmlformats.org/drawingml/2006/main' $this//a:" + elem;\r
-        XmlObject[] obj;\r
-\r
-        // first ask the context color and if not found, ask the actual color bean\r
-        if(_phClr != null){\r
-            obj = _xmlObject.selectPath( color );\r
-            if(obj.length == 1){\r
-                Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");\r
-                if(attr != null) {\r
-                    return Integer.parseInt(attr.getNodeValue()) / 60000;\r
-                }\r
-            }\r
-        }\r
-\r
-        obj = _xmlObject.selectPath( color );\r
-        if(obj.length == 1){\r
-            Node attr = obj[0].getDomNode().getAttributes().getNamedItem("val");\r
-            if(attr != null) {\r
-                return Integer.parseInt(attr.getNodeValue()) / 60000;\r
-            }\r
-        }\r
-        return -1;\r
+        int val = getRawValue(elem);\r
+        return (val == -1) ? val : (val / 60000);\r
     }\r
 \r
     /**\r
@@ -387,7 +365,7 @@ public class XSLFColor {
      * percentage with 0% indicating minimal shade and 100% indicating maximum\r
      * or -1 if the value is not set\r
      */\r
-    int getShade(){\r
+    public int getShade(){\r
         return getPercentageValue("shade");\r
     }\r
 \r
@@ -399,69 +377,11 @@ public class XSLFColor {
      * percentage with 0% indicating minimal tint and 100% indicating maximum\r
      * or -1 if the value is not set\r
      */\r
-    int getTint(){\r
+    public int getTint(){\r
         return getPercentageValue("tint");\r
     }\r
 \r
 \r
-    /**\r
-     * Apply lumMod / lumOff adjustments\r
-     *\r
-     * @param c the color to modify\r
-     * @param lumMod luminance modulation in the range [0..100]\r
-     * @param lumOff luminance offset in the range [0..100]\r
-     * @return  modified color\r
-     */\r
-    private static Color modulateLuminanace(Color c, int lumMod, int lumOff) {\r
-        Color color;\r
-        if (lumOff > 0) {\r
-            color = new Color(\r
-                    (int) (Math.round((255 - c.getRed()) * (100.0 - lumMod) / 100.0 + c.getRed())),\r
-                    (int) (Math.round((255 - c.getGreen()) * lumOff / 100.0 + c.getGreen())),\r
-                    (int) (Math.round((255 - c.getBlue()) * lumOff / 100.0 + c.getBlue())),\r
-                    c.getAlpha()\r
-            );\r
-        } else {\r
-            color = new Color(\r
-                    (int) (Math.round(c.getRed() * lumMod / 100.0)),\r
-                    (int) (Math.round(c.getGreen() * lumMod / 100.0)),\r
-                    (int) (Math.round(c.getBlue() * lumMod / 100.0)),\r
-                    c.getAlpha()\r
-            );\r
-        }\r
-        return color;\r
-    }\r
-\r
-    /**\r
-     * This algorithm returns result different from PowerPoint.\r
-     * TODO: revisit and improve\r
-     */\r
-    private static Color shade(Color c, int shade) {\r
-        return new Color(\r
-                (int)(c.getRed() * shade * 0.01),\r
-                (int)(c.getGreen() * shade * 0.01),\r
-                (int)(c.getBlue() * shade * 0.01),\r
-                c.getAlpha());\r
-    }\r
-\r
-    /**\r
-     * This algorithm returns result different from PowerPoint.\r
-     * TODO: revisit and improve\r
-     */\r
-    private static Color tint(Color c, int tint) {\r
-        int r = c.getRed();\r
-        int g = c.getGreen();\r
-        int b = c.getBlue();\r
-\r
-        float ftint = tint / 100.0f;\r
-\r
-        int red = Math.round(ftint * r + (1 - ftint) * 255);\r
-        int green = Math.round(ftint * g + (1 - ftint) * 255);\r
-        int blue = Math.round(ftint * b + (1 - ftint) * 255);\r
-\r
-        return new Color(red, green, blue);\r
-    }\r
-\r
     /**\r
      * Preset colors defined in DrawingML\r
      */\r
index 529bacf734d6608acbc92f200c60e080e4a74358..514c1bc90f93b1529b1a5853e0ac2a0546a7a7be 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.poi.POIXMLException;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;\r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.openxml4j.opc.PackageRelationship;\r
+import org.apache.poi.sl.usermodel.ShapeType;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Units;\r
 import org.apache.xmlbeans.XmlCursor;\r
@@ -34,6 +35,7 @@ import org.openxmlformats.schemas.drawingml.x2006.main.CTTransform2D;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;\r
 \r
 import javax.xml.namespace.QName;\r
+\r
 import java.awt.Graphics2D;\r
 import java.awt.geom.Rectangle2D;\r
 \r
@@ -58,8 +60,8 @@ public class XSLFGraphicFrame extends XSLFShape {
         return _sheet;\r
     }\r
 \r
-    public int getShapeType(){\r
-        throw new RuntimeException("NotImplemented");\r
+    public ShapeType getShapeType(){\r
+        throw new UnsupportedOperationException();\r
     }\r
 \r
     public int getShapeId(){\r
index 2ad699b408cc1e7ca8c77006413865b5b7c36132..f93fc803fb15352c68f264b6511de299649743f5 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.Graphics2D;\r
+import java.awt.geom.AffineTransform;\r
+import java.awt.geom.Rectangle2D;\r
+import java.util.Iterator;\r
+import java.util.List;\r
+import java.util.regex.Pattern;\r
+\r
 import org.apache.poi.openxml4j.opc.PackagePart;\r
 import org.apache.poi.openxml4j.opc.PackageRelationship;\r
 import org.apache.poi.openxml4j.opc.TargetMode;\r
+import org.apache.poi.sl.usermodel.ShapeType;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Units;\r
 import org.apache.xmlbeans.XmlObject;\r
@@ -35,13 +43,6 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShapeNonVisual;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;\r
 \r
-import java.awt.Graphics2D;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.geom.Rectangle2D;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.regex.Pattern;\r
-\r
 /**\r
  * Represents a group shape that consists of many shapes grouped together.\r
  * \r
@@ -207,30 +208,35 @@ public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer {
     public XSLFAutoShape createAutoShape(){\r
         XSLFAutoShape sh = getDrawing().createAutoShape();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
     public XSLFFreeformShape createFreeform(){\r
         XSLFFreeformShape sh = getDrawing().createFreeform();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
     public XSLFTextBox createTextBox(){\r
         XSLFTextBox sh = getDrawing().createTextBox();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
     public XSLFConnectorShape createConnector(){\r
         XSLFConnectorShape sh = getDrawing().createConnector();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
     public XSLFGroupShape createGroup(){\r
         XSLFGroupShape sh = getDrawing().createGroup();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
@@ -251,6 +257,7 @@ public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer {
         XSLFPictureShape sh = getDrawing().createPicture(rel.getId());\r
         sh.resize();\r
         _shapes.add(sh);\r
+        sh.setParent(this);\r
         return sh;\r
     }\r
 \r
@@ -343,4 +350,13 @@ public class XSLFGroupShape extends XSLFShape implements XSLFShapeContainer {
         }\r
     }\r
 \r
+    public ShapeType getShapeType(){\r
+        return null;\r
+    }\r
+\r
+    public void addShape(XSLFShape shape) {\r
+        throw new UnsupportedOperationException(\r
+            "Adding a shape from a different container is not supported -"\r
+            + " create it from scratch witht XSLFGroupShape.create* methods");\r
+    }\r
 }
\ No newline at end of file
index 0a33132e282df136afacc81dd8cdfc04abb806cf..62f9cc4ad6a499390adacfb547b48e61fd1286d3 100644 (file)
@@ -21,6 +21,8 @@ import java.io.IOException;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.Notes;
+import org.apache.poi.sl.usermodel.TextRun;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTCommonSlideData;
@@ -28,7 +30,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTNotesSlide;
 import org.openxmlformats.schemas.presentationml.x2006.main.NotesDocument;
 
 @Beta
-public final class XSLFNotes extends XSLFSheet {
+public final class XSLFNotes extends XSLFSheet implements Notes<XSLFShape> {
    private CTNotesSlide _notes;
 
     /**
@@ -80,7 +82,6 @@ public final class XSLFNotes extends XSLFSheet {
        return getMasterSheet().getTheme();
     }
 
-    @Override
     public XSLFNotesMaster getMasterSheet() {
         for (POIXMLDocumentPart p : getRelations()) {
            if (p instanceof XSLFNotesMaster){
@@ -89,4 +90,20 @@ public final class XSLFNotes extends XSLFSheet {
         }
         return null;
     }
+
+    public TextRun getTextRun() {
+        for (XSLFShape sh : super.getShapes()) {
+            if (sh instanceof XSLFTextShape) {
+                XSLFTextShape txt = (XSLFTextShape)sh;
+                for (XSLFTextParagraph p : txt.getTextParagraphs()) {
+                    for (XSLFTextRun r : p.getTextRuns()) {
+                        return r;
+                    }
+                }
+            }
+        }
+        return null;
+    }
+    
+    
 }
index 40937e87858daf36c944412b47d94ac1b6db3498..c5de53767700e9be89a0cf78995a020af7d666c2 100644 (file)
@@ -23,6 +23,7 @@ import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.POIXMLException;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.MasterSheet;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTColorMapping;
@@ -46,7 +47,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.NotesMasterDocument;
  * @author Yegor Kozlov
 */
 @Beta
- public class XSLFNotesMaster extends XSLFSheet {
+ public class XSLFNotesMaster extends XSLFSheet implements MasterSheet<XSLFShape> {
         private CTNotesMaster _slide;
      private XSLFTheme _theme;
 
@@ -93,7 +94,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.NotesMasterDocument;
     }
 
     @Override
-    public XSLFSheet getMasterSheet() {
+    public MasterSheet getMasterSheet() {
         return null;
     }
     
index 42dc360cd6f7cfd530095c495f642b13b378d03c..fa4b192ec4dba1d27c9dae4b100076f166676f29 100644 (file)
@@ -17,6 +17,7 @@
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import org.apache.poi.sl.usermodel.Shadow;\r
 import org.apache.poi.util.Units;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTOuterShadowEffect;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTSchemeColor;\r
@@ -31,7 +32,7 @@ import java.awt.geom.Rectangle2D;
  *\r
  * @author Yegor Kozlov\r
  */\r
-public class XSLFShadow extends XSLFSimpleShape {\r
+public class XSLFShadow extends XSLFSimpleShape implements Shadow {\r
 \r
     private XSLFSimpleShape _parent;\r
 \r
index 82addf7ddb7ea9ba6aa7352bbb61277567657167..aa6e2c712f35f5c907bacbab66d2b374a50c43b8 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
-import java.awt.Graphics2D;\r
-import java.awt.geom.AffineTransform;\r
+import java.awt.Color;\r
 import java.awt.geom.Rectangle2D;\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+import java.util.Arrays;\r
+import java.util.Comparator;\r
 \r
-import org.apache.poi.util.Beta;\r
-import org.apache.poi.util.Internal;\r
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;\r
+import org.apache.poi.openxml4j.opc.PackagePart;\r
+import org.apache.poi.openxml4j.opc.PackageRelationship;\r
+import org.apache.poi.sl.draw.DrawPaint;\r
+import org.apache.poi.sl.draw.geom.CustomGeometry;\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.util.*;\r
+import org.apache.poi.xslf.model.PropertyFetcher;\r
 import org.apache.xmlbeans.XmlObject;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
+import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;\r
+import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;\r
 \r
 /**\r
  * Base super-class class for all shapes in PresentationML\r
@@ -33,25 +45,43 @@ import org.apache.xmlbeans.XmlObject;
  * @author Yegor Kozlov\r
  */\r
 @Beta\r
-public abstract class XSLFShape {\r
+public abstract class XSLFShape implements Shape {\r
+    protected final XmlObject _shape;\r
+    protected final XSLFSheet _sheet;\r
+    protected XSLFShapeContainer _parent;\r
 \r
-    /**\r
-     * @return the position of this shape within the drawing canvas.\r
-     *         The coordinates are expressed in points\r
-     */\r
-    public abstract Rectangle2D getAnchor();\r
+    private CTShapeProperties _spPr;\r
+    private CTShapeStyle _spStyle;\r
+    private CTNonVisualDrawingProps _nvPr;\r
+    private CTPlaceholder _ph;\r
 \r
-    /**\r
-     * @param anchor the position of this shape within the drawing canvas.\r
-     *               The coordinates are expressed in points\r
-     */\r
-    public abstract void setAnchor(Rectangle2D anchor);\r
+    private static final PaintStyle TRANSPARENT_PAINT = new SolidPaint() {\r
+        public ColorStyle getSolidColor() {\r
+            return new ColorStyle(){\r
+                public Color getColor() { return DrawPaint.NO_PAINT; }\r
+                public int getAlpha() { return -1; }\r
+                public int getLumOff() { return -1; }\r
+                public int getLumMod() { return -1; }\r
+                public int getShade() { return -1; }\r
+                public int getTint() { return -1; }\r
+            };\r
+        }\r
+    };\r
+    \r
+    \r
+    protected XSLFShape(XmlObject shape, XSLFSheet sheet) {\r
+        _shape = shape;\r
+        _sheet = sheet;\r
+    }\r
 \r
+    \r
     /**\r
      * @return the xml bean holding this shape's data\r
      */\r
-    public abstract XmlObject getXmlObject();\r
-\r
+    public XmlObject getXmlObject() {\r
+        return _shape;\r
+    }\r
+    \r
     /**\r
      * @return human-readable name of this shape, e.g. "Rectange 3"\r
      */\r
@@ -119,97 +149,417 @@ public abstract class XSLFShape {
     public abstract boolean getFlipVertical();\r
 \r
     /**\r
-     * Draw this shape into the supplied canvas\r
+     * Set the contents of this shape to be a copy of the source shape.\r
+     * This method is called recursively for each shape when merging slides\r
      *\r
-     * @param graphics the graphics to draw into\r
+     * @param  sh the source shape\r
+     * @see org.apache.poi.xslf.usermodel.XSLFSlide#importContent(XSLFSheet)\r
      */\r
-    public abstract void draw(Graphics2D graphics);\r
+    @Internal\r
+    void copy(XSLFShape sh) {\r
+        if (!getClass().isInstance(sh)) {\r
+            throw new IllegalArgumentException(\r
+                    "Can't copy " + sh.getClass().getSimpleName() + " into " + getClass().getSimpleName());\r
+        }\r
 \r
+        setAnchor(sh.getAnchor());\r
+    }\r
+    \r
+    public void setParent(XSLFShapeContainer parent) {\r
+        this._parent = parent;\r
+    }\r
+    \r
+    public XSLFShapeContainer getParent() {\r
+        return this._parent;\r
+    }\r
+    \r
+    public boolean isPlaceholder() {\r
+        return false;\r
+    }\r
+\r
+    public StrokeStyle getStrokeStyle() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    public CustomGeometry getGeometry() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    public ShapeType getShapeType() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    public XSLFSheet getSheet() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+    \r
     /**\r
-     * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.\r
+     * fetch shape fill as a java.awt.Paint\r
      *\r
-     * @param graphics the graphics whos transform matrix will be modified\r
+     * @return either Color or GradientPaint or TexturePaint or null\r
      */\r
-    protected void applyTransform(Graphics2D graphics) {\r
-        Rectangle2D anchor = getAnchor();\r
-        AffineTransform tx = (AffineTransform)graphics.getRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM);\r
-        if(tx != null) {\r
-            anchor = tx.createTransformedShape(anchor).getBounds2D();\r
-        }\r
+    @Override\r
+    public FillStyle getFillStyle() {\r
+        return new FillStyle() {\r
+            public PaintStyle getPaint() {\r
+                PropertyFetcher<PaintStyle> fetcher = new PropertyFetcher<PaintStyle>() {\r
+                    public boolean fetch(XSLFShape shape) {\r
+                        CTShapeProperties spPr = shape.getSpPr();\r
+                        if (spPr.isSetNoFill()) {\r
+                            setValue(TRANSPARENT_PAINT);\r
+                            return true;\r
+                        }\r
+                        \r
+                        PaintStyle paint = null;\r
+                        for (XmlObject obj : spPr.selectPath("*")) {\r
+                            paint = selectPaint(obj, null, getSheet().getPackagePart());\r
+                            if (paint != null) break;\r
+                        }\r
+                        \r
+                        if (paint == null) return false;\r
+                        \r
+                        setValue(paint);\r
+                        return true;\r
+                    }\r
+                };\r
+                fetchShapeProperty(fetcher);\r
 \r
-        // rotation\r
-        double rotation = getRotation();\r
-        if (rotation != 0.) {\r
-            // PowerPoint rotates shapes relative to the geometric center\r
-            double centerX = anchor.getCenterX();\r
-            double centerY = anchor.getCenterY();\r
-\r
-            // normalize rotation\r
-            rotation = (360.+(rotation%360.))%360.;\r
-            int quadrant = (((int)rotation+45)/90)%4;\r
-            double scaleX = 1.0, scaleY = 1.0;\r
-\r
-            // scale to bounding box (bug #53176)\r
-            if (quadrant == 1 || quadrant == 3) {\r
-                // In quadrant 1 and 3, which is basically a shape in a more or less portrait orientation \r
-                // (45-135 degrees and 225-315 degrees), we need to first rotate the shape by a multiple \r
-                // of 90 degrees and then resize the bounding box to its original bbox. After that we can \r
-                // rotate the shape to the exact rotation amount.\r
-                // It's strange that you'll need to rotate the shape back and forth again, but you can\r
-                // think of it, as if you paint the shape on a canvas. First you rotate the canvas, which might\r
-                // be already (differently) scaled, so you can paint the shape in its default orientation\r
-                // and later on, turn it around again to compare it with its original size ...\r
-                AffineTransform txg = new AffineTransform(); // graphics coordinate space\r
-                AffineTransform txs = new AffineTransform(tx); // shape coordinate space\r
-                txg.translate(centerX, centerY);\r
-                txg.rotate(Math.toRadians(quadrant*90));\r
-                txg.translate(-centerX, -centerY);\r
-                txs.translate(centerX, centerY);\r
-                txs.rotate(Math.toRadians(-quadrant*90));\r
-                txs.translate(-centerX, -centerY);\r
-                txg.concatenate(txs);\r
-                Rectangle2D anchor2 = txg.createTransformedShape(getAnchor()).getBounds2D();\r
-                scaleX = anchor.getWidth() == 0. ? 1.0 : anchor.getWidth() / anchor2.getWidth();\r
-                scaleY = anchor.getHeight() == 0. ? 1.0 : anchor.getHeight() / anchor2.getHeight();\r
+                PaintStyle paint = fetcher.getValue();\r
+\r
+                if (paint != null) return paint;\r
+                \r
+                // fill color was not found, check if it is defined in the theme\r
+                CTShapeStyle style = getSpStyle();\r
+                if (style != null) {\r
+                    // get a reference to a fill style within the style matrix.\r
+                    CTStyleMatrixReference fillRef = style.getFillRef();\r
+                    // The idx attribute refers to the index of a fill style or\r
+                    // background fill style within the presentation's style matrix, defined by the fmtScheme element.\r
+                    // value of 0 or 1000 indicates no background,\r
+                    // values 1-999 refer to the index of a fill style within the fillStyleLst element\r
+                    // values 1001 and above refer to the index of a background fill style within the bgFillStyleLst element.\r
+                    int idx = (int)fillRef.getIdx();\r
+                    CTSchemeColor phClr = fillRef.getSchemeClr();\r
+                    XSLFSheet sheet = _sheet;\r
+                    XSLFTheme theme = sheet.getTheme();\r
+                    XmlObject fillProps = null;\r
+                    CTStyleMatrix matrix = theme.getXmlObject().getThemeElements().getFmtScheme();\r
+                    if(idx >= 1 && idx <= 999){\r
+                        fillProps = matrix.getFillStyleLst().selectPath("*")[idx - 1];\r
+                    } else if (idx >= 1001 ){\r
+                        fillProps = matrix.getBgFillStyleLst().selectPath("*")[idx - 1001];\r
+                    }\r
+                    if(fillProps != null) {\r
+                        paint = selectPaint(fillProps, phClr, sheet.getPackagePart());\r
+                    }\r
+                }\r
+                return paint == RenderableShape.NO_PAINT ? null : paint;\r
             }\r
+        };\r
+    }\r
+\r
+    /**\r
+     * Walk up the inheritance tree and fetch shape properties.\r
+     *\r
+     * The following order of inheritance is assumed:\r
+     * <p>\r
+     * slide <-- slideLayout <-- slideMaster\r
+     * </p>\r
+     *\r
+     * @param visitor the object that collects the desired property\r
+     * @return true if the property was fetched\r
+     */\r
+    protected boolean fetchShapeProperty(PropertyFetcher<?> visitor) {\r
+        boolean ok = visitor.fetch(this);\r
+\r
+        XSLFSimpleShape masterShape;\r
+        XSLFSheet masterSheet = (XSLFSheet)getSheet().getMasterSheet();\r
+        CTPlaceholder ph = getCTPlaceholder();\r
+\r
+        if (masterSheet != null && ph != null) {\r
+            if (!ok) {\r
+                masterShape = masterSheet.getPlaceholder(ph);\r
+                if (masterShape != null) {\r
+                    ok = visitor.fetch(masterShape);\r
+                }\r
+            }\r
+\r
+            // try slide master\r
+            if (!ok ) {\r
+                int textType;\r
+                if ( !ph.isSetType()) textType = STPlaceholderType.INT_BODY;\r
+                else {\r
+                    switch (ph.getType().intValue()) {\r
+                        case STPlaceholderType.INT_TITLE:\r
+                        case STPlaceholderType.INT_CTR_TITLE:\r
+                            textType = STPlaceholderType.INT_TITLE;\r
+                            break;\r
+                        case STPlaceholderType.INT_FTR:\r
+                        case STPlaceholderType.INT_SLD_NUM:\r
+                        case STPlaceholderType.INT_DT:\r
+                            textType = ph.getType().intValue();\r
+                            break;\r
+                        default:\r
+                            textType = STPlaceholderType.INT_BODY;\r
+                            break;\r
+                    }\r
+                }\r
+                XSLFSheet master = (XSLFSheet)masterSheet.getMasterSheet();\r
+                if (master != null) {\r
+                    masterShape = master.getPlaceholderByType(textType);\r
+                    if (masterShape != null) {\r
+                        ok = visitor.fetch(masterShape);\r
+                    }\r
+                }\r
+            }\r
+        }\r
+        return ok;\r
+    }\r
 \r
-            // transformation is applied reversed ...\r
-            graphics.translate(centerX, centerY);\r
-            graphics.rotate(Math.toRadians(rotation-(double)(quadrant*90)));\r
-            graphics.scale(scaleX, scaleY);\r
-            graphics.rotate(Math.toRadians(quadrant*90));\r
-            graphics.translate(-centerX, -centerY);\r
+    protected CTPlaceholder getCTPlaceholder() {\r
+        if (_ph == null) {\r
+            XmlObject[] obj = _shape.selectPath(\r
+                    "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:nvPr/p:ph");\r
+            if (obj.length == 1) {\r
+                _ph = (CTPlaceholder) obj[0];\r
+            }\r
         }\r
+        return _ph;\r
+    }\r
+    \r
+    protected CTShapeStyle getSpStyle() {\r
+        if (_spStyle == null) {\r
+            for (XmlObject obj : _shape.selectPath("*")) {\r
+                if (obj instanceof CTShapeStyle) {\r
+                    _spStyle = (CTShapeStyle) obj;\r
+                }\r
+            }\r
+        }\r
+        return _spStyle;\r
+    }\r
 \r
-        //flip horizontal\r
-        if (getFlipHorizontal()) {\r
-            graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());\r
-            graphics.scale(-1, 1);\r
-            graphics.translate(-anchor.getX(), -anchor.getY());\r
+    protected CTNonVisualDrawingProps getNvPr() {\r
+        if (_nvPr == null) {\r
+            XmlObject[] rs = _shape\r
+                    .selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:cNvPr");\r
+            if (rs.length != 0) {\r
+                _nvPr = (CTNonVisualDrawingProps) rs[0];\r
+            }\r
         }\r
+        return _nvPr;\r
+    }\r
 \r
-        //flip vertical\r
-        if (getFlipVertical()) {\r
-            graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());\r
-            graphics.scale(1, -1);\r
-            graphics.translate(-anchor.getX(), -anchor.getY());\r
+    protected CTShapeProperties getSpPr() {\r
+        if (_spPr == null) {\r
+            for (XmlObject obj : _shape.selectPath("*")) {\r
+                if (obj instanceof CTShapeProperties) {\r
+                    _spPr = (CTShapeProperties) obj;\r
+                }\r
+            }\r
+        }\r
+        if (_spPr == null) {\r
+            throw new IllegalStateException("CTShapeProperties was not found.");\r
         }\r
+        return _spPr;\r
     }\r
 \r
+    CTTransform2D getXfrm() {\r
+        PropertyFetcher<CTTransform2D> fetcher = new PropertyFetcher<CTTransform2D>() {\r
+            public boolean fetch(XSLFShape shape) {\r
+                CTShapeProperties pr = shape.getSpPr();\r
+                if (pr.isSetXfrm()) {\r
+                    setValue(pr.getXfrm());\r
+                    return true;\r
+                }\r
+                return false;\r
+            }\r
+        };\r
+        fetchShapeProperty(fetcher);\r
+        return fetcher.getValue();\r
+    }\r
+    \r
     /**\r
-     * Set the contents of this shape to be a copy of the source shape.\r
-     * This method is called recursively for each shape when merging slides\r
+     * @return the position of this shape within the drawing canvas.\r
+     *         The coordinates are expressed in points\r
+     */\r
+    public Rectangle2D getAnchor() {\r
+        CTTransform2D xfrm = getXfrm();\r
+        if (xfrm == null) return null;\r
+\r
+        CTPoint2D off = xfrm.getOff();\r
+        long x = off.getX();\r
+        long y = off.getY();\r
+        CTPositiveSize2D ext = xfrm.getExt();\r
+        long cx = ext.getCx();\r
+        long cy = ext.getCy();\r
+        return new Rectangle2D.Double(\r
+                Units.toPoints(x), Units.toPoints(y),\r
+                Units.toPoints(cx), Units.toPoints(cy));\r
+    }\r
+\r
+    /**\r
+     * @param anchor the position of this shape within the drawing canvas.\r
+     *               The coordinates are expressed in points\r
+     */\r
+    public void setAnchor(Rectangle2D anchor) {\r
+        CTShapeProperties spPr = getSpPr();\r
+        if (spPr == null) return;\r
+        \r
+        CTTransform2D xfrm = spPr.isSetXfrm() ? spPr.getXfrm() : spPr.addNewXfrm();\r
+        CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff();\r
+        long x = Units.toEMU(anchor.getX());\r
+        long y = Units.toEMU(anchor.getY());\r
+        off.setX(x);\r
+        off.setY(y);\r
+        CTPositiveSize2D ext = xfrm.isSetExt() ? xfrm.getExt() : xfrm\r
+                .addNewExt();\r
+        long cx = Units.toEMU(anchor.getWidth());\r
+        long cy = Units.toEMU(anchor.getHeight());\r
+        ext.setCx(cx);\r
+        ext.setCy(cy);\r
+    }\r
+    \r
+    /**\r
+     * Convert shape fill into java.awt.Paint. The result is either Color or\r
+     * TexturePaint or GradientPaint or null\r
      *\r
-     * @param  sh the source shape\r
-     * @see org.apache.poi.xslf.usermodel.XSLFSlide#importContent(XSLFSheet)\r
+     * @param graphics  the target graphics\r
+     * @param obj       the xml to read. Must contain elements from the EG_ColorChoice group:\r
+     * <code>\r
+     *     a:scrgbClr    RGB Color Model - Percentage Variant\r
+     *     a:srgbClr    RGB Color Model - Hex Variant\r
+     *     a:hslClr    Hue, Saturation, Luminance Color Model\r
+     *     a:sysClr    System Color\r
+     *     a:schemeClr    Scheme Color\r
+     *     a:prstClr    Preset Color\r
+     *  </code>\r
+     *\r
+     * @param phClr     context color\r
+     * @param parentPart    the parent package part. Any external references (images, etc.) are resolved relative to it.\r
+     *\r
+     * @return  the applied Paint or null if none was applied\r
      */\r
-    @Internal\r
-    void copy(XSLFShape sh) {\r
-        if (!getClass().isInstance(sh)) {\r
-            throw new IllegalArgumentException(\r
-                    "Can't copy " + sh.getClass().getSimpleName() + " into " + getClass().getSimpleName());\r
+    protected PaintStyle selectPaint(XmlObject obj, final CTSchemeColor phClr, final PackagePart parentPart) {\r
+        final XSLFTheme theme = getSheet().getTheme();\r
+\r
+        if (obj instanceof CTNoFillProperties) {\r
+            return TRANSPARENT_PAINT;\r
         }\r
+        \r
+        if (obj instanceof CTSolidColorFillProperties) {\r
+            CTSolidColorFillProperties solidFill = (CTSolidColorFillProperties) obj;\r
+            final XSLFColor c = new XSLFColor(solidFill, theme, phClr);\r
+            return new SolidPaint() {\r
+                public ColorStyle getSolidColor() {\r
+                    return c.getColorStyle();\r
+                }\r
+            };\r
+        }\r
+        \r
+        if (obj instanceof CTBlipFillProperties) {\r
+            CTBlipFillProperties blipFill = (CTBlipFillProperties)obj;\r
+            final CTBlip blip = blipFill.getBlip();\r
+            return new TexturePaint() {\r
+                private PackagePart getPart() {\r
+                    try {\r
+                        String blipId = blip.getEmbed();\r
+                        PackageRelationship rel = parentPart.getRelationship(blipId);\r
+                        return parentPart.getRelatedPart(rel);\r
+                    } catch (InvalidFormatException e) {\r
+                        throw new RuntimeException(e);\r
+                    }\r
+                }\r
+                \r
+                public InputStream getImageData() {\r
+                    try {\r
+                        return getPart().getInputStream();\r
+                    } catch (IOException e) {\r
+                        throw new RuntimeException(e);\r
+                    }\r
+                }\r
 \r
-        setAnchor(sh.getAnchor());\r
+                public String getContentType() {\r
+                    /* TOOD: map content-type */\r
+                    return getPart().getContentType();\r
+                }\r
+\r
+                public int getAlpha() {\r
+                    return (blip.sizeOfAlphaModFixArray() > 0)\r
+                        ? blip.getAlphaModFixArray(0).getAmt()\r
+                        : 0;\r
+                }\r
+            };\r
+        }\r
+        \r
+        if (obj instanceof CTGradientFillProperties) {\r
+            final CTGradientFillProperties gradFill = (CTGradientFillProperties) obj;\r
+\r
+            @SuppressWarnings("deprecation")\r
+            final CTGradientStop[] gs = gradFill.getGsLst().getGsArray();\r
+\r
+            Arrays.sort(gs, new Comparator<CTGradientStop>() {\r
+                public int compare(CTGradientStop o1, CTGradientStop o2) {\r
+                    Integer pos1 = o1.getPos();\r
+                    Integer pos2 = o2.getPos();\r
+                    return pos1.compareTo(pos2);\r
+                }\r
+            });\r
+\r
+            final ColorStyle cs[] = new ColorStyle[gs.length];\r
+            final float fractions[] = new float[gs.length];\r
+            \r
+            int i=0;\r
+            for (CTGradientStop cgs : gs) {\r
+                cs[i] = new XSLFColor(cgs, theme, phClr).getColorStyle();\r
+                fractions[i] = cgs.getPos() / 100000.f;\r
+            }\r
+            \r
+            return new GradientPaint() {\r
+\r
+                public double getGradientAngle() {\r
+                    return (gradFill.isSetLin())\r
+                        ? gradFill.getLin().getAng() / 60000.d\r
+                        : 0;\r
+                }\r
+\r
+                public ColorStyle[] getGradientColors() {\r
+                    return cs;\r
+                }\r
+\r
+                public float[] getGradientFractions() {\r
+                    return fractions;\r
+                }\r
+\r
+                public boolean isRotatedWithShape() {\r
+                    // TODO: is this correct???\r
+                    return (gradFill.isSetRotWithShape() || !gradFill.getRotWithShape());\r
+                }\r
+\r
+                public GradientType getGradientType() {\r
+                    if (gradFill.isSetLin()) {\r
+                        return GradientType.linear;\r
+                    }\r
+                    \r
+                    if (gradFill.isSetPath()) {\r
+                        /* TODO: handle rect path */\r
+                        STPathShadeType.Enum ps = gradFill.getPath().getPath();\r
+                        if (ps == STPathShadeType.CIRCLE) {\r
+                            return GradientType.circular;\r
+                        } else if (ps == STPathShadeType.SHAPE) {\r
+                            return GradientType.shape;\r
+                        }\r
+                    }\r
+                    \r
+                    return GradientType.linear;\r
+                }\r
+            };\r
+        }\r
+        \r
+        return TRANSPARENT_PAINT;\r
     }\r
+\r
 }
\ No newline at end of file
index 3a20891846f06979ed0d55bbfcf02fc8c3673a2a..d839a49d37dd17cf7114625a3ce315075c7d04e1 100644 (file)
 
 package org.apache.poi.xslf.usermodel;
 
+import org.apache.poi.sl.usermodel.ShapeContainer;
+
 /**
  * Common interface for shape containers, e.g. sheets or groups of shapes
  */
-public interface XSLFShapeContainer extends Iterable<XSLFShape> {
+public interface XSLFShapeContainer extends ShapeContainer {
 
     /**
      * create a new shape with a predefined geometry and add it to this shape container
@@ -55,27 +57,6 @@ public interface XSLFShapeContainer extends Iterable<XSLFShape> {
      */
     XSLFPictureShape createPicture(int pictureIndex);
 
-    /**
-     * Returns an array containing all of the elements in this container in proper
-     * sequence (from first to last element).
-     *
-     * @return an array containing all of the elements in this container in proper
-     *         sequence
-     */
-    XSLFShape[] getShapes();
-
-    /**
-     * Removes the specified shape from this sheet, if it is present
-     * (optional operation).  If this sheet does not contain the element,
-     * it is unchanged.
-     *
-     * @param xShape shape to be removed from this sheet, if present
-     * @return <tt>true</tt> if this sheet contained the specified element
-     * @throws IllegalArgumentException if the type of the specified shape
-     *         is incompatible with this sheet (optional)
-     */
-    boolean removeShape(XSLFShape xShape) ;
-
     /**
      * Removes all of the elements from this container (optional operation).
      * The container will be empty after this call returns.
diff --git a/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeType.java b/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFShapeType.java
deleted file mode 100644 (file)
index 57163ff..0000000
+++ /dev/null
@@ -1,236 +0,0 @@
-/*
- *  ====================================================================
- *    Licensed to the Apache Software Foundation (ASF) under one or more
- *    contributor license agreements.  See the NOTICE file distributed with
- *    this work for additional information regarding copyright ownership.
- *    The ASF licenses this file to You under the Apache License, Version 2.0
- *    (the "License"); you may not use this file except in compliance with
- *    the License.  You may obtain a copy of the License at
- *
- *        http://www.apache.org/licenses/LICENSE-2.0
- *
- *    Unless required by applicable law or agreed to in writing, software
- *    distributed under the License is distributed on an "AS IS" BASIS,
- *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- *    See the License for the specific language governing permissions and
- *    limitations under the License.
- * ==================================================================== 
- */
-
-package org.apache.poi.xslf.usermodel;
-
-/**
- * known preset shape geometries in PresentationML
- *
- * @author Yegor Kozlov
- */
-public enum XSLFShapeType {
-    LINE(1),
-    LINE_INV(2),
-    TRIANGLE(3),
-    RT_TRIANGLE(4),
-    RECT(5),
-    DIAMOND(6),
-    PARALLELOGRAM(7),
-    TRAPEZOID(8),
-    NON_ISOSCELES_TRAPEZOID(9),
-    PENTAGON(10),
-    HEXAGON(11),
-    HEPTAGON(12),
-    OCTAGON(13),
-    DECAGON(14),
-    DODECAGON(15),
-    STAR_4(16),
-    STAR_5(17),
-    STAR_6(18),
-    STAR_7(19),
-    STAR_8(20),
-    STAR_10(21),
-    STAR_12(22),
-    STAR_16(23),
-    STAR_24(24),
-    STAR_32(25),
-    ROUND_RECT(26),
-    ROUND_1_RECT(27),
-    ROUND_2_SAME_RECT(28),
-    ROUND_2_DIAG_RECT(29),
-    SNIP_ROUND_RECT(30),
-    SNIP_1_RECT(31),
-    SNIP_2_SAME_RECT(32),
-    SNIP_2_DIAG_RECT(33),
-    PLAQUE(34),
-    ELLIPSE(35),
-    TEARDROP(36),
-    HOME_PLATE(37),
-    CHEVRON(38),
-    PIE_WEDGE(39),
-    PIE(40),
-    BLOCK_ARC(41),
-    DONUT(42),
-    NO_SMOKING(43),
-    RIGHT_ARROW(44),
-    LEFT_ARROW(45),
-    UP_ARROW(46),
-    DOWN_ARROW(47),
-    STRIPED_RIGHT_ARROW(48),
-    NOTCHED_RIGHT_ARROW(49),
-    BENT_UP_ARROW(50),
-    LEFT_RIGHT_ARROW(51),
-    UP_DOWN_ARROW(52),
-    LEFT_UP_ARROW(53),
-    LEFT_RIGHT_UP_ARROW(54),
-    QUAD_ARROW(55),
-    LEFT_ARROW_CALLOUT(56),
-    RIGHT_ARROW_CALLOUT(57),
-    UP_ARROW_CALLOUT(58),
-    DOWN_ARROW_CALLOUT(59),
-    LEFT_RIGHT_ARROW_CALLOUT(60),
-    UP_DOWN_ARROW_CALLOUT(61),
-    QUAD_ARROW_CALLOUT(62),
-    BENT_ARROW(63),
-    UTURN_ARROW(64),
-    CIRCULAR_ARROW(65),
-    LEFT_CIRCULAR_ARROW(66),
-    LEFT_RIGHT_CIRCULAR_ARROW(67),
-    CURVED_RIGHT_ARROW(68),
-    CURVED_LEFT_ARROW(69),
-    CURVED_UP_ARROW(70),
-    CURVED_DOWN_ARROW(71),
-    SWOOSH_ARROW(72),
-    CUBE(73),
-    CAN(74),
-    LIGHTNING_BOLT(75),
-    HEART(76),
-    SUN(77),
-    MOON(78),
-    SMILEY_FACE(79),
-    IRREGULAR_SEAL_1(80),
-    IRREGULAR_SEAL_2(81),
-    FOLDED_CORNER(82),
-    BEVEL(83),
-    FRAME(84),
-    HALF_FRAME(85),
-    CORNER(86),
-    DIAG_STRIPE(87),
-    CHORD(88),
-    ARC(89),
-    LEFT_BRACKET(90),
-    RIGHT_BRACKET(91),
-    LEFT_BRACE(92),
-    RIGHT_BRACE(93),
-    BRACKET_PAIR(94),
-    BRACE_PAIR(95),
-    STRAIGHT_CONNECTOR_1(96),
-    BENT_CONNECTOR_2(97),
-    BENT_CONNECTOR_3(98),
-    BENT_CONNECTOR_4(99),
-    BENT_CONNECTOR_5(100),
-    CURVED_CONNECTOR_2(101),
-    CURVED_CONNECTOR_3(102),
-    CURVED_CONNECTOR_4(103),
-    CURVED_CONNECTOR_5(104),
-    CALLOUT_1(105),
-    CALLOUT_2(106),
-    CALLOUT_3(107),
-    ACCENT_CALLOUT_1(108),
-    ACCENT_CALLOUT_2(109),
-    ACCENT_CALLOUT_3(110),
-    BORDER_CALLOUT_1(111),
-    BORDER_CALLOUT_2(112),
-    BORDER_CALLOUT_3(113),
-    ACCENT_BORDER_CALLOUT_1(114),
-    ACCENT_BORDER_CALLOUT_2(115),
-    ACCENT_BORDER_CALLOUT_3(116),
-    WEDGE_RECT_CALLOUT(117),
-    WEDGE_ROUND_RECT_CALLOUT(118),
-    WEDGE_ELLIPSE_CALLOUT(119),
-    CLOUD_CALLOUT(120),
-    CLOUD(121),
-    RIBBON(122),
-    RIBBON_2(123),
-    ELLIPSE_RIBBON(124),
-    ELLIPSE_RIBBON_2(125),
-    LEFT_RIGHT_RIBBON(126),
-    VERTICAL_SCROLL(127),
-    HORIZONTAL_SCROLL(128),
-    WAVE(129),
-    DOUBLE_WAVE(130),
-    PLUS(131),
-    FLOW_CHART_PROCESS(132),
-    FLOW_CHART_DECISION(133),
-    FLOW_CHART_INPUT_OUTPUT(134),
-    FLOW_CHART_PREDEFINED_PROCESS(135),
-    FLOW_CHART_INTERNAL_STORAGE(136),
-    FLOW_CHART_DOCUMENT(137),
-    FLOW_CHART_MULTIDOCUMENT(138),
-    FLOW_CHART_TERMINATOR(139),
-    FLOW_CHART_PREPARATION(140),
-    FLOW_CHART_MANUAL_INPUT(141),
-    FLOW_CHART_MANUAL_OPERATION(142),
-    FLOW_CHART_CONNECTOR(143),
-    FLOW_CHART_PUNCHED_CARD(144),
-    FLOW_CHART_PUNCHED_TAPE(145),
-    FLOW_CHART_SUMMING_JUNCTION(146),
-    FLOW_CHART_OR(147),
-    FLOW_CHART_COLLATE(148),
-    FLOW_CHART_SORT(149),
-    FLOW_CHART_EXTRACT(150),
-    FLOW_CHART_MERGE(151),
-    FLOW_CHART_OFFLINE_STORAGE(152),
-    FLOW_CHART_ONLINE_STORAGE(153),
-    FLOW_CHART_MAGNETIC_TAPE(154),
-    FLOW_CHART_MAGNETIC_DISK(155),
-    FLOW_CHART_MAGNETIC_DRUM(156),
-    FLOW_CHART_DISPLAY(157),
-    FLOW_CHART_DELAY(158),
-    FLOW_CHART_ALTERNATE_PROCESS(159),
-    FLOW_CHART_OFFPAGE_CONNECTOR(160),
-    ACTION_BUTTON_BLANK(161),
-    ACTION_BUTTON_HOME(162),
-    ACTION_BUTTON_HELP(163),
-    ACTION_BUTTON_INFORMATION(164),
-    ACTION_BUTTON_FORWARD_NEXT(165),
-    ACTION_BUTTON_BACK_PREVIOUS(166),
-    ACTION_BUTTON_END(167),
-    ACTION_BUTTON_BEGINNING(168),
-    ACTION_BUTTON_RETURN(169),
-    ACTION_BUTTON_DOCUMENT(170),
-    ACTION_BUTTON_SOUND(171),
-    ACTION_BUTTON_MOVIE(172),
-    GEAR_6(173),
-    GEAR_9(174),
-    FUNNEL(175),
-    MATH_PLUS(176),
-    MATH_MINUS(177),
-    MATH_MULTIPLY(178),
-    MATH_DIVIDE(179),
-    MATH_EQUAL(180),
-    MATH_NOT_EQUAL(181),
-    CORNER_TABS(182),
-    SQUARE_TABS(183),
-    PLAQUE_TABS(184),
-    CHART_X(185),
-    CHART_STAR(186),
-    CHART_PLUS(187);
-
-    private int _idx;
-
-    XSLFShapeType(int idx){
-        _idx = idx;
-    }
-
-    /**
-     *
-     * @return index in the STShapeType enum
-     */
-    int getIndex(){
-        return _idx;
-    }
-
-    static XSLFShapeType forInt(int idx){
-        for(XSLFShapeType t : values()){
-            if(t._idx == idx) return t;
-        }
-        throw new IllegalArgumentException("Unknown shape type: " + idx);
-    }
-}
index 35100d1194938fc075ae4774812cab5f9c0e7a66..c9694e2185e199699e05d4652f8e087092ccd19b 100644 (file)
@@ -23,6 +23,8 @@ import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
 import org.apache.poi.openxml4j.opc.TargetMode;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
+import org.apache.poi.sl.usermodel.MasterSheet;
+import org.apache.poi.sl.usermodel.Sheet;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.Internal;
@@ -37,7 +39,10 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTPicture;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
 
+import com.sun.org.apache.xml.internal.utils.UnImplNode;
+
 import javax.xml.namespace.QName;
+
 import java.awt.Graphics2D;
 import java.awt.geom.AffineTransform;
 import java.io.IOException;
@@ -51,7 +56,7 @@ import java.util.Map;
 import java.util.regex.Pattern;
 
 @Beta
-public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer {
+public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeContainer, Sheet {
     private XSLFCommonSlideData _commonSlideData;
     private XSLFDrawing _drawing;
     private List<XSLFShape> _shapes;
@@ -142,6 +147,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFAutoShape sh = getDrawing().createAutoShape();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -149,6 +155,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFFreeformShape sh = getDrawing().createFreeform();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -156,6 +163,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFTextBox sh = getDrawing().createTextBox();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -163,6 +171,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFConnectorShape sh = getDrawing().createConnector();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -170,6 +179,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFGroupShape sh = getDrawing().createGroup();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -191,6 +201,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         sh.resize();
 
         getShapeList().add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -198,6 +209,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         List<XSLFShape> shapes = getShapeList();
         XSLFTable sh = getDrawing().createTable();
         shapes.add(sh);
+        sh.setParent(this);
         return sh;
     }
 
@@ -219,6 +231,12 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
         return getShapeList().iterator();
     }
 
+    public void addShape(XSLFShape shape) {
+        throw new UnsupportedOperationException(
+            "Adding a shape from a different container is not supported -"
+            + " create it from scratch witht XSLFSheet.create* methods");
+    }
+    
     /**
      * Removes the specified shape from this sheet, if it is present
      * (optional operation).  If this sheet does not contain the element,
@@ -370,12 +388,6 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
        return null;
     }
 
-    /**
-     *
-     * @return master of this sheet.
-     */
-    public abstract XSLFSheet getMasterSheet();
-
     protected XSLFTextShape getTextShapeByType(Placeholder type){
         for(XSLFShape shape : this.getShapes()){
             if(shape instanceof XSLFTextShape) {
@@ -486,7 +498,7 @@ public abstract class XSLFSheet extends POIXMLDocumentPart implements XSLFShapeC
      * @param graphics
      */
     public void draw(Graphics2D graphics){
-        XSLFSheet master = getMasterSheet();
+        XSLFSheet master = (XSLFSheet)getMasterSheet();
         if(getFollowMasterGraphics() && master != null) master.draw(graphics);
 
         graphics.setRenderingHint(XSLFRenderingHint.GROUP_TRANSFORM, new AffineTransform());
index d6cfa7fba3c6efd0c5c489f7e9e88778c4f18606..ca548dd6363c6dea25f18c7300b98d7a6b488491 100644 (file)
 \r
 package org.apache.poi.xslf.usermodel;\r
 \r
+import java.awt.*;\r
+import java.awt.Shape;\r
+import java.awt.geom.*;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+import javax.xml.stream.XMLStreamException;\r
+import javax.xml.stream.XMLStreamReader;\r
+\r
+import org.apache.poi.sl.draw.geom.*;\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineCap;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineDash;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.util.Units;\r
 import org.apache.poi.xslf.model.PropertyFetcher;\r
-import org.apache.poi.xslf.model.geom.CustomGeometry;\r
-import org.apache.poi.xslf.model.geom.Outline;\r
-import org.apache.poi.xslf.model.geom.Path;\r
-import org.apache.poi.xslf.model.geom.PresetGeometries;\r
 import org.apache.xmlbeans.XmlObject;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;\r
-import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;\r
-\r
-import java.awt.*;\r
-import java.awt.geom.AffineTransform;\r
-import java.awt.geom.Ellipse2D;\r
-import java.awt.geom.GeneralPath;\r
-import java.awt.geom.Rectangle2D;\r
-import java.util.ArrayList;\r
-import java.util.List;\r
+import org.openxmlformats.schemas.presentationml.x2006.main.*;\r
 \r
 /**\r
  * Represents a single (non-group) shape in a .pptx slide show\r
@@ -46,24 +45,11 @@ import java.util.List;
  * @author Yegor Kozlov\r
  */\r
 @Beta\r
-public abstract class XSLFSimpleShape extends XSLFShape {\r
+public abstract class XSLFSimpleShape extends XSLFShape implements SimpleShape {\r
     private static CTOuterShadowEffect NO_SHADOW = CTOuterShadowEffect.Factory.newInstance();\r
 \r
-    private final XmlObject _shape;\r
-    private final XSLFSheet _sheet;\r
-    private CTShapeProperties _spPr;\r
-    private CTShapeStyle _spStyle;\r
-    private CTNonVisualDrawingProps _nvPr;\r
-    private CTPlaceholder _ph;\r
-\r
     /* package */XSLFSimpleShape(XmlObject shape, XSLFSheet sheet) {\r
-        _shape = shape;\r
-        _sheet = sheet;\r
-    }\r
-\r
-    @Override\r
-    public XmlObject getXmlObject() {\r
-        return _shape;\r
+        super(shape,sheet);\r
     }\r
 \r
     /**\r
@@ -78,16 +64,16 @@ public abstract class XSLFSimpleShape extends XSLFShape {
      *\r
      * @param type\r
      */\r
-    public void setShapeType(XSLFShapeType type){\r
+    public void setShapeType(ShapeType type){\r
         CTShape shape = (CTShape) getXmlObject();\r
-        STShapeType.Enum geom = STShapeType.Enum.forInt(type.getIndex());\r
+        STShapeType.Enum geom = STShapeType.Enum.forInt(type.ooxmlId);\r
         shape.getSpPr().getPrstGeom().setPrst(geom);\r
     }\r
 \r
-    public XSLFShapeType getShapeType(){\r
+    public ShapeType getShapeType(){\r
         CTShape shape = (CTShape) getXmlObject();\r
         STShapeType.Enum geom = shape.getSpPr().getPrstGeom().getPrst();\r
-        return XSLFShapeType.forInt(geom.intValue());\r
+        return ShapeType.forId(geom.intValue(), true);\r
     }\r
 \r
     @Override\r
@@ -100,101 +86,6 @@ public abstract class XSLFSimpleShape extends XSLFShape {
         return (int) getNvPr().getId();\r
     }\r
 \r
-    protected CTNonVisualDrawingProps getNvPr() {\r
-        if (_nvPr == null) {\r
-            XmlObject[] rs = _shape\r
-                    .selectPath("declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:cNvPr");\r
-            if (rs.length != 0) {\r
-                _nvPr = (CTNonVisualDrawingProps) rs[0];\r
-            }\r
-        }\r
-        return _nvPr;\r
-    }\r
-\r
-    protected CTShapeProperties getSpPr() {\r
-        if (_spPr == null) {\r
-            for (XmlObject obj : _shape.selectPath("*")) {\r
-                if (obj instanceof CTShapeProperties) {\r
-                    _spPr = (CTShapeProperties) obj;\r
-                }\r
-            }\r
-        }\r
-        if (_spPr == null) {\r
-            throw new IllegalStateException("CTShapeProperties was not found.");\r
-        }\r
-        return _spPr;\r
-    }\r
-\r
-    protected CTShapeStyle getSpStyle() {\r
-        if (_spStyle == null) {\r
-            for (XmlObject obj : _shape.selectPath("*")) {\r
-                if (obj instanceof CTShapeStyle) {\r
-                    _spStyle = (CTShapeStyle) obj;\r
-                }\r
-            }\r
-        }\r
-        return _spStyle;\r
-    }\r
-\r
-    protected CTPlaceholder getCTPlaceholder() {\r
-        if (_ph == null) {\r
-            XmlObject[] obj = _shape.selectPath(\r
-                    "declare namespace p='http://schemas.openxmlformats.org/presentationml/2006/main' .//*/p:nvPr/p:ph");\r
-            if (obj.length == 1) {\r
-                _ph = (CTPlaceholder) obj[0];\r
-            }\r
-        }\r
-        return _ph;\r
-    }\r
-\r
-    CTTransform2D getXfrm() {\r
-        PropertyFetcher<CTTransform2D> fetcher = new PropertyFetcher<CTTransform2D>() {\r
-            public boolean fetch(XSLFSimpleShape shape) {\r
-                CTShapeProperties pr = shape.getSpPr();\r
-                if (pr.isSetXfrm()) {\r
-                    setValue(pr.getXfrm());\r
-                    return true;\r
-                }\r
-                return false;\r
-            }\r
-        };\r
-        fetchShapeProperty(fetcher);\r
-        return fetcher.getValue();\r
-    }\r
-\r
-    @Override\r
-    public Rectangle2D getAnchor() {\r
-\r
-        CTTransform2D xfrm = getXfrm();\r
-\r
-        CTPoint2D off = xfrm.getOff();\r
-        long x = off.getX();\r
-        long y = off.getY();\r
-        CTPositiveSize2D ext = xfrm.getExt();\r
-        long cx = ext.getCx();\r
-        long cy = ext.getCy();\r
-        return new Rectangle2D.Double(\r
-                Units.toPoints(x), Units.toPoints(y),\r
-                Units.toPoints(cx), Units.toPoints(cy));\r
-    }\r
-\r
-    @Override\r
-    public void setAnchor(Rectangle2D anchor) {\r
-        CTShapeProperties spPr = getSpPr();\r
-        CTTransform2D xfrm = spPr.isSetXfrm() ? spPr.getXfrm() : spPr.addNewXfrm();\r
-        CTPoint2D off = xfrm.isSetOff() ? xfrm.getOff() : xfrm.addNewOff();\r
-        long x = Units.toEMU(anchor.getX());\r
-        long y = Units.toEMU(anchor.getY());\r
-        off.setX(x);\r
-        off.setY(y);\r
-        CTPositiveSize2D ext = xfrm.isSetExt() ? xfrm.getExt() : xfrm\r
-                .addNewExt();\r
-        long cx = Units.toEMU(anchor.getWidth());\r
-        long cy = Units.toEMU(anchor.getHeight());\r
-        ext.setCx(cx);\r
-        ext.setCy(cy);\r
-    }\r
-\r
     @Override\r
     public void setRotation(double theta) {\r
         CTShapeProperties spPr = getSpPr();\r
@@ -314,7 +205,7 @@ public abstract class XSLFSimpleShape extends XSLFShape {
      */\r
     public double getLineWidth() {\r
         PropertyFetcher<Double> fetcher = new PropertyFetcher<Double>() {\r
-            public boolean fetch(XSLFSimpleShape shape) {\r
+            public boolean fetch(XSLFShape shape) {\r
                 CTShapeProperties spPr = shape.getSpPr();\r
                 CTLineProperties ln = spPr.getLn();\r
                 if (ln != null) {\r
@@ -371,7 +262,7 @@ public abstract class XSLFSimpleShape extends XSLFShape {
     public LineDash getLineDash() {\r
 \r
         PropertyFetcher<LineDash> fetcher = new PropertyFetcher<LineDash>() {\r
-            public boolean fetch(XSLFSimpleShape shape) {\r
+            public boolean fetch(XSLFShape shape) {\r
                 CTShapeProperties spPr = shape.getSpPr();\r
                 CTLineProperties ln = spPr.getLn();\r
                 if (ln != null) {\r
@@ -421,7 +312,7 @@ public abstract class XSLFSimpleShape extends XSLFShape {
      */\r
     public LineCap getLineCap() {\r
         PropertyFetcher<LineCap> fetcher = new PropertyFetcher<LineCap>() {\r
-            public boolean fetch(XSLFSimpleShape shape) {\r
+            public boolean fetch(XSLFShape shape) {\r
                 CTShapeProperties spPr = shape.getSpPr();\r
                 CTLineProperties ln = spPr.getLn();\r
                 if (ln != null) {\r
@@ -499,7 +390,7 @@ public abstract class XSLFSimpleShape extends XSLFShape {
      */\r
     public XSLFShadow getShadow() {\r
         PropertyFetcher<CTOuterShadowEffect> fetcher = new PropertyFetcher<CTOuterShadowEffect>() {\r
-            public boolean fetch(XSLFSimpleShape shape) {\r
+            public boolean fetch(XSLFShape shape) {\r
                 CTShapeProperties spPr = shape.getSpPr();\r
                 if (spPr.isSetEffectLst()) {\r
                     CTOuterShadowEffect obj = spPr.getEffectLst().getOuterShdw();\r
@@ -528,90 +419,11 @@ public abstract class XSLFSimpleShape extends XSLFShape {
         return (obj == null || obj == NO_SHADOW) ? null : new XSLFShadow(obj, this);\r
     }\r
 \r
-    @Override\r
-    public void draw(Graphics2D graphics) {\r
-        RenderableShape rShape = new RenderableShape(this);\r
-        rShape.render(graphics);\r
-\r
-        // draw line decorations\r
-        Color lineColor = getLineColor();\r
-        if(lineColor != null) {\r
-            graphics.setPaint(lineColor);\r
-            for(Outline o : getDecorationOutlines(graphics)){\r
-                if(o.getPath().isFilled()){\r
-                    graphics.fill(o.getOutline());\r
-                }\r
-                if(o.getPath().isStroked()){\r
-                    graphics.draw(o.getOutline());\r
-                }\r
-            }\r
-        }\r
-    }\r
-\r
-\r
-    /**\r
-     * Walk up the inheritance tree and fetch shape properties.\r
-     *\r
-     * The following order of inheritance is assumed:\r
-     * <p>\r
-     * slide <-- slideLayout <-- slideMaster\r
-     * </p>\r
-     *\r
-     * @param visitor the object that collects the desired property\r
-     * @return true if the property was fetched\r
-     */\r
-    boolean fetchShapeProperty(PropertyFetcher visitor) {\r
-        boolean ok = visitor.fetch(this);\r
-\r
-        XSLFSimpleShape masterShape;\r
-        XSLFSheet masterSheet = getSheet().getMasterSheet();\r
-        CTPlaceholder ph = getCTPlaceholder();\r
-\r
-        if (masterSheet != null && ph != null) {\r
-            if (!ok) {\r
-                masterShape = masterSheet.getPlaceholder(ph);\r
-                if (masterShape != null) {\r
-                    ok = visitor.fetch(masterShape);\r
-                }\r
-            }\r
-\r
-            // try slide master\r
-            if (!ok ) {\r
-                int textType;\r
-                if ( !ph.isSetType()) textType = STPlaceholderType.INT_BODY;\r
-                else {\r
-                    switch (ph.getType().intValue()) {\r
-                        case STPlaceholderType.INT_TITLE:\r
-                        case STPlaceholderType.INT_CTR_TITLE:\r
-                            textType = STPlaceholderType.INT_TITLE;\r
-                            break;\r
-                        case STPlaceholderType.INT_FTR:\r
-                        case STPlaceholderType.INT_SLD_NUM:\r
-                        case STPlaceholderType.INT_DT:\r
-                            textType = ph.getType().intValue();\r
-                            break;\r
-                        default:\r
-                            textType = STPlaceholderType.INT_BODY;\r
-                            break;\r
-                    }\r
-                }\r
-                XSLFSheet master = masterSheet.getMasterSheet();\r
-                if (master != null) {\r
-                    masterShape = master.getPlaceholderByType(textType);\r
-                    if (masterShape != null) {\r
-                        ok = visitor.fetch(masterShape);\r
-                    }\r
-                }\r
-            }\r
-        }\r
-        return ok;\r
-    }\r
-\r
     /**\r
      *\r
      * @return definition of the shape geometry\r
      */\r
-    CustomGeometry getGeometry(){\r
+    public CustomGeometry getGeometry(){\r
         CTShapeProperties spPr = getSpPr();\r
         CustomGeometry geom;\r
         PresetGeometries dict = PresetGeometries.getInstance();\r
@@ -622,23 +434,16 @@ public abstract class XSLFSimpleShape extends XSLFShape {
                 throw new IllegalStateException("Unknown shape geometry: " + name);\r
             }\r
         } else if (spPr.isSetCustGeom()){\r
-            geom = new CustomGeometry(spPr.getCustGeom());\r
+            XMLStreamReader staxReader = spPr.getCustGeom().newXMLStreamReader();\r
+            geom = PresetGeometries.convertCustomGeometry(staxReader);\r
+            try { staxReader.close(); }\r
+            catch (XMLStreamException e) {}\r
         } else {\r
             geom = dict.get("rect");\r
         }\r
         return geom;\r
     }\r
-\r
-\r
-    /**\r
-     * draw any content within this shape (image, text, etc.).\r
-     *\r
-     * @param graphics the graphics to draw into\r
-     */\r
-    public void drawContent(Graphics2D graphics){\r
-\r
-    }\r
-\r
+    \r
     @Override\r
     void copy(XSLFShape sh){\r
         super.copy(sh);\r
@@ -943,4 +748,30 @@ public abstract class XSLFSimpleShape extends XSLFShape {
         return lst;\r
     }\r
 \r
+    public boolean isPlaceholder() {\r
+        CTPlaceholder ph = getCTPlaceholder();\r
+        return ph != null;\r
+    }\r
+\r
+    public Hyperlink getHyperlink() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    public void setHyperlink(Hyperlink hyperlink) {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+\r
+    public Guide getAdjustValue(String name) {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+\r
+    public org.apache.poi.sl.usermodel.LineDecoration getLineDecoration() {\r
+        // TODO Auto-generated method stub\r
+        return null;\r
+    }\r
+    \r
+    \r
 }\r
index f2d4b6eff199498b142480639034ef4b51fba615..af80a57ffc03d9e318797efa9ea868176d579012 100644 (file)
 ==================================================================== */
 package org.apache.poi.xslf.usermodel;
 
+import java.awt.Graphics2D;
+import java.io.IOException;
+
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.Notes;
+import org.apache.poi.sl.usermodel.Slide;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlException;
+import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupShapeProperties;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTGroupTransform2D;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTNonVisualDrawingProps;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPoint2D;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTPositiveSize2D;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTBlip;
+import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTCommonSlideData;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShape;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGroupShapeNonVisual;
 import org.openxmlformats.schemas.presentationml.x2006.main.CTSlide;
 import org.openxmlformats.schemas.presentationml.x2006.main.SldDocument;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTBackground;
-
-import java.awt.Graphics2D;
-import java.io.IOException;
 
 @Beta
-public final class XSLFSlide extends XSLFSheet {
+public final class XSLFSlide extends XSLFSheet implements Slide {
    private final CTSlide _slide;
    private XSLFSlideLayout _layout;
    private XSLFComments _comments;
@@ -111,7 +113,6 @@ public final class XSLFSlide extends XSLFSheet {
         return "sld";        
     }
 
-    @Override
     public XSLFSlideLayout getMasterSheet(){
         return getSlideLayout();
     }
@@ -211,6 +212,15 @@ public final class XSLFSlide extends XSLFSheet {
     }
 
 
+    public boolean getFollowMasterObjects() {
+        return getFollowMasterGraphics();
+    }
+    
+    public void setFollowMasterObjects(boolean follow) {
+        setFollowMasterGraphics(follow);
+    }
+
+    
     @Override
     public void draw(Graphics2D graphics){
 
@@ -239,4 +249,26 @@ public final class XSLFSlide extends XSLFSheet {
         return this;
     }
 
+    public boolean getFollowMasterBackground() {
+        return false;
+    }
+    
+    public void setFollowMasterBackground(boolean follow) {
+        // not implemented ... also not in the specs
+        throw new UnsupportedOperationException();
+    }
+
+    public boolean getFollowMasterColourScheme() {
+        return false;
+    }
+    
+    public void setFollowMasterColourScheme(boolean follow) {
+        // not implemented ... only for OLE objects in the specs
+        throw new UnsupportedOperationException();
+    }
+
+    public void setNotes(Notes<XSLFShape> notes) {
+        // TODO Auto-generated method stub
+        
+    }
 }
index f8cd23ccde588266e2b53db3a6743be47dc98c1b..2373641354b2e5c726aae8d9d551720592d4857c 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.xslf.usermodel;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.MasterSheet;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Internal;
 import org.apache.xmlbeans.XmlException;
@@ -30,7 +31,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.SldLayoutDocument;
 import java.io.IOException;
 
 @Beta
-public class XSLFSlideLayout extends XSLFSheet {
+public class XSLFSlideLayout extends XSLFSheet implements MasterSheet {
     private CTSlideLayout _layout;
     private XSLFSlideMaster _master;
 
index d4383c4d9f5058543c347dfce6573c44da290037..ebeec01efbf2101414f7dc322a6a3db01d8ba870 100644 (file)
@@ -19,6 +19,7 @@ package org.apache.poi.xslf.usermodel;
 import org.apache.poi.POIXMLDocumentPart;
 import org.apache.poi.openxml4j.opc.PackagePart;
 import org.apache.poi.openxml4j.opc.PackageRelationship;
+import org.apache.poi.sl.usermodel.MasterSheet;
 import org.apache.poi.util.Beta;
 import org.apache.xmlbeans.XmlException;
 import org.openxmlformats.schemas.drawingml.x2006.main.CTColorMapping;
@@ -53,7 +54,7 @@ import java.util.Map;
  * @author Yegor Kozlov
 */
 @Beta
- public class XSLFSlideMaster extends XSLFSheet {
+ public class XSLFSlideMaster extends XSLFSheet implements MasterSheet {
        private CTSlideMaster _slide;
     private Map<String, XSLFSlideLayout> _layouts;
     private XSLFTheme _theme;
@@ -82,7 +83,7 @@ import java.util.Map;
     }
 
     @Override
-    public XSLFSheet getMasterSheet() {
+    public MasterSheet getMasterSheet() {
         return null;
     }
 
@@ -177,5 +178,4 @@ import java.util.Map;
             return null;
         }
     }
-
 }
\ No newline at end of file
index a3671ab63dd983d86dc53dc52ff10efa2d518d37..a21b9d5e3739aa3c715762ed6c7079adb228469a 100644 (file)
@@ -21,6 +21,7 @@ package org.apache.poi.xslf.usermodel;
 \r
 import java.awt.Color;\r
 \r
+import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.util.Units;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTLineEndProperties;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTLineProperties;\r
index e0b383a76bf7ea9a1b9f0a6b391115667ae69216..869421e5c08a182354516b680027ee3027536dc0 100644 (file)
@@ -18,42 +18,14 @@ package org.apache.poi.xslf.usermodel;
 \r
 import java.awt.Color;\r
 import java.awt.Graphics2D;\r
-import java.awt.font.LineBreakMeasurer;\r
-import java.awt.font.TextAttribute;\r
-import java.awt.font.TextLayout;\r
 import java.awt.geom.Rectangle2D;\r
-import java.text.AttributedCharacterIterator;\r
-import java.text.AttributedString;\r
-import java.util.ArrayList;\r
-import java.util.Iterator;\r
-import java.util.List;\r
-import java.util.Map;\r
-\r
-import org.apache.poi.hslf.model.TextPainter;\r
-import org.apache.poi.util.Beta;\r
-import org.apache.poi.util.Internal;\r
-import org.apache.poi.util.Units;\r
+import java.util.*;\r
+\r
+import org.apache.poi.sl.usermodel.TextParagraph;\r
+import org.apache.poi.util.*;\r
 import org.apache.poi.xslf.model.ParagraphPropertyFetcher;\r
 import org.apache.xmlbeans.XmlObject;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTSRgbColor;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextAutonumberBullet;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePercent;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBulletSizePoint;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharBullet;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextField;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextFont;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextLineBreak;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextNormalAutofit;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraphProperties;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextSpacing;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextTabStop;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextTabStopList;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextAlignType;\r
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextAutonumberScheme;\r
+import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;\r
 \r
@@ -65,16 +37,10 @@ import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;
  * @since POI-3.8\r
  */\r
 @Beta\r
-public class XSLFTextParagraph implements Iterable<XSLFTextRun>{\r
+public class XSLFTextParagraph implements TextParagraph {\r
     private final CTTextParagraph _p;\r
     private final List<XSLFTextRun> _runs;\r
     private final XSLFTextShape _shape;\r
-    private List<TextFragment> _lines;\r
-    private TextFragment _bullet;\r
-    /**\r
-     * the highest line in this paragraph. Used for line spacing.\r
-     */\r
-    private double _maxLineHeight;\r
 \r
     XSLFTextParagraph(CTTextParagraph p, XSLFTextShape shape){\r
         _p = p;\r
@@ -122,7 +88,7 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         return _p;\r
     }\r
 \r
-    XSLFTextShape getParentShape() {\r
+    public XSLFTextShape getParentShape() {\r
         return _shape;\r
 \r
     }\r
@@ -194,7 +160,7 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
     /**\r
      * Specifies the alignment that is to be applied to the paragraph.\r
      * Possible values for this include left, right, centered, justified and distributed,\r
-     * see {@link org.apache.poi.xslf.usermodel.TextAlign}.\r
+     * see {@link org.apache.poi.sl.usermodel.TextAlign}.\r
      *\r
      * @param align text align\r
      */\r
@@ -408,6 +374,26 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         return fetcher.getValue() == null ? 0 : fetcher.getValue();\r
     }\r
 \r
+    /**\r
+     *\r
+     * @return the right margin of the paragraph\r
+     */\r
+    public double getRightMargin(){\r
+        ParagraphPropertyFetcher<Double> fetcher = new ParagraphPropertyFetcher<Double>(getLevel()){\r
+            public boolean fetch(CTTextParagraphProperties props){\r
+                if(props.isSetMarR()){\r
+                    double val = Units.toPoints(props.getMarR());\r
+                    setValue(val);\r
+                    return true;\r
+                }\r
+                return false;\r
+            }\r
+        };\r
+        fetchParagraphProperty(fetcher);\r
+        // if the marL attribute is omitted, then a value of 347663 is implied\r
+        return fetcher.getValue() == null ? 0 : fetcher.getValue();\r
+    }\r
+\r
     /**\r
      *\r
      * @return the default size for a tab character within this paragraph in points\r
@@ -711,10 +697,6 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         return "[" + getClass() + "]" + getText();\r
     }\r
 \r
-    List<TextFragment> getTextLines(){\r
-        return _lines;\r
-    }\r
-\r
     /**\r
      * Returns wrapping width to break lines in this paragraph\r
      *\r
@@ -754,244 +736,6 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         return width;\r
     }\r
 \r
-    public double draw(Graphics2D graphics, double x, double y){\r
-        double leftInset = _shape.getLeftInset();\r
-        double rightInset = _shape.getRightInset();\r
-        RenderableShape rShape = new RenderableShape(_shape);\r
-        Rectangle2D anchor = rShape.getAnchor(graphics);\r
-        double penY = y;\r
-\r
-        double leftMargin = getLeftMargin();\r
-        boolean firstLine = true;\r
-        double indent = getIndent();\r
-\r
-        //The vertical line spacing\r
-        double spacing = getLineSpacing();\r
-        for(TextFragment line : _lines){\r
-            double penX = x + leftMargin;\r
-\r
-            if(firstLine) {\r
-                if(_bullet != null){\r
-                    if(indent < 0) {\r
-                        // a negative value means "Hanging" indentation and\r
-                        // indicates the position of the actual bullet character.\r
-                        // (the bullet is shifted to right relative to the text)\r
-                        _bullet.draw(graphics, penX + indent,  penY);\r
-                    } else if(indent > 0){\r
-                        // a positive value means the "First Line" indentation:\r
-                        // the first line is indented and other lines start at the bullet ofset\r
-                        _bullet.draw(graphics, penX,  penY);\r
-                        penX += indent;\r
-                    } else {\r
-                        // a zero indent means that the bullet and text have the same offset\r
-                        _bullet.draw(graphics, penX,  penY);\r
-\r
-                        // don't let text overlay the bullet and advance by the bullet width\r
-                        penX += _bullet._layout.getAdvance() + 1;\r
-                    }\r
-                } else {\r
-                    penX += indent;\r
-                }\r
-            }\r
-\r
-\r
-            switch (getTextAlign()) {\r
-                case CENTER:\r
-                    penX += (anchor.getWidth() - leftMargin - line.getWidth() - leftInset - rightInset) / 2;\r
-                    break;\r
-                case RIGHT:\r
-                    penX += (anchor.getWidth() - line.getWidth() - leftInset - rightInset);\r
-                    break;\r
-                default:\r
-                    break;\r
-            }\r
-\r
-            line.draw(graphics, penX,  penY);\r
-\r
-            if(spacing > 0) {\r
-                // If linespacing >= 0, then linespacing is a percentage of normal line height.\r
-                penY += spacing*0.01* line.getHeight();\r
-            } else {\r
-                // positive value means absolute spacing in points\r
-                penY += -spacing;\r
-            }\r
-\r
-            firstLine = false;\r
-        }\r
-        \r
-        return penY - y;\r
-    }\r
-\r
-    AttributedString getAttributedString(Graphics2D graphics){\r
-\r
-        String text = getRenderableText();\r
-\r
-        AttributedString string = new AttributedString(text);\r
-\r
-        XSLFFontManager fontHandler = (XSLFFontManager)graphics.getRenderingHint(XSLFRenderingHint.FONT_HANDLER);\r
-\r
-        int startIndex = 0;\r
-        for (XSLFTextRun run : _runs){\r
-            int length = run.getRenderableText().length();\r
-            if(length == 0) {\r
-                // skip empty runs\r
-                continue;\r
-            }\r
-            int endIndex = startIndex + length;\r
-\r
-            string.addAttribute(TextAttribute.FOREGROUND, run.getFontColor(), startIndex, endIndex);\r
-\r
-            // user can pass an custom object to convert fonts\r
-            String fontFamily = run.getFontFamily();\r
-            @SuppressWarnings("unchecked")\r
-            Map<String,String> fontMap = (Map<String,String>)graphics.getRenderingHint(TextPainter.KEY_FONTMAP);\r
-            if (fontMap != null && fontMap.containsKey(fontFamily)) {\r
-                fontFamily = fontMap.get(fontFamily);\r
-            }\r
-            if(fontHandler != null) {\r
-                fontFamily = fontHandler.getRendererableFont(fontFamily, run.getPitchAndFamily());\r
-            }\r
-            string.addAttribute(TextAttribute.FAMILY, fontFamily, startIndex, endIndex);\r
-\r
-            float fontSz = (float)run.getFontSize();\r
-            string.addAttribute(TextAttribute.SIZE, fontSz , startIndex, endIndex);\r
-\r
-            if(run.isBold()) {\r
-                string.addAttribute(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, startIndex, endIndex);\r
-            }\r
-            if(run.isItalic()) {\r
-                string.addAttribute(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE, startIndex, endIndex);\r
-            }\r
-            if(run.isUnderline()) {\r
-                string.addAttribute(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, startIndex, endIndex);\r
-                string.addAttribute(TextAttribute.INPUT_METHOD_UNDERLINE, TextAttribute.UNDERLINE_LOW_TWO_PIXEL, startIndex, endIndex);\r
-            }\r
-            if(run.isStrikethrough()) {\r
-                string.addAttribute(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, startIndex, endIndex);\r
-            }\r
-            if(run.isSubscript()) {\r
-                string.addAttribute(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUB, startIndex, endIndex);\r
-            }\r
-            if(run.isSuperscript()) {\r
-                string.addAttribute(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUPER, startIndex, endIndex);\r
-            }\r
-\r
-\r
-            startIndex = endIndex;\r
-        }\r
-\r
-        return string;\r
-    }\r
-\r
-    /**\r
-     *  ensure that the paragraph contains at least one character.\r
-     *  We need this trick to correctly measure text\r
-     */\r
-    private void ensureNotEmpty(){\r
-        XSLFTextRun r = addNewTextRun();\r
-        r.setText(" ");\r
-        CTTextCharacterProperties endPr = _p.getEndParaRPr();\r
-        if(endPr != null) {\r
-            if(endPr.isSetSz()) r.setFontSize(endPr.getSz() / 100);\r
-        }\r
-    }\r
-\r
-    /**\r
-     * break text into lines\r
-     *\r
-     * @param graphics\r
-     * @return array of text fragments,\r
-     * each representing a line of text that fits in the wrapping width\r
-     */\r
-    List<TextFragment> breakText(Graphics2D graphics){\r
-        _lines = new ArrayList<TextFragment>();\r
-\r
-        // does this paragraph contain text?\r
-        boolean emptyParagraph = _runs.size() == 0;\r
-\r
-        // ensure that the paragraph contains at least one character\r
-        if(_runs.size() == 0) ensureNotEmpty();\r
-\r
-        String text = getRenderableText();\r
-        if(text.length() == 0) return _lines;\r
-\r
-        AttributedString at = getAttributedString(graphics);\r
-        AttributedCharacterIterator it = at.getIterator();\r
-        LineBreakMeasurer measurer = new LineBreakMeasurer(it, graphics.getFontRenderContext())  ;\r
-        for (;;) {\r
-            int startIndex = measurer.getPosition();\r
-\r
-            double wrappingWidth = getWrappingWidth(_lines.size() == 0, graphics) + 1; // add a pixel to compensate rounding errors\r
-            // shape width can be smaller that the sum of insets (this was proved by a test file)\r
-            if(wrappingWidth < 0) wrappingWidth = 1;\r
-\r
-            int nextBreak = text.indexOf('\n', startIndex + 1);\r
-            if(nextBreak == -1) nextBreak = it.getEndIndex();\r
-\r
-            TextLayout layout = measurer.nextLayout((float)wrappingWidth, nextBreak, true);\r
-            if (layout == null) {\r
-                 // layout can be null if the entire word at the current position\r
-                 // does not fit within the wrapping width. Try with requireNextWord=false.\r
-                 layout = measurer.nextLayout((float)wrappingWidth, nextBreak, false);\r
-            }\r
-\r
-            if(layout == null) {\r
-                // exit if can't break any more\r
-                break;\r
-            }\r
-\r
-            int endIndex = measurer.getPosition();\r
-            // skip over new line breaks (we paint 'clear' text runs not starting or ending with \n)\r
-            if(endIndex < it.getEndIndex() && text.charAt(endIndex) == '\n'){\r
-                measurer.setPosition(endIndex + 1);\r
-            }\r
-\r
-            TextAlign hAlign = getTextAlign();\r
-            if(hAlign == TextAlign.JUSTIFY || hAlign == TextAlign.JUSTIFY_LOW) {\r
-                layout = layout.getJustifiedLayout((float)wrappingWidth);\r
-            }\r
-\r
-            AttributedString str = new AttributedString(it, startIndex, endIndex);\r
-            TextFragment line = new TextFragment(\r
-                    layout, // we will not paint empty paragraphs\r
-                    emptyParagraph ? null : str);\r
-            _lines.add(line);\r
-\r
-            _maxLineHeight = Math.max(_maxLineHeight, line.getHeight());\r
-\r
-            if(endIndex == it.getEndIndex()) break;\r
-\r
-        }\r
-\r
-        if(isBullet() && !emptyParagraph) {\r
-            String buCharacter = getBulletCharacter();\r
-            String buFont = getBulletFont();\r
-            if(buFont == null) buFont = getTextRuns().get(0).getFontFamily();\r
-            if(buCharacter != null && buFont != null && _lines.size() > 0) {\r
-                AttributedString str = new AttributedString(buCharacter);\r
-\r
-                TextFragment firstLine = _lines.get(0);\r
-                AttributedCharacterIterator bit = firstLine._str.getIterator();\r
-\r
-                Color buColor = getBulletFontColor();\r
-                str.addAttribute(TextAttribute.FOREGROUND, buColor == null ?\r
-                        bit.getAttribute(TextAttribute.FOREGROUND) : buColor);\r
-                str.addAttribute(TextAttribute.FAMILY, buFont);\r
-\r
-                float fontSize = (Float)bit.getAttribute(TextAttribute.SIZE);\r
-                float buSz = (float)getBulletFontSize();\r
-                if(buSz > 0) fontSize *= buSz* 0.01;\r
-                else fontSize = -buSz;\r
-\r
-                str.addAttribute(TextAttribute.SIZE, fontSize);\r
-\r
-                TextLayout layout = new TextLayout(str.getIterator(), graphics.getFontRenderContext());\r
-                _bullet = new TextFragment(layout, str);\r
-            }\r
-        }\r
-        return _lines;\r
-    }\r
-\r
     CTTextParagraphProperties getDefaultMasterStyle(){\r
         CTPlaceholder ph = _shape.getCTPlaceholder();\r
         String defaultStyleSelector;\r
@@ -1017,7 +761,7 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         // wind up and find the root master sheet which must be slide master\r
         XSLFSheet masterSheet = _shape.getSheet();\r
         while (masterSheet.getMasterSheet() != null){\r
-            masterSheet = masterSheet.getMasterSheet();\r
+            masterSheet = (XSLFSheet)masterSheet.getMasterSheet();\r
         }\r
 \r
         XmlObject[] o = masterSheet.getXmlObject().selectPath(\r
@@ -1130,4 +874,32 @@ public class XSLFTextParagraph implements Iterable<XSLFTextRun>{
         }\r
     }\r
 \r
+    public double getDefaultFontSize() {\r
+        CTTextCharacterProperties endPr = _p.getEndParaRPr();\r
+        return (endPr == null || !endPr.isSetSz()) ? 12 : (endPr.getSz() / 100);\r
+    }\r
+\r
+    public String getDefaultFontFamily() {\r
+        return (_runs.isEmpty() ? "Arial" : _runs.get(0).getFontFamily());\r
+    }\r
+\r
+    public BulletStyle getBulletStyle() {\r
+        return new BulletStyle(){\r
+            public String getBulletCharacter() {\r
+                return XSLFTextParagraph.this.getBulletCharacter();\r
+            }\r
+\r
+            public String getBulletFont() {\r
+                return XSLFTextParagraph.this.getBulletFont();\r
+            }\r
+\r
+            public double getBulletFontSize() {\r
+                return XSLFTextParagraph.this.getBulletFontSize();\r
+            }\r
+\r
+            public Color getBulletFontColor() {\r
+                return XSLFTextParagraph.this.getBulletFontColor();\r
+            }\r
+        };\r
+    }\r
 }\r
index 16d0e803b1e8673aa2ff2d5016e98ab6b3cb88b0..0a6daf6ceaa70f58ee4e5764ac3051ced38de3ec 100644 (file)
@@ -22,6 +22,7 @@ import java.awt.font.TextAttribute;
 import java.awt.font.TextLayout;\r
 import java.text.AttributedString;\r
 \r
+import org.apache.poi.sl.usermodel.TextRun;\r
 import org.apache.poi.util.Beta;\r
 import org.apache.poi.xslf.model.CharacterPropertyFetcher;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTRegularTextRun;\r
@@ -45,7 +46,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
  * @author Yegor Kozlov\r
  */\r
 @Beta\r
-public class XSLFTextRun {\r
+public class XSLFTextRun implements TextRun {\r
     private final CTRegularTextRun _r;\r
     private final XSLFTextParagraph _p;\r
 \r
index d5ae1a252742c3c10c749e7b21187c27c97aeb56..b4308c46c920fd3b700b132a9bf137ae72d01bcc 100644 (file)
@@ -23,26 +23,20 @@ import java.awt.Graphics2D;
 import java.awt.geom.AffineTransform;
 import java.awt.geom.Rectangle2D;
 import java.awt.image.BufferedImage;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 import org.apache.poi.POIXMLException;
+import org.apache.poi.sl.draw.DrawFactory;
+import org.apache.poi.sl.draw.geom.Guide;
+import org.apache.poi.sl.usermodel.*;
+import org.apache.poi.sl.usermodel.LineDecoration;
 import org.apache.poi.util.Beta;
 import org.apache.poi.util.Units;
 import org.apache.poi.xslf.model.PropertyFetcher;
 import org.apache.poi.xslf.model.TextBodyPropertyFetcher;
 import org.apache.xmlbeans.XmlObject;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBody;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties;
-import org.openxmlformats.schemas.drawingml.x2006.main.CTTextParagraph;
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextAnchoringType;
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextVerticalType;
-import org.openxmlformats.schemas.drawingml.x2006.main.STTextWrappingType;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTApplicationNonVisualDrawingProps;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTPlaceholder;
-import org.openxmlformats.schemas.presentationml.x2006.main.CTShape;
-import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;
+import org.openxmlformats.schemas.drawingml.x2006.main.*;
+import org.openxmlformats.schemas.presentationml.x2006.main.*;
 
 /**
  * Represents a shape that can hold text.
@@ -50,7 +44,7 @@ import org.openxmlformats.schemas.presentationml.x2006.main.STPlaceholderType;
  * @author Yegor Kozlov
  */
 @Beta
-public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<XSLFTextParagraph>{
+public abstract class XSLFTextShape extends XSLFSimpleShape implements TextShape {
     private final List<XSLFTextParagraph> _paragraphs;
 
     /**
@@ -338,7 +332,13 @@ public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<
         }
     }
 
-
+    @Override
+    public Insets2D getInsets() {
+        Insets2D insets = new Insets2D(getTopInset(), getLeftInset(), getBottomInset(), getRightInset());
+        return insets;
+    }
+    
+    
     /**
      * @return whether to wrap words within the bounding rectangle
      */
@@ -453,6 +453,9 @@ public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<
         // dry-run in a 1x1 image and return the vertical advance
         BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);
         Graphics2D graphics = img.createGraphics();
+        DrawFactory fact = DrawFactory.getInstance(graphics);
+        fact.getDrawable(this);
+        
         breakText(graphics);
         return drawParagraphs(graphics, 0, 0);
     }
@@ -475,121 +478,6 @@ public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<
         return anchor;
     }   
     
-    /**
-     * break the contained text into lines
-    */
-    private void breakText(Graphics2D graphics){
-        if(!_isTextBroken) {
-            for(XSLFTextParagraph p : _paragraphs) p.breakText(graphics);
-
-            _isTextBroken = true;
-        }
-    }
-
-    @Override
-    public void drawContent(Graphics2D graphics) {
-        breakText(graphics);
-
-        RenderableShape rShape = new RenderableShape(this);
-        Rectangle2D anchor = rShape.getAnchor(graphics);
-        double x = anchor.getX() + getLeftInset();
-        double y = anchor.getY();
-
-        // remember the initial transform
-        AffineTransform tx = graphics.getTransform();
-
-        // Transform of text in flipped shapes is special.
-        // At this point the flip and rotation transform is already applied
-        // (see XSLFShape#applyTransform ), but we need to restore it to avoid painting "upside down".
-        // See Bugzilla 54210.
-
-        if(getFlipVertical()){
-            graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());
-            graphics.scale(1, -1);
-            graphics.translate(-anchor.getX(), -anchor.getY());
-
-            // text in vertically flipped shapes is rotated by 180 degrees
-            double centerX = anchor.getX() + anchor.getWidth()/2;
-            double centerY = anchor.getY() + anchor.getHeight()/2;
-            graphics.translate(centerX, centerY);
-            graphics.rotate(Math.toRadians(180));
-            graphics.translate(-centerX, -centerY);
-        }
-
-        // Horizontal flipping applies only to shape outline and not to the text in the shape.
-        // Applying flip second time restores the original not-flipped transform
-        if(getFlipHorizontal()){
-            graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());
-            graphics.scale(-1, 1);
-            graphics.translate(-anchor.getX() , -anchor.getY());
-        }
-
-
-        // first dry-run to calculate the total height of the text
-        double textHeight = getTextHeight();
-
-        switch (getVerticalAlignment()){
-            case TOP:
-                y += getTopInset();
-                break;
-            case BOTTOM:
-                y += anchor.getHeight() - textHeight - getBottomInset();
-                break;
-            default:
-            case MIDDLE:
-                double delta = anchor.getHeight() - textHeight -
-                        getTopInset() - getBottomInset();
-                y += getTopInset()  + delta/2;
-                break;
-        }
-
-        drawParagraphs(graphics, x, y);
-
-        // restore the transform
-        graphics.setTransform(tx);
-    }
-
-
-    /**
-     * paint the paragraphs starting from top left (x,y)
-     *
-     * @return  the vertical advance, i.e. the cumulative space occupied by the text
-     */
-    private double drawParagraphs(Graphics2D graphics,  double x, double y) {
-        double y0 = y;
-        for(int i = 0; i < _paragraphs.size(); i++){
-            XSLFTextParagraph p = _paragraphs.get(i);
-            List<TextFragment> lines = p.getTextLines();
-
-            if(i > 0 && lines.size() > 0) {
-                // the amount of vertical white space before the paragraph
-                double spaceBefore = p.getSpaceBefore();
-                if(spaceBefore > 0) {
-                    // positive value means percentage spacing of the height of the first line, e.g.
-                    // the higher the first line, the bigger the space before the paragraph
-                    y += spaceBefore*0.01*lines.get(0).getHeight();
-                } else {
-                    // negative value means the absolute spacing in points
-                    y += -spaceBefore;
-                }
-            }
-
-            y += p.draw(graphics, x, y);
-
-            if(i < _paragraphs.size() - 1) {
-                double spaceAfter = p.getSpaceAfter();
-                if(spaceAfter > 0) {
-                    // positive value means percentage spacing of the height of the last line, e.g.
-                    // the higher the last line, the bigger the space after the paragraph
-                    y += spaceAfter*0.01*lines.get(lines.size() - 1).getHeight();
-                } else {
-                    // negative value means the absolute spacing in points
-                    y += -spaceAfter;
-                }
-            }
-        }
-        return y - y0;
-    }
 
     @Override
     void copy(XSLFShape sh){
@@ -633,4 +521,19 @@ public abstract class XSLFTextShape extends XSLFSimpleShape implements Iterable<
         }
 
     }
+
+    public LineDecoration getLineDecoration() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public FillStyle getFillStyle() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    public Guide getAdjustValue(String name) {
+        // TODO Auto-generated method stub
+        return null;
+    }
 }
\ No newline at end of file
index 922d25f83d744b7171c77923922be9f866a360d0..e3dad561b6f6424b5a9e365a2ec56c200057a7a8 100644 (file)
 package org.apache.poi.xslf.usermodel;\r
 \r
 import junit.framework.TestCase;\r
+\r
+import org.apache.poi.sl.usermodel.ShapeType;\r
+import org.apache.poi.sl.usermodel.TextAlign;\r
+import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.util.Units;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.STTextStrikeType;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.STTextUnderlineType;\r
@@ -270,12 +274,12 @@ public class TestXSLFAutoShape extends TestCase {
         XSLFSlide slide = ppt.createSlide();\r
 \r
         XSLFAutoShape shape = slide.createAutoShape();\r
-        assertEquals(XSLFShapeType.RECT, shape.getShapeType());\r
+        assertEquals(ShapeType.RECT, shape.getShapeType());\r
 \r
-        shape.setShapeType(XSLFShapeType.TRIANGLE);\r
-        assertEquals(XSLFShapeType.TRIANGLE, shape.getShapeType());\r
+        shape.setShapeType(ShapeType.TRIANGLE);\r
+        assertEquals(ShapeType.TRIANGLE, shape.getShapeType());\r
 \r
-        for(XSLFShapeType tp : XSLFShapeType.values()) {\r
+        for(ShapeType tp : ShapeType.values()) {\r
             shape.setShapeType(tp);\r
             assertEquals(tp, shape.getShapeType());\r
         }\r
index 98240b0ffa403b534a524f87178774316a90fc91..ae7de8d5c06dd0d1c5a940ad9a41a5f62c5c3dbc 100644 (file)
@@ -17,6 +17,8 @@
 package org.apache.poi.xslf.usermodel;\r
 \r
 import junit.framework.TestCase;\r
+\r
+import org.apache.poi.sl.usermodel.ShapeType;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.*;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTConnector;\r
 \r
@@ -112,12 +114,12 @@ public class TestXSLFConnectorShape extends TestCase {
         XSLFSlide slide = pptx.createSlide();\r
 \r
         XSLFAutoShape rect1 = slide.createAutoShape();\r
-        rect1.setShapeType(XSLFShapeType.RECT);\r
+        rect1.setShapeType(ShapeType.RECT);\r
         rect1.setAnchor(new Rectangle(100, 100, 100, 100));\r
         rect1.setFillColor(Color.blue);\r
 \r
         XSLFAutoShape rect2 = slide.createAutoShape();\r
-        rect2.setShapeType(XSLFShapeType.RECT);\r
+        rect2.setShapeType(ShapeType.RECT);\r
         rect2.setAnchor(new Rectangle(300, 300, 100, 100));\r
         rect2.setFillColor(Color.red);\r
 \r
index 838db8137bfd8db0c2fad9ffb891e7e8be970b4c..2153ceb26f40979e594f75bb545007f2f889bb6a 100644 (file)
@@ -20,6 +20,8 @@ import java.awt.Color;
 \r
 import junit.framework.TestCase;\r
 \r
+import org.apache.poi.sl.usermodel.LineCap;\r
+import org.apache.poi.sl.usermodel.LineDash;\r
 import org.apache.poi.util.Units;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTEffectStyleItem;\r
index 0ded02a5a792c071a462972b8243716951328654..505703bcaa1ab548a9234ee576249eb62a6142c0 100644 (file)
@@ -17,6 +17,8 @@
 package org.apache.poi.xslf.usermodel;\r
 \r
 import junit.framework.TestCase;\r
+\r
+import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
 import org.openxmlformats.schemas.presentationml.x2006.main.CTGraphicalObjectFrame;\r
 \r
index 00b4cbdcce585a95243acfdfc971c91efe496ee4..45bc30286e62a9e218da46feb94370bde003d4c7 100644 (file)
@@ -17,6 +17,9 @@
 package org.apache.poi.xslf.usermodel;\r
 \r
 import junit.framework.TestCase;\r
+\r
+import org.apache.poi.sl.draw.TextFragment;\r
+import org.apache.poi.sl.usermodel.TextAlign;\r
 import org.apache.poi.util.POILogFactory;\r
 import org.apache.poi.util.POILogger;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
index 79063a3083272560a417e32624e5905c59708226..f217c58278882c1367fd46e9e1c18f299c187941 100644 (file)
@@ -17,6 +17,9 @@
 package org.apache.poi.xslf.usermodel;\r
 \r
 import junit.framework.TestCase;\r
+\r
+import org.apache.poi.sl.usermodel.TextAlign;\r
+import org.apache.poi.sl.usermodel.VerticalAlignment;\r
 import org.apache.poi.xslf.XSLFTestDataSamples;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTTextBodyProperties;\r
 import org.openxmlformats.schemas.drawingml.x2006.main.CTTextCharacterProperties;\r
diff --git a/src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml b/src/resources/scratchpad/org/apache/poi/sl/draw/presetShapeDefinitions.xml
new file mode 100644 (file)
index 0000000..4a3a070
--- /dev/null
@@ -0,0 +1,19906 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<presetShapeDefinitons>\r
+  <accentBorderCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout1>\r
+  <accentBorderCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout2>\r
+  <accentBorderCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentBorderCallout3>\r
+  <accentCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout1>\r
+  <accentCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout2>\r
+  <accentCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <close />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </accentCallout3>\r
+  <actionButtonBackPrevious>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </actionButtonBackPrevious>\r
+  <actionButtonBeginning>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 8" />\r
+      <gd name="g15" fmla="*/ g13 1 4" />\r
+      <gd name="g16" fmla="+- g11 g14 0" />\r
+      <gd name="g17" fmla="+- g11 g15 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g17" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g16" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonBeginning>\r
+  <actionButtonBlank>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonBlank>\r
+  <actionButtonDocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="dx1" fmla="*/ ss 9 32" />\r
+      <gd name="g11" fmla="+- hc 0 dx1" />\r
+      <gd name="g12" fmla="+- hc dx1 0" />\r
+      <gd name="g13" fmla="*/ ss 3 16" />\r
+      <gd name="g14" fmla="+- g12 0 g13" />\r
+      <gd name="g15" fmla="+- g9 g13 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g14" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="g15" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g14" y="g9" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonDocument>\r
+  <actionButtonEnd>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 3 4" />\r
+      <gd name="g15" fmla="*/ g13 7 8" />\r
+      <gd name="g16" fmla="+- g11 g14 0" />\r
+      <gd name="g17" fmla="+- g11 g15 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g16" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g17" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g12" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g17" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonEnd>\r
+  <actionButtonForwardNext>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </actionButtonForwardNext>\r
+  <actionButtonHelp>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 7" />\r
+      <gd name="g15" fmla="*/ g13 3 14" />\r
+      <gd name="g16" fmla="*/ g13 2 7" />\r
+      <gd name="g19" fmla="*/ g13 3 7" />\r
+      <gd name="g20" fmla="*/ g13 4 7" />\r
+      <gd name="g21" fmla="*/ g13 17 28" />\r
+      <gd name="g23" fmla="*/ g13 21 28" />\r
+      <gd name="g24" fmla="*/ g13 11 14" />\r
+      <gd name="g27" fmla="+- g9 g16 0" />\r
+      <gd name="g29" fmla="+- g9 g21 0" />\r
+      <gd name="g30" fmla="+- g9 g23 0" />\r
+      <gd name="g31" fmla="+- g9 g24 0" />\r
+      <gd name="g33" fmla="+- g11 g15 0" />\r
+      <gd name="g36" fmla="+- g11 g19 0" />\r
+      <gd name="g37" fmla="+- g11 g20 0" />\r
+      <gd name="g41" fmla="*/ g13 1 14" />\r
+      <gd name="g42" fmla="*/ g13 3 28" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g33" y="g27" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g16" hR="g16" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="g14" hR="g15" stAng="0" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g29" />\r
+        </lnTo>\r
+        <arcTo wR="g14" hR="g15" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="g41" hR="g42" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="g14" hR="g14" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g31" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g42" hR="g42" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonHelp>\r
+  <actionButtonHome>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 16" />\r
+      <gd name="g15" fmla="*/ g13 1 8" />\r
+      <gd name="g16" fmla="*/ g13 3 16" />\r
+      <gd name="g17" fmla="*/ g13 5 16" />\r
+      <gd name="g18" fmla="*/ g13 7 16" />\r
+      <gd name="g19" fmla="*/ g13 9 16" />\r
+      <gd name="g20" fmla="*/ g13 11 16" />\r
+      <gd name="g21" fmla="*/ g13 3 4" />\r
+      <gd name="g22" fmla="*/ g13 13 16" />\r
+      <gd name="g23" fmla="*/ g13 7 8" />\r
+      <gd name="g24" fmla="+- g9 g14 0" />\r
+      <gd name="g25" fmla="+- g9 g16 0" />\r
+      <gd name="g26" fmla="+- g9 g17 0" />\r
+      <gd name="g27" fmla="+- g9 g21 0" />\r
+      <gd name="g28" fmla="+- g11 g15 0" />\r
+      <gd name="g29" fmla="+- g11 g18 0" />\r
+      <gd name="g30" fmla="+- g11 g19 0" />\r
+      <gd name="g31" fmla="+- g11 g20 0" />\r
+      <gd name="g32" fmla="+- g11 g22 0" />\r
+      <gd name="g33" fmla="+- g11 g23 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="g32" y="g26" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g28" y="vc" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g29" y="g27" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g29" y="g10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g25" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g24" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g31" y="g25" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g26" />\r
+        </lnTo>\r
+\r
+        <moveTo>\r
+          <pt x="g33" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g28" y="vc" />\r
+        </lnTo>\r
+\r
+        <moveTo>\r
+          <pt x="g29" y="g10" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g29" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g27" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g30" y="g10" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonHome>\r
+  <actionButtonInformation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 32" />\r
+      <gd name="g17" fmla="*/ g13 5 16" />\r
+      <gd name="g18" fmla="*/ g13 3 8" />\r
+      <gd name="g19" fmla="*/ g13 13 32" />\r
+      <gd name="g20" fmla="*/ g13 19 32" />\r
+      <gd name="g22" fmla="*/ g13 11 16" />\r
+      <gd name="g23" fmla="*/ g13 13 16" />\r
+      <gd name="g24" fmla="*/ g13 7 8" />\r
+      <gd name="g25" fmla="+- g9 g14 0" />\r
+      <gd name="g28" fmla="+- g9 g17 0" />\r
+      <gd name="g29" fmla="+- g9 g18 0" />\r
+      <gd name="g30" fmla="+- g9 g23 0" />\r
+      <gd name="g31" fmla="+- g9 g24 0" />\r
+      <gd name="g32" fmla="+- g11 g17 0" />\r
+      <gd name="g34" fmla="+- g11 g19 0" />\r
+      <gd name="g35" fmla="+- g11 g20 0" />\r
+      <gd name="g37" fmla="+- g11 g22 0" />\r
+      <gd name="g38" fmla="*/ g13 3 32" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="hc" y="g9" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="dx2" hR="dx2" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="g25" />\r
+        </moveTo>\r
+\r
+        <arcTo wR="g38" hR="g38" stAng="3cd4" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="g32" y="g28" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g35" y="g28" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g31" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g30" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g29" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g29" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonInformation>\r
+  <actionButtonMovie>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1455 21600" />\r
+      <gd name="g15" fmla="*/ g13 1905 21600" />\r
+      <gd name="g16" fmla="*/ g13 2325 21600" />\r
+      <gd name="g17" fmla="*/ g13 16155 21600" />\r
+      <gd name="g18" fmla="*/ g13 17010 21600" />\r
+      <gd name="g19" fmla="*/ g13 19335 21600" />\r
+      <gd name="g20" fmla="*/ g13 19725 21600" />\r
+      <gd name="g21" fmla="*/ g13 20595 21600" />\r
+      <gd name="g22" fmla="*/ g13 5280 21600" />\r
+      <gd name="g23" fmla="*/ g13 5730 21600" />\r
+      <gd name="g24" fmla="*/ g13 6630 21600" />\r
+      <gd name="g25" fmla="*/ g13 7492 21600" />\r
+      <gd name="g26" fmla="*/ g13 9067 21600" />\r
+      <gd name="g27" fmla="*/ g13 9555 21600" />\r
+      <gd name="g28" fmla="*/ g13 13342 21600" />\r
+      <gd name="g29" fmla="*/ g13 14580 21600" />\r
+      <gd name="g30" fmla="*/ g13 15592 21600" />\r
+      <gd name="g31" fmla="+- g11 g14 0" />\r
+      <gd name="g32" fmla="+- g11 g15 0" />\r
+      <gd name="g33" fmla="+- g11 g16 0" />\r
+      <gd name="g34" fmla="+- g11 g17 0" />\r
+      <gd name="g35" fmla="+- g11 g18 0" />\r
+      <gd name="g36" fmla="+- g11 g19 0" />\r
+      <gd name="g37" fmla="+- g11 g20 0" />\r
+      <gd name="g38" fmla="+- g11 g21 0" />\r
+      <gd name="g39" fmla="+- g9 g22 0" />\r
+      <gd name="g40" fmla="+- g9 g23 0" />\r
+      <gd name="g41" fmla="+- g9 g24 0" />\r
+      <gd name="g42" fmla="+- g9 g25 0" />\r
+      <gd name="g43" fmla="+- g9 g26 0" />\r
+      <gd name="g44" fmla="+- g9 g27 0" />\r
+      <gd name="g45" fmla="+- g9 g28 0" />\r
+      <gd name="g46" fmla="+- g9 g29 0" />\r
+      <gd name="g47" fmla="+- g9 g30 0" />\r
+      <gd name="g48" fmla="+- g9 g31 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g39" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g31" y="g39" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g34" y="g40" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g37" y="g42" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g41" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g38" y="g46" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g36" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g45" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g35" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g47" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g33" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g32" y="g43" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g31" y="g44" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g44" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonMovie>\r
+  <actionButtonReturn>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 7 8" />\r
+      <gd name="g15" fmla="*/ g13 3 4" />\r
+      <gd name="g16" fmla="*/ g13 5 8" />\r
+      <gd name="g17" fmla="*/ g13 3 8" />\r
+      <gd name="g18" fmla="*/ g13 1 4" />\r
+      <gd name="g19" fmla="+- g9 g15 0" />\r
+      <gd name="g20" fmla="+- g9 g16 0" />\r
+      <gd name="g21" fmla="+- g9 g18 0" />\r
+      <gd name="g22" fmla="+- g11 g14 0" />\r
+      <gd name="g23" fmla="+- g11 g15 0" />\r
+      <gd name="g24" fmla="+- g11 g16 0" />\r
+      <gd name="g25" fmla="+- g11 g17 0" />\r
+      <gd name="g26" fmla="+- g11 g18 0" />\r
+      <gd name="g27" fmla="*/ g13 1 8" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g12" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g22" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g22" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <arcTo wR="g17" hR="g17" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="g11" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g26" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g26" y="g20" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="g19" />\r
+        </lnTo>\r
+        <arcTo wR="g27" hR="g27" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g23" y="g9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonReturn>\r
+  <actionButtonSound>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx2" fmla="*/ ss 3 8" />\r
+      <gd name="g9" fmla="+- vc 0 dx2" />\r
+      <gd name="g10" fmla="+- vc dx2 0" />\r
+      <gd name="g11" fmla="+- hc 0 dx2" />\r
+      <gd name="g12" fmla="+- hc dx2 0" />\r
+      <gd name="g13" fmla="*/ ss 3 4" />\r
+      <gd name="g14" fmla="*/ g13 1 8" />\r
+      <gd name="g15" fmla="*/ g13 5 16" />\r
+      <gd name="g16" fmla="*/ g13 5 8" />\r
+      <gd name="g17" fmla="*/ g13 11 16" />\r
+      <gd name="g18" fmla="*/ g13 3 4" />\r
+      <gd name="g19" fmla="*/ g13 7 8" />\r
+      <gd name="g20" fmla="+- g9 g14 0" />\r
+      <gd name="g21" fmla="+- g9 g15 0" />\r
+      <gd name="g22" fmla="+- g9 g17 0" />\r
+      <gd name="g23" fmla="+- g9 g19 0" />\r
+      <gd name="g24" fmla="+- g11 g15 0" />\r
+      <gd name="g25" fmla="+- g11 g16 0" />\r
+      <gd name="g26" fmla="+- g11 g18 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="g11" y="g21" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="g24" y="g21" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g25" y="g10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g24" y="g22" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="g11" y="g22" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="g26" y="g21" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g20" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="g26" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="vc" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="g26" y="g22" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="g12" y="g23" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </actionButtonSound>\r
+  <arc>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16200000" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw11" fmla="+- enAng 0 stAng" />\r
+      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
+      <gd name="da1" fmla="+- swAng 0 sw0" />\r
+      <gd name="g1" fmla="max x1 x2" />\r
+      <gd name="ir" fmla="?: da1 r g1" />\r
+      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
+      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
+      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="da2" fmla="+- swAng 0 sw3" />\r
+      <gd name="g5" fmla="max y1 y2" />\r
+      <gd name="ib" fmla="?: da2 b g5" />\r
+      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
+      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
+      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
+      <gd name="da3" fmla="+- swAng 0 sw6" />\r
+      <gd name="g9" fmla="min x1 x2" />\r
+      <gd name="il" fmla="?: da3 l g9" />\r
+      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
+      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
+      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
+      <gd name="da4" fmla="+- swAng 0 sw9" />\r
+      <gd name="g13" fmla="min y1 y2" />\r
+      <gd name="it" fmla="?: da4 t g13" />\r
+      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
+      <gd name="cang2" fmla="+- enAng cd4 0" />\r
+      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cang1">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cang3">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cang2">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="hc" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+      </path>\r
+    </pathLst>\r
+  </arc>\r
+  <bentArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 43750" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="dh2" fmla="+- aw2 0 th2" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="bw" fmla="+- r 0 ah" />\r
+\r
+      <gd name="bh" fmla="+- b 0 dh2" />\r
+\r
+      <gd name="bs" fmla="min bw bh" />\r
+\r
+      <gd name="maxAdj4" fmla="*/ 100000 bs ss" />\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+\r
+      <gd name="bd" fmla="*/ ss a4 100000" />\r
+\r
+\r
+      <gd name="bd3" fmla="+- bd 0 th" />\r
+      <gd name="bd2" fmla="max bd3 0" />\r
+      <gd name="x3" fmla="+- th bd2 0" />\r
+      <gd name="x4" fmla="+- r 0 ah" />\r
+\r
+\r
+      <gd name="y3" fmla="+- dh2 th 0" />\r
+      <gd name="y4" fmla="+- y3 dh2 0" />\r
+      <gd name="y5" fmla="+- dh2 bd 0" />\r
+      <gd name="y6" fmla="+- y3 bd2 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="th" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="50000">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="50000">\r
+        <pos x="x4" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="bd" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="th2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="aw2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="dh2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="aw2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="th" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentArrow>\r
+  <bentConnector2>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector2>\r
+  <bentConnector3>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector3>\r
+  <bentConnector4>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+      <gd name="x2" fmla="+/ x1 r 2" />\r
+      <gd name="y2" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y2 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </bentConnector4>\r
+  <bentConnector5>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 50000" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w adj1 100000" />\r
+\r
+      <gd name="x3" fmla="*/ w adj3 100000" />\r
+\r
+      <gd name="x2" fmla="+/ x1 x3 2" />\r
+\r
+      <gd name="y2" fmla="*/ h adj2 100000" />\r
+\r
+      <gd name="y1" fmla="+/ t y2 2" />\r
+\r
+      <gd name="y3" fmla="+/ b y2 2" />\r
+\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentConnector5>\r
+  <bentUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx1" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="dx3" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x2" fmla="+- x3 0 dx2" />\r
+      <gd name="x4" fmla="+- x3 dx2 0" />\r
+      <gd name="dy2" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="x0" fmla="*/ x4 1 2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+      <gd name="y15" fmla="+/ y1 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="50000">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x0" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y15" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bentUpArrow>\r
+  <bevel>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+\r
+\r
+\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="x1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="x1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darken" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bevel>\r
+  <blockArc>\r
+\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 10800000" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="istAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="a3" fmla="pin 0 adj3 50000" />\r
+      <gd name="sw11" fmla="+- istAng 0 stAng" />\r
+\r
+      <gd name="sw12" fmla="+- sw11 21600000 0" />\r
+\r
+      <gd name="swAng" fmla="?: sw11 sw11 sw12" />\r
+\r
+      <gd name="iswAng" fmla="+- 0 0 swAng" />\r
+\r
+\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="wt3" fmla="sin wd2 istAng" />\r
+      <gd name="ht3" fmla="cos hd2 istAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="dx3" fmla="cat2 wd2 ht3 wt3" />\r
+      <gd name="dy3" fmla="sat2 hd2 ht3 wt3" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="x3" fmla="+- hc dx3 0" />\r
+\r
+      <gd name="y3" fmla="+- vc dy3 0" />\r
+\r
+\r
+      <gd name="dr" fmla="*/ ss a3 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="wt2" fmla="sin iwd2 istAng" />\r
+      <gd name="ht2" fmla="cos ihd2 istAng" />\r
+      <gd name="wt4" fmla="sin iwd2 stAng" />\r
+      <gd name="ht4" fmla="cos ihd2 stAng" />\r
+      <gd name="dx2" fmla="cat2 iwd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 ihd2 ht2 wt2" />\r
+      <gd name="dx4" fmla="cat2 iwd2 ht4 wt4" />\r
+      <gd name="dy4" fmla="sat2 ihd2 ht4 wt4" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="x4" fmla="+- hc dx4 0" />\r
+\r
+      <gd name="y4" fmla="+- vc dy4 0" />\r
+\r
+\r
+      <gd name="sw0" fmla="+- 21600000 0 stAng" />\r
+      <gd name="da1" fmla="+- swAng 0 sw0" />\r
+      <gd name="g1" fmla="max x1 x2" />\r
+      <gd name="g2" fmla="max x3 x4" />\r
+      <gd name="g3" fmla="max g1 g2" />\r
+      <gd name="ir" fmla="?: da1 r g3" />\r
+\r
+      <gd name="sw1" fmla="+- cd4 0 stAng" />\r
+      <gd name="sw2" fmla="+- 27000000 0 stAng" />\r
+      <gd name="sw3" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="da2" fmla="+- swAng 0 sw3" />\r
+      <gd name="g5" fmla="max y1 y2" />\r
+      <gd name="g6" fmla="max y3 y4" />\r
+      <gd name="g7" fmla="max g5 g6" />\r
+      <gd name="ib" fmla="?: da2 b g7" />\r
+\r
+      <gd name="sw4" fmla="+- cd2 0 stAng" />\r
+      <gd name="sw5" fmla="+- 32400000 0 stAng" />\r
+      <gd name="sw6" fmla="?: sw4 sw4 sw5" />\r
+      <gd name="da3" fmla="+- swAng 0 sw6" />\r
+      <gd name="g9" fmla="min x1 x2" />\r
+      <gd name="g10" fmla="min x3 x4" />\r
+      <gd name="g11" fmla="min g9 g10" />\r
+      <gd name="il" fmla="?: da3 l g11" />\r
+\r
+      <gd name="sw7" fmla="+- 3cd4 0 stAng" />\r
+      <gd name="sw8" fmla="+- 37800000 0 stAng" />\r
+      <gd name="sw9" fmla="?: sw7 sw7 sw8" />\r
+      <gd name="da4" fmla="+- swAng 0 sw9" />\r
+      <gd name="g13" fmla="min y1 y2" />\r
+      <gd name="g14" fmla="min y3 y4" />\r
+      <gd name="g15" fmla="min g13 g14" />\r
+      <gd name="it" fmla="?: da4 t g15" />\r
+\r
+      <gd name="x5" fmla="+/ x1 x4 2" />\r
+\r
+      <gd name="y5" fmla="+/ y1 y4 2" />\r
+\r
+      <gd name="x6" fmla="+/ x3 x2 2" />\r
+\r
+      <gd name="y6" fmla="+/ y3 y2 2" />\r
+\r
+      <gd name="cang1" fmla="+- stAng 0 cd4" />\r
+      <gd name="cang2" fmla="+- istAng cd4 0" />\r
+      <gd name="cang3" fmla="+/ cang1 cang2 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj3" minR="0" maxR="50000" gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cang1">\r
+        <pos x="x5" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cang2">\r
+        <pos x="x6" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cang3">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="istAng" swAng="iswAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </blockArc>\r
+  <borderCallout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout1>\r
+  <borderCallout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout2>\r
+  <borderCallout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </borderCallout3>\r
+  <bracePair>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="*/ ss a 50000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 x1" />\r
+      <gd name="y3" fmla="+- vc x1 0" />\r
+      <gd name="y4" fmla="+- b 0 x1" />\r
+      <gd name="it" fmla="*/ x1 29289 100000" />\r
+\r
+      <gd name="il" fmla="+- x1 it 0" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
+        <pos x="l" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <moveTo>\r
+          <pt x="x3" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bracePair>\r
+  <bracketPair>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="l" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <moveTo>\r
+          <pt x="x2" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </bracketPair>\r
+  <callout1>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 112500" />\r
+\r
+      <gd name="adj4" fmla="val -38333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout1>\r
+  <callout2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 112500" />\r
+\r
+      <gd name="adj6" fmla="val -46667" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout2>\r
+  <callout3>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="adj1" fmla="val 18750" />\r
+\r
+      <gd name="adj2" fmla="val -8333" />\r
+\r
+      <gd name="adj3" fmla="val 18750" />\r
+\r
+      <gd name="adj4" fmla="val -16667" />\r
+\r
+      <gd name="adj5" fmla="val 100000" />\r
+\r
+      <gd name="adj6" fmla="val -16667" />\r
+\r
+      <gd name="adj7" fmla="val 112963" />\r
+\r
+      <gd name="adj8" fmla="val -8333" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h adj1 100000" />\r
+      <gd name="x1" fmla="*/ w adj2 100000" />\r
+      <gd name="y2" fmla="*/ h adj3 100000" />\r
+      <gd name="x2" fmla="*/ w adj4 100000" />\r
+      <gd name="y3" fmla="*/ h adj5 100000" />\r
+      <gd name="x3" fmla="*/ w adj6 100000" />\r
+      <gd name="y4" fmla="*/ h adj7 100000" />\r
+      <gd name="x4" fmla="*/ w adj8 100000" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj2" minX="-2147483647" maxX="2147483647" gdRefY="adj1" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="-2147483647" maxX="2147483647" gdRefY="adj3" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x2" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj6" minX="-2147483647" maxX="2147483647" gdRefY="adj5" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj8" minX="-2147483647" maxX="2147483647" gdRefY="adj7" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x4" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </callout3>\r
+  <can>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 200000" />\r
+      <gd name="y2" fmla="+- y1 y1 0" />\r
+      <gd name="y3" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lighten" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </can>\r
+  <chartPlus>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="5" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="5" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartPlus>\r
+  <chartStar>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="10" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="5" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartStar>\r
+  <chartX>\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="10" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+      </path>\r
+      <path w="10" h="10" stroke="false">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="0" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chartX>\r
+  <chevron>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="x3" fmla="*/ x2 1 2" />\r
+      <gd name="dx" fmla="+- x2 0 x1" />\r
+      <gd name="il" fmla="?: dx x1 l" />\r
+      <gd name="ir" fmla="?: dx x2 r" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </chevron>\r
+  <chord>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 2700000" />\r
+\r
+      <gd name="adj2" fmla="val 16200000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
+\r
+      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
+\r
+      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
+\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="x3" fmla="+/ x1 x2 2" />\r
+      <gd name="y3" fmla="+/ y1 y2 2" />\r
+      <gd name="midAng0" fmla="*/ swAng 1 2" />\r
+      <gd name="midAng" fmla="+- stAng midAng0 cd2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="stAng">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="enAng">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="midAng">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </chord>\r
+  <circularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 1142319" />\r
+\r
+      <gd name="adj3" fmla="val 20457681" />\r
+\r
+      <gd name="adj4" fmla="val 10800000" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="maxAng" fmla="abs u21" />\r
+      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 stAng" />\r
+      <gd name="htE" fmla="cos rh1 stAng" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
+      <gd name="isw1" fmla="+- stAng 0 istAng" />\r
+      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
+      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
+\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="sw0" fmla="+- en2 0 stAng" />\r
+      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="aI" fmla="+- stAng 0 cd4" />\r
+      <gd name="aA" fmla="+- ptAng cd4 0" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aI">\r
+        <pos x="xI" y="yI" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xE" y="yE" />\r
+        </moveTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC" y="yC" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </circularArrow>\r
+  <cloud>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="il" fmla="*/ w 2977 21600" />\r
+      <gd name="it" fmla="*/ h 3262 21600" />\r
+      <gd name="ir" fmla="*/ w 17087 21600" />\r
+      <gd name="ib" fmla="*/ h 17337 21600" />\r
+      <gd name="g27" fmla="*/ w 67 21600" />\r
+      <gd name="g28" fmla="*/ h 21577 21600" />\r
+      <gd name="g29" fmla="*/ w 21582 21600" />\r
+      <gd name="g30" fmla="*/ h 1235 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="g29" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="g28" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="g27" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="g30" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="43200" h="43200">\r
+        <moveTo>\r
+          <pt x="3900" y="14370" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
+        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
+        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
+        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
+        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
+        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
+        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
+        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
+        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
+        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
+        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
+        <close />\r
+      </path>\r
+      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="4693" y="26177" />\r
+        </moveTo>\r
+        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
+        <moveTo>\r
+          <pt x="6928" y="34899" />\r
+        </moveTo>\r
+        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
+        <moveTo>\r
+          <pt x="16478" y="39090" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
+        <moveTo>\r
+          <pt x="28827" y="34751" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
+        <moveTo>\r
+          <pt x="34129" y="22954" />\r
+        </moveTo>\r
+        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
+        <moveTo>\r
+          <pt x="41798" y="15354" />\r
+        </moveTo>\r
+        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
+        <moveTo>\r
+          <pt x="38324" y="5426" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
+        <moveTo>\r
+          <pt x="29078" y="3952" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
+        <moveTo>\r
+          <pt x="22141" y="4720" />\r
+        </moveTo>\r
+        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
+        <moveTo>\r
+          <pt x="14000" y="5192" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
+        <moveTo>\r
+          <pt x="4127" y="15789" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cloud>\r
+  <cloudCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+\r
+      <gd name="adj2" fmla="val 62500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="ht" fmla="cat2 hd2 dxPos dyPos" />\r
+      <gd name="wt" fmla="sat2 wd2 dxPos dyPos" />\r
+      <gd name="g2" fmla="cat2 wd2 ht wt" />\r
+      <gd name="g3" fmla="sat2 hd2 ht wt" />\r
+      <gd name="g4" fmla="+- hc g2 0" />\r
+\r
+      <gd name="g5" fmla="+- vc g3 0" />\r
+\r
+      <gd name="g6" fmla="+- g4 0 xPos" />\r
+\r
+      <gd name="g7" fmla="+- g5 0 yPos" />\r
+\r
+      <gd name="g8" fmla="mod g6 g7 0" />\r
+\r
+      <gd name="g9" fmla="*/ ss 6600 21600" />\r
+\r
+      <gd name="g10" fmla="+- g8 0 g9" />\r
+\r
+      <gd name="g11" fmla="*/ g10 1 3" />\r
+\r
+      <gd name="g12" fmla="*/ ss 1800 21600" />\r
+\r
+      <gd name="g13" fmla="+- g11 g12 0" />\r
+\r
+      <gd name="g14" fmla="*/ g13 g6 g8" />\r
+\r
+      <gd name="g15" fmla="*/ g13 g7 g8" />\r
+\r
+      <gd name="g16" fmla="+- g14 xPos 0" />\r
+\r
+      <gd name="g17" fmla="+- g15 yPos 0" />\r
+\r
+      <gd name="g18" fmla="*/ ss 4800 21600" />\r
+\r
+      <gd name="g19" fmla="*/ g11 2 1" />\r
+\r
+      <gd name="g20" fmla="+- g18 g19 0" />\r
+\r
+      <gd name="g21" fmla="*/ g20 g6 g8" />\r
+      <gd name="g22" fmla="*/ g20 g7 g8" />\r
+      <gd name="g23" fmla="+- g21 xPos 0" />\r
+      <gd name="g24" fmla="+- g22 yPos 0" />\r
+      <gd name="g25" fmla="*/ ss 1200 21600" />\r
+      <gd name="g26" fmla="*/ ss 600 21600" />\r
+\r
+      <gd name="x23" fmla="+- xPos g26 0" />\r
+      <gd name="x24" fmla="+- g16 g25 0" />\r
+      <gd name="x25" fmla="+- g23 g12 0" />\r
+      <gd name="il" fmla="*/ w 2977 21600" />\r
+      <gd name="it" fmla="*/ h 3262 21600" />\r
+      <gd name="ir" fmla="*/ w 17087 21600" />\r
+      <gd name="ib" fmla="*/ h 17337 21600" />\r
+\r
+      <gd name="g27" fmla="*/ w 67 21600" />\r
+      <gd name="g28" fmla="*/ h 21577 21600" />\r
+      <gd name="g29" fmla="*/ w 21582 21600" />\r
+      <gd name="g30" fmla="*/ h 1235 21600" />\r
+      <gd name="pang" fmla="at2 dxPos dyPos" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="g27" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="g28" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="g29" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="g30" />\r
+      </cxn>\r
+      <cxn ang="pang">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="43200" h="43200">\r
+        <moveTo>\r
+          <pt x="3900" y="14370" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-11429249" swAng="7426832" />\r
+        <arcTo wR="5333" hR="7267" stAng="-8646143" swAng="5396714" />\r
+        <arcTo wR="4365" hR="5945" stAng="-8748475" swAng="5983381" />\r
+        <arcTo wR="4857" hR="6595" stAng="-7859164" swAng="7034504" />\r
+        <arcTo wR="5333" hR="7273" stAng="-4722533" swAng="6541615" />\r
+        <arcTo wR="6775" hR="9220" stAng="-2776035" swAng="7816140" />\r
+        <arcTo wR="5785" hR="7867" stAng="37501" swAng="6842000" />\r
+        <arcTo wR="6752" hR="9215" stAng="1347096" swAng="6910353" />\r
+        <arcTo wR="7720" hR="10543" stAng="3974558" swAng="4542661" />\r
+        <arcTo wR="4360" hR="5918" stAng="-16496525" swAng="8804134" />\r
+        <arcTo wR="4345" hR="5945" stAng="-14809710" swAng="9151131" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x23" y="yPos" />\r
+        </moveTo>\r
+        <arcTo wR="g26" hR="g26" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x24" y="g17" />\r
+        </moveTo>\r
+        <arcTo wR="g25" hR="g25" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x25" y="g24" />\r
+        </moveTo>\r
+        <arcTo wR="g12" hR="g12" stAng="0" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path w="43200" h="43200" fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="4693" y="26177" />\r
+        </moveTo>\r
+        <arcTo wR="4345" hR="5945" stAng="5204520" swAng="1585770" />\r
+        <moveTo>\r
+          <pt x="6928" y="34899" />\r
+        </moveTo>\r
+        <arcTo wR="4360" hR="5918" stAng="4416628" swAng="686848" />\r
+        <moveTo>\r
+          <pt x="16478" y="39090" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="8257449" swAng="844866" />\r
+        <moveTo>\r
+          <pt x="28827" y="34751" />\r
+        </moveTo>\r
+        <arcTo wR="6752" hR="9215" stAng="387196" swAng="959901" />\r
+        <moveTo>\r
+          <pt x="34129" y="22954" />\r
+        </moveTo>\r
+        <arcTo wR="5785" hR="7867" stAng="-4217541" swAng="4255042" />\r
+        <moveTo>\r
+          <pt x="41798" y="15354" />\r
+        </moveTo>\r
+        <arcTo wR="5333" hR="7273" stAng="1819082" swAng="1665090" />\r
+        <moveTo>\r
+          <pt x="38324" y="5426" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-824660" swAng="891534" />\r
+        <moveTo>\r
+          <pt x="29078" y="3952" />\r
+        </moveTo>\r
+        <arcTo wR="4857" hR="6595" stAng="-8950887" swAng="1091722" />\r
+        <moveTo>\r
+          <pt x="22141" y="4720" />\r
+        </moveTo>\r
+        <arcTo wR="4365" hR="5945" stAng="-9809656" swAng="1061181" />\r
+        <moveTo>\r
+          <pt x="14000" y="5192" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="-4002417" swAng="739161" />\r
+        <moveTo>\r
+          <pt x="4127" y="15789" />\r
+        </moveTo>\r
+        <arcTo wR="6753" hR="9190" stAng="9459261" swAng="711490" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cloudCallout>\r
+  <corner>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj1" fmla="*/ 100000 h ss" />\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+      <gd name="dy1" fmla="*/ ss a1 100000" />\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="cx1" fmla="*/ x1 1 2" />\r
+      <gd name="cy1" fmla="+/ y1 b 2" />\r
+      <gd name="d" fmla="+- w 0 h" />\r
+      <gd name="it" fmla="?: d y1 t" />\r
+      <gd name="ir" fmla="?: d r x1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="cx1" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </corner>\r
+  <cornerTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </cornerTabs>\r
+  <cube>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+      <gd name="y2" fmla="*/ y4 1 2" />\r
+      <gd name="y3" fmla="+/ y1 b 2" />\r
+      <gd name="x4" fmla="+- r 0 y1" />\r
+      <gd name="x2" fmla="*/ x4 1 2" />\r
+      <gd name="x3" fmla="+/ y1 r 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="y1" r="x4" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="lightenLess" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="y1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="y1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </cube>\r
+  <curvedConnector2>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="wd2" y="t" />\r
+          <pt x="r" y="hd2" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector2>\r
+  <curvedConnector3>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w adj1 100000" />\r
+      <gd name="x1" fmla="+/ l x2 2" />\r
+      <gd name="x3" fmla="+/ r x2 2" />\r
+      <gd name="y3" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x2" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="t" />\r
+          <pt x="x2" y="hd4" />\r
+          <pt x="x2" y="vc" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="y3" />\r
+          <pt x="x3" y="b" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector3>\r
+  <curvedConnector4>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w adj1 100000" />\r
+      <gd name="x1" fmla="+/ l x2 2" />\r
+      <gd name="x3" fmla="+/ r x2 2" />\r
+      <gd name="x4" fmla="+/ x2 x3 2" />\r
+      <gd name="x5" fmla="+/ x3 r 2" />\r
+      <gd name="y4" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y4 2" />\r
+      <gd name="y2" fmla="+/ t y1 2" />\r
+      <gd name="y3" fmla="+/ y1 y4 2" />\r
+      <gd name="y5" fmla="+/ b y4 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x3" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="t" />\r
+          <pt x="x2" y="y2" />\r
+          <pt x="x2" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="y3" />\r
+          <pt x="x4" y="y4" />\r
+          <pt x="x3" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x5" y="y4" />\r
+          <pt x="r" y="y5" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+  </curvedConnector4>\r
+  <curvedConnector5>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 50000" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w adj1 100000" />\r
+      <gd name="x6" fmla="*/ w adj3 100000" />\r
+      <gd name="x1" fmla="+/ x3 x6 2" />\r
+      <gd name="x2" fmla="+/ l x3 2" />\r
+      <gd name="x4" fmla="+/ x3 x1 2" />\r
+      <gd name="x5" fmla="+/ x6 x1 2" />\r
+      <gd name="x7" fmla="+/ x6 r 2" />\r
+      <gd name="y4" fmla="*/ h adj2 100000" />\r
+      <gd name="y1" fmla="+/ t y4 2" />\r
+      <gd name="y2" fmla="+/ t y1 2" />\r
+      <gd name="y3" fmla="+/ y1 y4 2" />\r
+      <gd name="y5" fmla="+/ b y4 2" />\r
+      <gd name="y6" fmla="+/ y5 y4 2" />\r
+      <gd name="y7" fmla="+/ y5 b 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x3" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="x1" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="-2147483647" maxX="2147483647">\r
+        <pos x="x6" y="y5" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x2" y="t" />\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x3" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y3" />\r
+          <pt x="x4" y="y4" />\r
+          <pt x="x1" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x5" y="y4" />\r
+          <pt x="x6" y="y6" />\r
+          <pt x="x6" y="y5" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x6" y="y7" />\r
+          <pt x="x7" y="b" />\r
+          <pt x="r" y="b" />\r
+        </cubicBezTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedConnector5>\r
+  <curvedDownArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="wR" fmla="+- wd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ wR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idy" fmla="*/ q11 h q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss adj3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- wR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ h h 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dx" fmla="*/ q5 wR h" />\r
+      <gd name="x5" fmla="+- wR dx 0" />\r
+\r
+      <gd name="x7" fmla="+- x3 dx 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 dh" />\r
+\r
+      <gd name="x8" fmla="+- x7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="x6" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="y1" fmla="+- b 0 ah" />\r
+      <gd name="swAng" fmla="at2 ah dx" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="iy" fmla="+- b 0 idy" />\r
+\r
+      <gd name="ix" fmla="+/ wR x3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idy q12" />\r
+      <gd name="stAng" fmla="+- 3cd4 swAng 0" />\r
+      <gd name="stAng2" fmla="+- 3cd4 0 dang2" />\r
+      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
+      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="adj2">\r
+        <pos x="x7" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x4" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="ix" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="q12" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x6" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x6" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="swAng3" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="3cd4" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng" swAng="mswAng" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedDownArrow>\r
+  <curvedLeftArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 a2" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="hR" fmla="+- hd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ hR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idx" fmla="*/ q11 w q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- hR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ w w 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dy" fmla="*/ q5 hR w" />\r
+      <gd name="y5" fmla="+- hR dy 0" />\r
+\r
+      <gd name="y7" fmla="+- y3 dy 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 dh" />\r
+\r
+      <gd name="y8" fmla="+- y7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="y6" fmla="+- b 0 aw2" />\r
+\r
+      <gd name="x1" fmla="+- l ah 0" />\r
+      <gd name="swAng" fmla="at2 ah dy" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="ix" fmla="+- l idx 0" />\r
+\r
+      <gd name="iy" fmla="+/ hR y3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idx q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
+      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
+      <gd name="stAng3" fmla="+- 0 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
+        <pos x="x1" y="y5" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="q12" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd3">\r
+        <pos x="l" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="iy" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
+        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="0" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="swAng" swAng="swAng2" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedLeftArrow>\r
+  <curvedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 a2" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="hR" fmla="+- hd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ hR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idx" fmla="*/ q11 w q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idx ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- hR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ w w 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dy" fmla="*/ q5 hR w" />\r
+      <gd name="y5" fmla="+- hR dy 0" />\r
+\r
+      <gd name="y7" fmla="+- y3 dy 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 dh" />\r
+\r
+      <gd name="y8" fmla="+- y7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="y6" fmla="+- b 0 aw2" />\r
+\r
+      <gd name="x1" fmla="+- r 0 ah" />\r
+      <gd name="swAng" fmla="at2 ah dy" />\r
+\r
+      <gd name="stAng" fmla="+- cd2 0 swAng" />\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="ix" fmla="+- r 0 idx" />\r
+\r
+      <gd name="iy" fmla="+/ hR y3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idx q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 cd4" />\r
+      <gd name="swAng3" fmla="+- cd4 dang2 0" />\r
+      <gd name="stAng3" fmla="+- cd2 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="a2">\r
+        <pos x="x1" y="y5" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="iy" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y6" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="q12" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="th" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
+        <arcTo wR="w" hR="hR" stAng="stAng3" swAng="swAng3" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="mswAng" />\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="l" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="th" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="hR" stAng="3cd4" swAng="swAng2" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedRightArrow>\r
+  <curvedUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="q1" fmla="+/ th aw 4" />\r
+\r
+      <gd name="wR" fmla="+- wd2 0 q1" />\r
+\r
+      <gd name="q7" fmla="*/ wR 2 1" />\r
+\r
+      <gd name="q8" fmla="*/ q7 q7 1" />\r
+\r
+      <gd name="q9" fmla="*/ th th 1" />\r
+\r
+      <gd name="q10" fmla="+- q8 0 q9" />\r
+      <gd name="q11" fmla="sqrt q10" />\r
+      <gd name="idy" fmla="*/ q11 h q7" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 idy ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="ah" fmla="*/ ss adj3 100000" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- wR th 0" />\r
+\r
+      <gd name="q2" fmla="*/ h h 1" />\r
+      <gd name="q3" fmla="*/ ah ah 1" />\r
+      <gd name="q4" fmla="+- q2 0 q3" />\r
+      <gd name="q5" fmla="sqrt q4" />\r
+      <gd name="dx" fmla="*/ q5 wR h" />\r
+      <gd name="x5" fmla="+- wR dx 0" />\r
+\r
+      <gd name="x7" fmla="+- x3 dx 0" />\r
+\r
+      <gd name="q6" fmla="+- aw 0 th" />\r
+      <gd name="dh" fmla="*/ q6 1 2" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 dh" />\r
+\r
+      <gd name="x8" fmla="+- x7 dh 0" />\r
+\r
+      <gd name="aw2" fmla="*/ aw 1 2" />\r
+      <gd name="x6" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="y1" fmla="+- t ah 0" />\r
+      <gd name="swAng" fmla="at2 ah dx" />\r
+\r
+      <gd name="mswAng" fmla="+- 0 0 swAng" />\r
+      <gd name="iy" fmla="+- t idy 0" />\r
+\r
+      <gd name="ix" fmla="+/ wR x3 2" />\r
+\r
+      <gd name="q12" fmla="*/ th 1 2" />\r
+      <gd name="dang2" fmla="at2 idy q12" />\r
+      <gd name="swAng2" fmla="+- dang2 0 swAng" />\r
+      <gd name="mswAng2" fmla="+- 0 0 swAng2" />\r
+      <gd name="stAng3" fmla="+- cd4 0 swAng" />\r
+      <gd name="swAng3" fmla="+- swAng dang2 0" />\r
+      <gd name="stAng2" fmla="+- cd4 0 dang2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="a2">\r
+        <pos x="x7" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x4" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x6" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="q12" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ix" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x6" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng3" />\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="wR" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="th" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="ix" y="iy" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng2" swAng="swAng2" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="stAng3" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="wR" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="th" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wR" hR="h" stAng="cd2" swAng="-5400000" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </curvedUpArrow>\r
+  <decagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="vf" fmla="val 105146" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="dx1" fmla="cos wd2 2160000" />\r
+      <gd name="dx2" fmla="cos wd2 4320000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="sin shd2 4320000" />\r
+      <gd name="dy2" fmla="sin shd2 2160000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </decagon>\r
+  <diagStripe>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="x2" fmla="*/ w a 100000" />\r
+      <gd name="x1" fmla="*/ x2 1 2" />\r
+      <gd name="x3" fmla="+/ x2 r 2" />\r
+      <gd name="y2" fmla="*/ h a 100000" />\r
+      <gd name="y1" fmla="*/ y2 1 2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="100000">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="x3" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </diagStripe>\r
+  <diamond>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </diamond>\r
+  <dodecagon>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w 2894 21600" />\r
+      <gd name="x2" fmla="*/ w 7906 21600" />\r
+      <gd name="x3" fmla="*/ w 13694 21600" />\r
+      <gd name="x4" fmla="*/ w 18706 21600" />\r
+      <gd name="y1" fmla="*/ h 2894 21600" />\r
+      <gd name="y2" fmla="*/ h 7906 21600" />\r
+      <gd name="y3" fmla="*/ h 13694 21600" />\r
+      <gd name="y4" fmla="*/ h 18706 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </dodecagon>\r
+  <donut>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dr" fmla="*/ ss a 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
+        <pos x="dr" y="vc" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="dr" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="3cd4" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </donut>\r
+  <doubleWave>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 6250" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 12500" />\r
+      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
+      <gd name="y1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ y1 10 3" />\r
+      <gd name="y2" fmla="+- y1 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- y1 dy2 0" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="y5" fmla="+- y4 0 dy2" />\r
+\r
+      <gd name="y6" fmla="+- y4 dy2 0" />\r
+\r
+      <gd name="dx1" fmla="*/ w a2 100000" />\r
+\r
+      <gd name="of2" fmla="*/ w a2 50000" />\r
+\r
+      <gd name="x1" fmla="abs dx1" />\r
+\r
+      <gd name="dx2" fmla="?: of2 0 of2" />\r
+      <gd name="x2" fmla="+- l 0 dx2" />\r
+\r
+      <gd name="dx8" fmla="?: of2 of2 0" />\r
+      <gd name="x8" fmla="+- r 0 dx8" />\r
+\r
+      <gd name="dx3" fmla="+/ dx2 x8 6" />\r
+      <gd name="x3" fmla="+- x2 dx3 0" />\r
+\r
+      <gd name="dx4" fmla="+/ dx2 x8 3" />\r
+      <gd name="x4" fmla="+- x2 dx4 0" />\r
+\r
+      <gd name="x5" fmla="+/ x2 x8 2" />\r
+\r
+      <gd name="x6" fmla="+- x5 dx3 0" />\r
+\r
+      <gd name="x7" fmla="+/ x6 x8 2" />\r
+\r
+      <gd name="x9" fmla="+- l dx8 0" />\r
+\r
+      <gd name="x15" fmla="+- r dx2 0" />\r
+\r
+      <gd name="x10" fmla="+- x9 dx3 0" />\r
+\r
+      <gd name="x11" fmla="+- x9 dx4 0" />\r
+\r
+      <gd name="x12" fmla="+/ x9 x15 2" />\r
+\r
+      <gd name="x13" fmla="+- x12 dx3 0" />\r
+\r
+      <gd name="x14" fmla="+/ x13 x15 2" />\r
+\r
+      <gd name="x16" fmla="+- r 0 x1" />\r
+\r
+      <gd name="xAdj" fmla="+- hc dx1 0" />\r
+      <gd name="il" fmla="max x2 x9" />\r
+      <gd name="ir" fmla="min x8 x15" />\r
+      <gd name="it" fmla="*/ h a1 50000" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="12500">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
+        <pos x="xAdj" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="x12" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x5" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x16" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x4" y="y3" />\r
+          <pt x="x5" y="y1" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x6" y="y2" />\r
+          <pt x="x7" y="y3" />\r
+          <pt x="x8" y="y1" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y4" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="x14" y="y6" />\r
+          <pt x="x13" y="y5" />\r
+          <pt x="x12" y="y4" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x11" y="y6" />\r
+          <pt x="x10" y="y5" />\r
+          <pt x="x9" y="y4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </doubleWave>\r
+  <downArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy2" fmla="*/ x1 dy1 wd2" />\r
+      <gd name="y2" fmla="+- y1 dy2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="t" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </downArrow>\r
+  <downArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss h" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy3" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y3" fmla="+- b 0 dy3" />\r
+      <gd name="y2" fmla="*/ h a4 100000" />\r
+\r
+      <gd name="y1" fmla="*/ y2 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </downArrowCallout>\r
+  <ellipse>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </ellipse>\r
+  <ellipseRibbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+      <gd name="q10" fmla="+- 100000 0 a1" />\r
+      <gd name="q11" fmla="*/ q10 1 2" />\r
+      <gd name="q12" fmla="+- a1 0 q11" />\r
+      <gd name="minAdj3" fmla="max 0 q12" />\r
+      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
+\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+\r
+      <gd name="x6" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dy1" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="f1" fmla="*/ 4 dy1 w" />\r
+\r
+      <gd name="q1" fmla="*/ x3 x3 w" />\r
+      <gd name="q2" fmla="+- x3 0 q1" />\r
+      <gd name="y1" fmla="*/ f1 q2 1" />\r
+\r
+      <gd name="cx1" fmla="*/ x3 1 2" />\r
+\r
+      <gd name="cy1" fmla="*/ f1 cx1 1" />\r
+\r
+      <gd name="cx2" fmla="+- r 0 cx1" />\r
+\r
+\r
+\r
+      <gd name="q1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy3" fmla="+- q1 0 dy1" />\r
+\r
+      <gd name="q3" fmla="*/ x2 x2 w" />\r
+      <gd name="q4" fmla="+- x2 0 q3" />\r
+      <gd name="q5" fmla="*/ f1 q4 1" />\r
+      <gd name="y3" fmla="+- q5 dy3 0" />\r
+\r
+\r
+\r
+      <gd name="q6" fmla="+- dy1 dy3 y3" />\r
+      <gd name="q7" fmla="+- q6 dy1 0" />\r
+      <gd name="cy3" fmla="+- q7 dy3 0" />\r
+\r
+      <gd name="rh" fmla="+- b 0 q1" />\r
+\r
+      <gd name="q8" fmla="*/ dy1 14 16" />\r
+      <gd name="y2" fmla="+/ q8 rh 2" />\r
+\r
+\r
+      <gd name="y5" fmla="+- q5 rh 0" />\r
+\r
+      <gd name="y6" fmla="+- y3 rh 0" />\r
+\r
+      <gd name="cx4" fmla="*/ x2 1 2" />\r
+\r
+      <gd name="q9" fmla="*/ f1 cx4 1" />\r
+      <gd name="cy4" fmla="+- q9 rh 0" />\r
+\r
+      <gd name="cx5" fmla="+- r 0 cx4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="cy6" fmla="+- cy3 rh 0" />\r
+\r
+      <gd name="y7" fmla="+- y1 dy3 0" />\r
+      <gd name="cy7" fmla="+- q1 q1 y7" />\r
+      <gd name="y8" fmla="+- b 0 dy1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="hc" y="q1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
+        <pos x="l" y="y8" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="q1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="q1" r="x5" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="t" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rh" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="rh" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy7" />\r
+          <pt x="x3" y="y7" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="t" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rh" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="rh" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x5" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y7" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ellipseRibbon>\r
+  <ellipseRibbon2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+      <gd name="q10" fmla="+- 100000 0 a1" />\r
+      <gd name="q11" fmla="*/ q10 1 2" />\r
+      <gd name="q12" fmla="+- a1 0 q11" />\r
+      <gd name="minAdj3" fmla="max 0 q12" />\r
+      <gd name="a3" fmla="pin minAdj3 adj3 a1" />\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+\r
+      <gd name="x6" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dy1" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="f1" fmla="*/ 4 dy1 w" />\r
+\r
+      <gd name="q1" fmla="*/ x3 x3 w" />\r
+      <gd name="q2" fmla="+- x3 0 q1" />\r
+      <gd name="u1" fmla="*/ f1 q2 1" />\r
+\r
+      <gd name="y1" fmla="+- b 0 u1" />\r
+      <gd name="cx1" fmla="*/ x3 1 2" />\r
+\r
+      <gd name="cu1" fmla="*/ f1 cx1 1" />\r
+\r
+      <gd name="cy1" fmla="+- b 0 cu1" />\r
+      <gd name="cx2" fmla="+- r 0 cx1" />\r
+\r
+\r
+\r
+      <gd name="q1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy3" fmla="+- q1 0 dy1" />\r
+\r
+      <gd name="q3" fmla="*/ x2 x2 w" />\r
+      <gd name="q4" fmla="+- x2 0 q3" />\r
+      <gd name="q5" fmla="*/ f1 q4 1" />\r
+      <gd name="u3" fmla="+- q5 dy3 0" />\r
+\r
+      <gd name="y3" fmla="+- b 0 u3" />\r
+\r
+\r
+      <gd name="q6" fmla="+- dy1 dy3 u3" />\r
+      <gd name="q7" fmla="+- q6 dy1 0" />\r
+      <gd name="cu3" fmla="+- q7 dy3 0" />\r
+\r
+      <gd name="cy3" fmla="+- b 0 cu3" />\r
+      <gd name="rh" fmla="+- b 0 q1" />\r
+\r
+      <gd name="q8" fmla="*/ dy1 14 16" />\r
+      <gd name="u2" fmla="+/ q8 rh 2" />\r
+\r
+      <gd name="y2" fmla="+- b 0 u2" />\r
+\r
+      <gd name="u5" fmla="+- q5 rh 0" />\r
+\r
+      <gd name="y5" fmla="+- b 0 u5" />\r
+      <gd name="u6" fmla="+- u3 rh 0" />\r
+\r
+      <gd name="y6" fmla="+- b 0 u6" />\r
+      <gd name="cx4" fmla="*/ x2 1 2" />\r
+\r
+      <gd name="q9" fmla="*/ f1 cx4 1" />\r
+      <gd name="cu4" fmla="+- q9 rh 0" />\r
+\r
+      <gd name="cy4" fmla="+- b 0 cu4" />\r
+      <gd name="cx5" fmla="+- r 0 cx4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="cu6" fmla="+- cu3 rh 0" />\r
+\r
+      <gd name="cy6" fmla="+- b 0 cu6" />\r
+      <gd name="u7" fmla="+- u1 dy3 0" />\r
+      <gd name="y7" fmla="+- b 0 u7" />\r
+      <gd name="cu7" fmla="+- q1 q1 u7" />\r
+      <gd name="cy7" fmla="+- b 0 cu7" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="hc" y="rh" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="100000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="minAdj3" maxY="a1">\r
+        <pos x="l" y="dy1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="rh" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y6" r="x5" b="rh" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="x3" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="r" y="b" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="q1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="x5" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x2" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="l" y="q1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x5" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy7" />\r
+          <pt x="x3" y="y7" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="q1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx4" y="cy4" />\r
+          <pt x="x2" y="y5" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy6" />\r
+          <pt x="x5" y="y6" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx5" y="cy4" />\r
+          <pt x="r" y="q1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx2" y="cy1" />\r
+          <pt x="x4" y="y1" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="cy3" />\r
+          <pt x="x2" y="y3" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="cx1" y="cy1" />\r
+          <pt x="l" y="b" />\r
+        </quadBezTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x5" y="y5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x3" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ellipseRibbon2>\r
+  <flowChartAlternateProcess>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="+- r 0 ssd6" />\r
+      <gd name="y2" fmla="+- b 0 ssd6" />\r
+      <gd name="il" fmla="*/ ssd6 29289 100000" />\r
+\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="ssd6" />\r
+        </moveTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ssd6" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="ssd6" hR="ssd6" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartAlternateProcess>\r
+  <flowChartCollate>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartCollate>\r
+  <flowChartConnector>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartConnector>\r
+  <flowChartDecision>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDecision>\r
+  <flowChartDelay>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDelay>\r
+  <flowChartDisplay>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="6" h="6">\r
+        <moveTo>\r
+          <pt x="0" y="3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDisplay>\r
+  <flowChartDocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h 17322 21600" />\r
+      <gd name="y2" fmla="*/ h 20172 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="17322" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="10800" y="17322" />\r
+          <pt x="10800" y="23922" />\r
+          <pt x="0" y="20172" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartDocument>\r
+  <flowChartExtract>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="vc" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartExtract>\r
+  <flowChartInputOutput>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w 2 5" />\r
+      <gd name="x4" fmla="*/ w 3 5" />\r
+      <gd name="x5" fmla="*/ w 4 5" />\r
+      <gd name="x6" fmla="*/ w 9 10" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd10" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x5" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartInputOutput>\r
+  <flowChartInternalStorage>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd8" t="hd8" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="8" h="8">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="8" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="8" y="1" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartInternalStorage>\r
+  <flowChartMagneticDisk>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y3" fmla="*/ h 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd3" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="6" y="5" />\r
+        </lnTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="6" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+      </path>\r
+      <path fill="none" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <arcTo wR="3" hR="1" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="6" y="5" />\r
+        </lnTo>\r
+        <arcTo wR="3" hR="1" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticDisk>\r
+  <flowChartMagneticDrum>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 2 3" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="5" y="6" />\r
+        </moveTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+      </path>\r
+      <path fill="none" w="6" h="6">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticDrum>\r
+  <flowChartMagneticTape>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="ang1" fmla="at2 w h" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="ang1" />\r
+        <lnTo>\r
+          <pt x="r" y="ib" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMagneticTape>\r
+  <flowChartManualInput>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd10" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartManualInput>\r
+  <flowChartManualOperation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x3" fmla="*/ w 4 5" />\r
+      <gd name="x4" fmla="*/ w 9 10" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd10" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartManualOperation>\r
+  <flowChartMerge>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="t" r="x2" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="2" h="2">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMerge>\r
+  <flowChartMultidocument>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y2" fmla="*/ h 3675 21600" />\r
+      <gd name="y8" fmla="*/ h 20782 21600" />\r
+      <gd name="x3" fmla="*/ w 9298 21600" />\r
+      <gd name="x4" fmla="*/ w 12286 21600" />\r
+      <gd name="x5" fmla="*/ w 18595 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y8" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="x5" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="20782" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="23542" />\r
+          <pt x="9298" y="18022" />\r
+          <pt x="18595" y="18022" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="1532" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="16252" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="19298" y="16252" />\r
+          <pt x="18595" y="16352" />\r
+          <pt x="18595" y="16352" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="2972" y="1815" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="14392" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20800" y="14392" />\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20000" y="14467" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="18595" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18595" y="18022" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="18022" />\r
+          <pt x="9298" y="23542" />\r
+          <pt x="0" y="20782" />\r
+        </cubicBezTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="1532" y="3675" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="20000" y="16252" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="19298" y="16252" />\r
+          <pt x="18595" y="16352" />\r
+          <pt x="18595" y="16352" />\r
+        </cubicBezTo>\r
+        <moveTo>\r
+          <pt x="2972" y="1815" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="14392" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20800" y="14392" />\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20000" y="14467" />\r
+        </cubicBezTo>\r
+      </path>\r
+      <path stroke="false" fill="none" w="21600" h="21600">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="20782" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="9298" y="23542" />\r
+          <pt x="9298" y="18022" />\r
+          <pt x="18595" y="18022" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="18595" y="16352" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="18595" y="16352" />\r
+          <pt x="19298" y="16252" />\r
+          <pt x="20000" y="16252" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="20000" y="14467" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="20000" y="14467" />\r
+          <pt x="20800" y="14392" />\r
+          <pt x="21600" y="14392" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="21600" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2972" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2972" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1532" y="1815" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1532" y="3675" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3675" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartMultidocument>\r
+  <flowChartOfflineStorage>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x4" fmla="*/ w 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="t" r="x4" b="vc" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="5" h="5">\r
+\r
+        <moveTo>\r
+          <pt x="2" y="4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="3" y="4" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" extrusionOk="true" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOfflineStorage>\r
+  <flowChartOffpageConnector>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y1" fmla="*/ h 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="10" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="8" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOffpageConnector>\r
+  <flowChartOnlineStorage>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 5 6" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd6" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="6" h="6">\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="6" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="1" y="6" />\r
+        </lnTo>\r
+        <arcTo wR="1" hR="3" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOnlineStorage>\r
+  <flowChartOr>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="hc" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartOr>\r
+  <flowChartPredefinedProcess>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 7 8" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd8" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="8" h="8">\r
+\r
+        <moveTo>\r
+          <pt x="1" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="8" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="7" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="7" y="8" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="1" h="1">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPredefinedProcess>\r
+  <flowChartPreparation>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd5" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="10" h="10">\r
+        <moveTo>\r
+          <pt x="0" y="5" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8" y="10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="10" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPreparation>\r
+  <flowChartProcess>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="1" h="1">\r
+        <moveTo>\r
+          <pt x="0" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartProcess>\r
+  <flowChartPunchedCard>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="5" h="5">\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5" y="5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPunchedCard>\r
+  <flowChartPunchedTape>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="y2" fmla="*/ h 9 10" />\r
+      <gd name="ib" fmla="*/ h 4 5" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd10" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="hd5" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="20" h="20">\r
+        <moveTo>\r
+          <pt x="0" y="2" />\r
+        </moveTo>\r
+        <arcTo wR="5" hR="2" stAng="cd2" swAng="-10800000" />\r
+        <arcTo wR="5" hR="2" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="20" y="18" />\r
+        </lnTo>\r
+        <arcTo wR="5" hR="2" stAng="0" swAng="-10800000" />\r
+        <arcTo wR="5" hR="2" stAng="0" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartPunchedTape>\r
+  <flowChartSort>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="ir" fmla="*/ w 3 4" />\r
+      <gd name="ib" fmla="*/ h 3 4" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="wd4" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none" w="2" h="2">\r
+\r
+        <moveTo>\r
+          <pt x="0" y="1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="1" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="2" y="1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1" y="2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartSort>\r
+  <flowChartSummingJunction>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="il" y="it" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ir" y="ib" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ir" y="it" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="il" y="ib" />\r
+        </lnTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartSummingJunction>\r
+  <flowChartTerminator>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="il" fmla="*/ w 1018 21600" />\r
+      <gd name="ir" fmla="*/ w 20582 21600" />\r
+      <gd name="it" fmla="*/ h 3163 21600" />\r
+      <gd name="ib" fmla="*/ h 18437 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="3475" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="18125" y="0" />\r
+        </lnTo>\r
+        <arcTo wR="3475" hR="10800" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="3475" y="21600" />\r
+        </lnTo>\r
+        <arcTo wR="3475" hR="10800" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </flowChartTerminator>\r
+  <foldedCorner>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dy2" fmla="*/ ss a 100000" />\r
+      <gd name="dy1" fmla="*/ dy2 1 5" />\r
+      <gd name="x1" fmla="+- r 0 dy2" />\r
+      <gd name="x2" fmla="+- x1 dy1 0" />\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y1" fmla="+- y2 dy1 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </foldedCorner>\r
+  <frame>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+\r
+\r
+      <gd name="y4" fmla="+- b 0 x1" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="x1" r="x4" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </frame>\r
+  <funnel>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="d" fmla="*/ ss 1 20" />\r
+\r
+\r
+      <gd name="rw2" fmla="+- wd2 0 d" />\r
+\r
+      <gd name="rh2" fmla="+- hd4 0 d" />\r
+\r
+\r
+\r
+      <gd name="t1" fmla="cos wd2 480000" />\r
+\r
+      <gd name="t2" fmla="sin hd4 480000" />\r
+\r
+      <gd name="da" fmla="at2 t1 t2" />\r
+\r
+\r
+      <gd name="2da" fmla="*/ da 2 1" />\r
+      <gd name="stAng1" fmla="+- cd2 0 da" />\r
+      <gd name="swAng1" fmla="+- cd2 2da 0" />\r
+\r
+\r
+      <gd name="swAng3" fmla="+- cd2 0 2da" />\r
+\r
+\r
+      <gd name="rw3" fmla="*/ wd2 1 4" />\r
+      <gd name="rh3" fmla="*/ hd4 1 4" />\r
+\r
+\r
+      <gd name="ct1" fmla="cos hd4 stAng1" />\r
+      <gd name="st1" fmla="sin wd2 stAng1" />\r
+      <gd name="m1" fmla="mod ct1 st1 0" />\r
+      <gd name="n1" fmla="*/ wd2 hd4 m1" />\r
+      <gd name="dx1" fmla="cos n1 stAng1" />\r
+      <gd name="dy1" fmla="sin n1 stAng1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- hd4 dy1 0" />\r
+\r
+\r
+      <gd name="ct3" fmla="cos rh3 da" />\r
+      <gd name="st3" fmla="sin rw3 da" />\r
+      <gd name="m3" fmla="mod ct3 st3 0" />\r
+      <gd name="n3" fmla="*/ rw3 rh3 m3" />\r
+      <gd name="dx3" fmla="cos n3 da" />\r
+      <gd name="dy3" fmla="sin n3 da" />\r
+      <gd name="x3" fmla="+- hc dx3 0" />\r
+      <gd name="vc3" fmla="+- b 0 rh3" />\r
+      <gd name="y2" fmla="+- vc3 dy3 0" />\r
+\r
+\r
+      <gd name="x2" fmla="+- wd2 0 rw2" />\r
+\r
+      <gd name="cd" fmla="*/ cd2 2 1" />\r
+    </gdLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo hR="hd4" wR="wd2" stAng="stAng1" swAng="swAng1" />\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <arcTo hR="rh3" wR="rw3" stAng="da" swAng="swAng3" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="hd4" />\r
+        </moveTo>\r
+        <arcTo hR="rh2" wR="rw2" stAng="cd2" swAng="-21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </funnel>\r
+  <gear6>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 15000" />\r
+\r
+      <gd name="adj2" fmla="val 3526" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin 0 adj2 5358" />\r
+\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+      <gd name="lFD" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="l2" fmla="*/ lFD 1 2" />\r
+      <gd name="l3" fmla="+- th2 l2 0" />\r
+\r
+\r
+      <gd name="rh" fmla="+- hd2 0 th" />\r
+      <gd name="rw" fmla="+- wd2 0 th" />\r
+\r
+\r
+      <gd name="dr" fmla="+- rw 0 rh" />\r
+      <gd name="maxr" fmla="?: dr rh rw" />\r
+      <gd name="ha" fmla="at2 maxr l3" />\r
+\r
+\r
+      <gd name="aA1" fmla="+- 19800000 0 ha" />\r
+      <gd name="aD1" fmla="+- 19800000 ha 0" />\r
+\r
+\r
+      <gd name="ta11" fmla="cos rw aA1" />\r
+      <gd name="ta12" fmla="sin rh aA1" />\r
+      <gd name="bA1" fmla="at2 ta11 ta12" />\r
+\r
+      <gd name="cta1" fmla="cos rh bA1" />\r
+      <gd name="sta1" fmla="sin rw bA1" />\r
+      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
+      <gd name="na1" fmla="*/ rw rh ma1" />\r
+      <gd name="dxa1" fmla="cos na1 bA1" />\r
+      <gd name="dya1" fmla="sin na1 bA1" />\r
+      <gd name="xA1" fmla="+- hc dxa1 0" />\r
+      <gd name="yA1" fmla="+- vc dya1 0" />\r
+\r
+\r
+      <gd name="td11" fmla="cos rw aD1" />\r
+      <gd name="td12" fmla="sin rh aD1" />\r
+      <gd name="bD1" fmla="at2 td11 td12" />\r
+\r
+      <gd name="ctd1" fmla="cos rh bD1" />\r
+      <gd name="std1" fmla="sin rw bD1" />\r
+      <gd name="md1" fmla="mod ctd1 std1 0" />\r
+      <gd name="nd1" fmla="*/ rw rh md1" />\r
+      <gd name="dxd1" fmla="cos nd1 bD1" />\r
+      <gd name="dyd1" fmla="sin nd1 bD1" />\r
+      <gd name="xD1" fmla="+- hc dxd1 0" />\r
+      <gd name="yD1" fmla="+- vc dyd1 0" />\r
+\r
+\r
+      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
+      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
+      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
+      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
+\r
+\r
+      <gd name="dxF1" fmla="sin lFD a1" />\r
+      <gd name="dyF1" fmla="cos lFD a1" />\r
+      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
+      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
+      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
+      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
+\r
+\r
+      <gd name="yC1t" fmla="sin th a1" />\r
+      <gd name="xC1t" fmla="cos th a1" />\r
+      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
+      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
+\r
+\r
+      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
+      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
+\r
+\r
+      <gd name="aD6" fmla="+- 3cd4 ha 0" />\r
+\r
+\r
+      <gd name="td61" fmla="cos rw aD6" />\r
+      <gd name="td62" fmla="sin rh aD6" />\r
+      <gd name="bD6" fmla="at2 td61 td62" />\r
+\r
+      <gd name="ctd6" fmla="cos rh bD6" />\r
+      <gd name="std6" fmla="sin rw bD6" />\r
+      <gd name="md6" fmla="mod ctd6 std6 0" />\r
+      <gd name="nd6" fmla="*/ rw rh md6" />\r
+      <gd name="dxd6" fmla="cos nd6 bD6" />\r
+      <gd name="dyd6" fmla="sin nd6 bD6" />\r
+      <gd name="xD6" fmla="+- hc dxd6 0" />\r
+      <gd name="yD6" fmla="+- vc dyd6 0" />\r
+\r
+\r
+      <gd name="xA6" fmla="+- hc 0 dxd6" />\r
+\r
+\r
+      <gd name="xF6" fmla="+- xD6 0 lFD" />\r
+      <gd name="xE6" fmla="+- xA6 lFD 0" />\r
+\r
+\r
+      <gd name="yC6" fmla="+- yD6 0 th" />\r
+\r
+      <gd name="swAng1" fmla="+- bA1 0 bD6" />\r
+\r
+\r
+      <gd name="aA2" fmla="+- 1800000 0 ha" />\r
+      <gd name="aD2" fmla="+- 1800000 ha 0" />\r
+\r
+\r
+      <gd name="ta21" fmla="cos rw aA2" />\r
+      <gd name="ta22" fmla="sin rh aA2" />\r
+      <gd name="bA2" fmla="at2 ta21 ta22" />\r
+\r
+      <gd name="yA2" fmla="+- h 0 yD1" />\r
+\r
+\r
+      <gd name="td21" fmla="cos rw aD2" />\r
+      <gd name="td22" fmla="sin rh aD2" />\r
+      <gd name="bD2" fmla="at2 td21 td22" />\r
+\r
+      <gd name="yD2" fmla="+- h 0 yA1" />\r
+\r
+\r
+      <gd name="yC2" fmla="+- h 0 yB1" />\r
+\r
+\r
+      <gd name="yB2" fmla="+- h 0 yC1" />\r
+      <gd name="xB2" fmla="val xC1" />\r
+\r
+      <gd name="swAng2" fmla="+- bA2 0 bD1" />\r
+\r
+\r
+      <gd name="aD3" fmla="+- cd4 ha 0" />\r
+\r
+      <gd name="td31" fmla="cos rw aD3" />\r
+      <gd name="td32" fmla="sin rh aD3" />\r
+      <gd name="bD3" fmla="at2 td31 td32" />\r
+\r
+\r
+      <gd name="yD3" fmla="+- h 0 yD6" />\r
+\r
+\r
+      <gd name="yB3" fmla="+- h 0 yC6" />\r
+\r
+\r
+      <gd name="aD4" fmla="+- 9000000 ha 0" />\r
+\r
+      <gd name="td41" fmla="cos rw aD4" />\r
+      <gd name="td42" fmla="sin rh aD4" />\r
+      <gd name="bD4" fmla="at2 td41 td42" />\r
+\r
+\r
+      <gd name="xD4" fmla="+- w 0 xD1" />\r
+\r
+\r
+      <gd name="xC4" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="xB4" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="aD5" fmla="+- 12600000 ha 0" />\r
+\r
+      <gd name="td51" fmla="cos rw aD5" />\r
+      <gd name="td52" fmla="sin rh aD5" />\r
+      <gd name="bD5" fmla="at2 td51 td52" />\r
+\r
+\r
+      <gd name="xD5" fmla="+- w 0 xA1" />\r
+\r
+\r
+      <gd name="xC5" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="xB5" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
+      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
+      <gd name="yCxn2" fmla="+- b 0 yCxn1" />\r
+      <gd name="xCxn4" fmla="+/ r 0 xCxn1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="xD6" y="yD6" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="5358">\r
+        <pos x="xA6" y="yD6" />\r
+      </ahXY>\r
+\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="19800000">\r
+        <pos x="xCxn1" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="1800000">\r
+        <pos x="xCxn1" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="yB3" />\r
+      </cxn>\r
+\r
+      <cxn ang="9000000">\r
+        <pos x="xCxn4" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="12600000">\r
+        <pos x="xCxn4" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="yC6" />\r
+      </cxn>\r
+\r
+    </cxnLst>\r
+\r
+    <rect l="xD5" t="yA1" r="xA1" b="yD2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA1" y="yA1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC1" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD1" y="yD1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xC1" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA1" y="yD2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xF6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA6" y="yD3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB4" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC4" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD4" y="yA2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB5" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC5" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD5" y="yA1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xE6" y="yC6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF6" y="yC6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD6" y="yD6" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng1" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </gear6>\r
+  <gear9>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 10000" />\r
+\r
+      <gd name="adj2" fmla="val 1763" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin 0 adj2 2679" />\r
+\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+      <gd name="lFD" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="l2" fmla="*/ lFD 1 2" />\r
+      <gd name="l3" fmla="+- th2 l2 0" />\r
+\r
+\r
+      <gd name="rh" fmla="+- hd2 0 th" />\r
+      <gd name="rw" fmla="+- wd2 0 th" />\r
+\r
+\r
+      <gd name="dr" fmla="+- rw 0 rh" />\r
+      <gd name="maxr" fmla="?: dr rh rw" />\r
+      <gd name="ha" fmla="at2 maxr l3" />\r
+\r
+\r
+      <gd name="aA1" fmla="+- 18600000 0 ha" />\r
+      <gd name="aD1" fmla="+- 18600000 ha 0" />\r
+\r
+\r
+      <gd name="ta11" fmla="cos rw aA1" />\r
+      <gd name="ta12" fmla="sin rh aA1" />\r
+      <gd name="bA1" fmla="at2 ta11 ta12" />\r
+\r
+      <gd name="cta1" fmla="cos rh bA1" />\r
+      <gd name="sta1" fmla="sin rw bA1" />\r
+      <gd name="ma1" fmla="mod cta1 sta1 0" />\r
+      <gd name="na1" fmla="*/ rw rh ma1" />\r
+      <gd name="dxa1" fmla="cos na1 bA1" />\r
+      <gd name="dya1" fmla="sin na1 bA1" />\r
+      <gd name="xA1" fmla="+- hc dxa1 0" />\r
+      <gd name="yA1" fmla="+- vc dya1 0" />\r
+\r
+\r
+      <gd name="td11" fmla="cos rw aD1" />\r
+      <gd name="td12" fmla="sin rh aD1" />\r
+      <gd name="bD1" fmla="at2 td11 td12" />\r
+\r
+      <gd name="ctd1" fmla="cos rh bD1" />\r
+      <gd name="std1" fmla="sin rw bD1" />\r
+      <gd name="md1" fmla="mod ctd1 std1 0" />\r
+      <gd name="nd1" fmla="*/ rw rh md1" />\r
+      <gd name="dxd1" fmla="cos nd1 bD1" />\r
+      <gd name="dyd1" fmla="sin nd1 bD1" />\r
+      <gd name="xD1" fmla="+- hc dxd1 0" />\r
+      <gd name="yD1" fmla="+- vc dyd1 0" />\r
+\r
+\r
+      <gd name="xAD1" fmla="+- xA1 0 xD1" />\r
+      <gd name="yAD1" fmla="+- yA1 0 yD1" />\r
+      <gd name="lAD1" fmla="mod xAD1 yAD1 0" />\r
+      <gd name="a1" fmla="at2 yAD1 xAD1" />\r
+\r
+\r
+      <gd name="dxF1" fmla="sin lFD a1" />\r
+      <gd name="dyF1" fmla="cos lFD a1" />\r
+      <gd name="xF1" fmla="+- xD1 dxF1 0" />\r
+      <gd name="yF1" fmla="+- yD1 dyF1 0" />\r
+      <gd name="xE1" fmla="+- xA1 0 dxF1" />\r
+      <gd name="yE1" fmla="+- yA1 0 dyF1" />\r
+\r
+\r
+      <gd name="yC1t" fmla="sin th a1" />\r
+      <gd name="xC1t" fmla="cos th a1" />\r
+      <gd name="yC1" fmla="+- yF1 yC1t 0" />\r
+      <gd name="xC1" fmla="+- xF1 0 xC1t" />\r
+\r
+\r
+      <gd name="yB1" fmla="+- yE1 yC1t 0" />\r
+      <gd name="xB1" fmla="+- xE1 0 xC1t" />\r
+\r
+\r
+      <gd name="aA2" fmla="+- 21000000 0 ha" />\r
+      <gd name="aD2" fmla="+- 21000000 ha 0" />\r
+\r
+\r
+      <gd name="ta21" fmla="cos rw aA2" />\r
+      <gd name="ta22" fmla="sin rh aA2" />\r
+      <gd name="bA2" fmla="at2 ta21 ta22" />\r
+\r
+      <gd name="cta2" fmla="cos rh bA2" />\r
+      <gd name="sta2" fmla="sin rw bA2" />\r
+      <gd name="ma2" fmla="mod cta2 sta2 0" />\r
+      <gd name="na2" fmla="*/ rw rh ma2" />\r
+      <gd name="dxa2" fmla="cos na2 bA2" />\r
+      <gd name="dya2" fmla="sin na2 bA2" />\r
+      <gd name="xA2" fmla="+- hc dxa2 0" />\r
+      <gd name="yA2" fmla="+- vc dya2 0" />\r
+\r
+\r
+      <gd name="td21" fmla="cos rw aD2" />\r
+      <gd name="td22" fmla="sin rh aD2" />\r
+      <gd name="bD2" fmla="at2 td21 td22" />\r
+\r
+      <gd name="ctd2" fmla="cos rh bD2" />\r
+      <gd name="std2" fmla="sin rw bD2" />\r
+      <gd name="md2" fmla="mod ctd2 std2 0" />\r
+      <gd name="nd2" fmla="*/ rw rh md2" />\r
+      <gd name="dxd2" fmla="cos nd2 bD2" />\r
+      <gd name="dyd2" fmla="sin nd2 bD2" />\r
+      <gd name="xD2" fmla="+- hc dxd2 0" />\r
+      <gd name="yD2" fmla="+- vc dyd2 0" />\r
+\r
+\r
+      <gd name="xAD2" fmla="+- xA2 0 xD2" />\r
+      <gd name="yAD2" fmla="+- yA2 0 yD2" />\r
+      <gd name="lAD2" fmla="mod xAD2 yAD2 0" />\r
+      <gd name="a2" fmla="at2 yAD2 xAD2" />\r
+\r
+\r
+      <gd name="dxF2" fmla="sin lFD a2" />\r
+      <gd name="dyF2" fmla="cos lFD a2" />\r
+      <gd name="xF2" fmla="+- xD2 dxF2 0" />\r
+      <gd name="yF2" fmla="+- yD2 dyF2 0" />\r
+      <gd name="xE2" fmla="+- xA2 0 dxF2" />\r
+      <gd name="yE2" fmla="+- yA2 0 dyF2" />\r
+\r
+\r
+      <gd name="yC2t" fmla="sin th a2" />\r
+      <gd name="xC2t" fmla="cos th a2" />\r
+      <gd name="yC2" fmla="+- yF2 yC2t 0" />\r
+      <gd name="xC2" fmla="+- xF2 0 xC2t" />\r
+\r
+\r
+      <gd name="yB2" fmla="+- yE2 yC2t 0" />\r
+      <gd name="xB2" fmla="+- xE2 0 xC2t" />\r
+\r
+      <gd name="swAng1" fmla="+- bA2 0 bD1" />\r
+\r
+\r
+      <gd name="aA3" fmla="+- 1800000 0 ha" />\r
+      <gd name="aD3" fmla="+- 1800000 ha 0" />\r
+\r
+\r
+      <gd name="ta31" fmla="cos rw aA3" />\r
+      <gd name="ta32" fmla="sin rh aA3" />\r
+      <gd name="bA3" fmla="at2 ta31 ta32" />\r
+\r
+      <gd name="cta3" fmla="cos rh bA3" />\r
+      <gd name="sta3" fmla="sin rw bA3" />\r
+      <gd name="ma3" fmla="mod cta3 sta3 0" />\r
+      <gd name="na3" fmla="*/ rw rh ma3" />\r
+      <gd name="dxa3" fmla="cos na3 bA3" />\r
+      <gd name="dya3" fmla="sin na3 bA3" />\r
+      <gd name="xA3" fmla="+- hc dxa3 0" />\r
+      <gd name="yA3" fmla="+- vc dya3 0" />\r
+\r
+\r
+      <gd name="td31" fmla="cos rw aD3" />\r
+      <gd name="td32" fmla="sin rh aD3" />\r
+      <gd name="bD3" fmla="at2 td31 td32" />\r
+\r
+      <gd name="ctd3" fmla="cos rh bD3" />\r
+      <gd name="std3" fmla="sin rw bD3" />\r
+      <gd name="md3" fmla="mod ctd3 std3 0" />\r
+      <gd name="nd3" fmla="*/ rw rh md3" />\r
+      <gd name="dxd3" fmla="cos nd3 bD3" />\r
+      <gd name="dyd3" fmla="sin nd3 bD3" />\r
+      <gd name="xD3" fmla="+- hc dxd3 0" />\r
+      <gd name="yD3" fmla="+- vc dyd3 0" />\r
+\r
+\r
+      <gd name="xAD3" fmla="+- xA3 0 xD3" />\r
+      <gd name="yAD3" fmla="+- yA3 0 yD3" />\r
+      <gd name="lAD3" fmla="mod xAD3 yAD3 0" />\r
+      <gd name="a3" fmla="at2 yAD3 xAD3" />\r
+\r
+\r
+      <gd name="dxF3" fmla="sin lFD a3" />\r
+      <gd name="dyF3" fmla="cos lFD a3" />\r
+      <gd name="xF3" fmla="+- xD3 dxF3 0" />\r
+      <gd name="yF3" fmla="+- yD3 dyF3 0" />\r
+      <gd name="xE3" fmla="+- xA3 0 dxF3" />\r
+      <gd name="yE3" fmla="+- yA3 0 dyF3" />\r
+\r
+\r
+      <gd name="yC3t" fmla="sin th a3" />\r
+      <gd name="xC3t" fmla="cos th a3" />\r
+      <gd name="yC3" fmla="+- yF3 yC3t 0" />\r
+      <gd name="xC3" fmla="+- xF3 0 xC3t" />\r
+\r
+\r
+      <gd name="yB3" fmla="+- yE3 yC3t 0" />\r
+      <gd name="xB3" fmla="+- xE3 0 xC3t" />\r
+\r
+      <gd name="swAng2" fmla="+- bA3 0 bD2" />\r
+\r
+\r
+      <gd name="aA4" fmla="+- 4200000 0 ha" />\r
+      <gd name="aD4" fmla="+- 4200000 ha 0" />\r
+\r
+\r
+      <gd name="ta41" fmla="cos rw aA4" />\r
+      <gd name="ta42" fmla="sin rh aA4" />\r
+      <gd name="bA4" fmla="at2 ta41 ta42" />\r
+\r
+      <gd name="cta4" fmla="cos rh bA4" />\r
+      <gd name="sta4" fmla="sin rw bA4" />\r
+      <gd name="ma4" fmla="mod cta4 sta4 0" />\r
+      <gd name="na4" fmla="*/ rw rh ma4" />\r
+      <gd name="dxa4" fmla="cos na4 bA4" />\r
+      <gd name="dya4" fmla="sin na4 bA4" />\r
+      <gd name="xA4" fmla="+- hc dxa4 0" />\r
+      <gd name="yA4" fmla="+- vc dya4 0" />\r
+\r
+\r
+      <gd name="td41" fmla="cos rw aD4" />\r
+      <gd name="td42" fmla="sin rh aD4" />\r
+      <gd name="bD4" fmla="at2 td41 td42" />\r
+\r
+      <gd name="ctd4" fmla="cos rh bD4" />\r
+      <gd name="std4" fmla="sin rw bD4" />\r
+      <gd name="md4" fmla="mod ctd4 std4 0" />\r
+      <gd name="nd4" fmla="*/ rw rh md4" />\r
+      <gd name="dxd4" fmla="cos nd4 bD4" />\r
+      <gd name="dyd4" fmla="sin nd4 bD4" />\r
+      <gd name="xD4" fmla="+- hc dxd4 0" />\r
+      <gd name="yD4" fmla="+- vc dyd4 0" />\r
+\r
+\r
+      <gd name="xAD4" fmla="+- xA4 0 xD4" />\r
+      <gd name="yAD4" fmla="+- yA4 0 yD4" />\r
+      <gd name="lAD4" fmla="mod xAD4 yAD4 0" />\r
+      <gd name="a4" fmla="at2 yAD4 xAD4" />\r
+\r
+\r
+      <gd name="dxF4" fmla="sin lFD a4" />\r
+      <gd name="dyF4" fmla="cos lFD a4" />\r
+      <gd name="xF4" fmla="+- xD4 dxF4 0" />\r
+      <gd name="yF4" fmla="+- yD4 dyF4 0" />\r
+      <gd name="xE4" fmla="+- xA4 0 dxF4" />\r
+      <gd name="yE4" fmla="+- yA4 0 dyF4" />\r
+\r
+\r
+      <gd name="yC4t" fmla="sin th a4" />\r
+      <gd name="xC4t" fmla="cos th a4" />\r
+      <gd name="yC4" fmla="+- yF4 yC4t 0" />\r
+      <gd name="xC4" fmla="+- xF4 0 xC4t" />\r
+\r
+\r
+      <gd name="yB4" fmla="+- yE4 yC4t 0" />\r
+      <gd name="xB4" fmla="+- xE4 0 xC4t" />\r
+\r
+      <gd name="swAng3" fmla="+- bA4 0 bD3" />\r
+\r
+\r
+      <gd name="aA5" fmla="+- 6600000 0 ha" />\r
+      <gd name="aD5" fmla="+- 6600000 ha 0" />\r
+\r
+      <gd name="ta51" fmla="cos rw aA5" />\r
+      <gd name="ta52" fmla="sin rh aA5" />\r
+      <gd name="bA5" fmla="at2 ta51 ta52" />\r
+\r
+      <gd name="td51" fmla="cos rw aD5" />\r
+      <gd name="td52" fmla="sin rh aD5" />\r
+      <gd name="bD5" fmla="at2 td51 td52" />\r
+\r
+\r
+      <gd name="xD5" fmla="+- w 0 xA4" />\r
+\r
+\r
+      <gd name="xC5" fmla="+- w 0 xB4" />\r
+\r
+\r
+      <gd name="xB5" fmla="+- w 0 xC4" />\r
+\r
+      <gd name="swAng4" fmla="+- bA5 0 bD4" />\r
+\r
+\r
+      <gd name="aD6" fmla="+- 9000000 ha 0" />\r
+\r
+      <gd name="td61" fmla="cos rw aD6" />\r
+      <gd name="td62" fmla="sin rh aD6" />\r
+      <gd name="bD6" fmla="at2 td61 td62" />\r
+\r
+\r
+      <gd name="xD6" fmla="+- w 0 xA3" />\r
+\r
+\r
+      <gd name="xC6" fmla="+- w 0 xB3" />\r
+\r
+\r
+      <gd name="xB6" fmla="+- w 0 xC3" />\r
+\r
+\r
+      <gd name="aD7" fmla="+- 11400000 ha 0" />\r
+\r
+      <gd name="td71" fmla="cos rw aD7" />\r
+      <gd name="td72" fmla="sin rh aD7" />\r
+      <gd name="bD7" fmla="at2 td71 td72" />\r
+\r
+\r
+      <gd name="xD7" fmla="+- w 0 xA2" />\r
+\r
+\r
+      <gd name="xC7" fmla="+- w 0 xB2" />\r
+\r
+\r
+      <gd name="xB7" fmla="+- w 0 xC2" />\r
+\r
+\r
+      <gd name="aD8" fmla="+- 13800000 ha 0" />\r
+\r
+      <gd name="td81" fmla="cos rw aD8" />\r
+      <gd name="td82" fmla="sin rh aD8" />\r
+      <gd name="bD8" fmla="at2 td81 td82" />\r
+\r
+\r
+      <gd name="xA8" fmla="+- w 0 xD1" />\r
+\r
+      <gd name="xD8" fmla="+- w 0 xA1" />\r
+\r
+\r
+      <gd name="xC8" fmla="+- w 0 xB1" />\r
+\r
+\r
+      <gd name="xB8" fmla="+- w 0 xC1" />\r
+\r
+\r
+      <gd name="aA9" fmla="+- 3cd4 0 ha" />\r
+      <gd name="aD9" fmla="+- 3cd4 ha 0" />\r
+\r
+\r
+      <gd name="td91" fmla="cos rw aD9" />\r
+      <gd name="td92" fmla="sin rh aD9" />\r
+      <gd name="bD9" fmla="at2 td91 td92" />\r
+\r
+      <gd name="ctd9" fmla="cos rh bD9" />\r
+      <gd name="std9" fmla="sin rw bD9" />\r
+      <gd name="md9" fmla="mod ctd9 std9 0" />\r
+      <gd name="nd9" fmla="*/ rw rh md9" />\r
+      <gd name="dxd9" fmla="cos nd9 bD9" />\r
+      <gd name="dyd9" fmla="sin nd9 bD9" />\r
+      <gd name="xD9" fmla="+- hc dxd9 0" />\r
+      <gd name="yD9" fmla="+- vc dyd9 0" />\r
+\r
+\r
+      <gd name="ta91" fmla="cos rw aA9" />\r
+      <gd name="ta92" fmla="sin rh aA9" />\r
+      <gd name="bA9" fmla="at2 ta91 ta92" />\r
+\r
+      <gd name="xA9" fmla="+- hc 0 dxd9" />\r
+\r
+\r
+      <gd name="xF9" fmla="+- xD9 0 lFD" />\r
+      <gd name="xE9" fmla="+- xA9 lFD 0" />\r
+\r
+\r
+      <gd name="yC9" fmla="+- yD9 0 th" />\r
+\r
+      <gd name="swAng5" fmla="+- bA9 0 bD8" />\r
+\r
+\r
+      <gd name="xCxn1" fmla="+/ xB1 xC1 2" />\r
+      <gd name="yCxn1" fmla="+/ yB1 yC1 2" />\r
+      <gd name="xCxn2" fmla="+/ xB2 xC2 2" />\r
+      <gd name="yCxn2" fmla="+/ yB2 yC2 2" />\r
+      <gd name="xCxn3" fmla="+/ xB3 xC3 2" />\r
+      <gd name="yCxn3" fmla="+/ yB3 yC3 2" />\r
+      <gd name="xCxn4" fmla="+/ xB4 xC4 2" />\r
+      <gd name="yCxn4" fmla="+/ yB4 yC4 2" />\r
+      <gd name="xCxn5" fmla="+/ r 0 xCxn4" />\r
+      <gd name="xCxn6" fmla="+/ r 0 xCxn3" />\r
+      <gd name="xCxn7" fmla="+/ r 0 xCxn2" />\r
+      <gd name="xCxn8" fmla="+/ r 0 xCxn1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="xD9" y="yD9" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="2679">\r
+        <pos x="xA9" y="yD9" />\r
+      </ahXY>\r
+\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="18600000">\r
+        <pos x="xCxn1" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="21000000">\r
+        <pos x="xCxn2" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="1800000">\r
+        <pos x="xCxn3" y="yCxn3" />\r
+      </cxn>\r
+\r
+      <cxn ang="4200000">\r
+        <pos x="xCxn4" y="yCxn4" />\r
+      </cxn>\r
+\r
+      <cxn ang="6600000">\r
+        <pos x="xCxn5" y="yCxn4" />\r
+      </cxn>\r
+\r
+      <cxn ang="9000000">\r
+        <pos x="xCxn6" y="yCxn3" />\r
+      </cxn>\r
+\r
+      <cxn ang="11400000">\r
+        <pos x="xCxn7" y="yCxn2" />\r
+      </cxn>\r
+\r
+      <cxn ang="13800000">\r
+        <pos x="xCxn8" y="yCxn1" />\r
+      </cxn>\r
+\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="yC9" />\r
+      </cxn>\r
+\r
+    </cxnLst>\r
+\r
+    <rect l="xA8" t="yD1" r="xD1" b="yD3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA1" y="yA1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB1" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC1" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD1" y="yD1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD1" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB2" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC2" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD2" y="yD2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD2" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB3" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC3" y="yC3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD3" y="yD3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD3" swAng="swAng3" />\r
+\r
+        <lnTo>\r
+          <pt x="xB4" y="yB4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC4" y="yC4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD4" y="yD4" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD4" swAng="swAng4" />\r
+\r
+        <lnTo>\r
+          <pt x="xB5" y="yC4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC5" y="yB4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD5" y="yA4" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD5" swAng="swAng3" />\r
+\r
+        <lnTo>\r
+          <pt x="xB6" y="yC3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC6" y="yB3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD6" y="yA3" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD6" swAng="swAng2" />\r
+\r
+        <lnTo>\r
+          <pt x="xB7" y="yC2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC7" y="yB2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD7" y="yA2" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD7" swAng="swAng1" />\r
+\r
+        <lnTo>\r
+          <pt x="xB8" y="yC1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC8" y="yB1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD8" y="yA1" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD8" swAng="swAng5" />\r
+\r
+        <lnTo>\r
+          <pt x="xE9" y="yC9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF9" y="yC9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD9" y="yD9" />\r
+        </lnTo>\r
+        <arcTo hR="rh" wR="rw" stAng="bD9" swAng="swAng5" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </gear9>\r
+  <halfFrame>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 33333" />\r
+\r
+      <gd name="adj2" fmla="val 33333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+      <gd name="g1" fmla="*/ h x1 w" />\r
+      <gd name="g2" fmla="+- h 0 g1" />\r
+      <gd name="maxAdj1" fmla="*/ 100000 g2 ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="dx2" fmla="*/ y1 w h" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="dy2" fmla="*/ x1 h w" />\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="cx1" fmla="*/ x1 1 2" />\r
+      <gd name="cy1" fmla="+/ y2 b 2" />\r
+      <gd name="cx2" fmla="+/ x2 r 2" />\r
+      <gd name="cy2" fmla="*/ y1 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="cx2" y="cy2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="cx1" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </halfFrame>\r
+  <heart>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dx1" fmla="*/ w 49 48" />\r
+      <gd name="dx2" fmla="*/ w 10 48" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- t 0 hd3" />\r
+\r
+\r
+      <gd name="il" fmla="*/ w 1 6" />\r
+      <gd name="ir" fmla="*/ w 5 6" />\r
+      <gd name="ib" fmla="*/ h 2 3" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="hd4" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="hd4" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y1" />\r
+          <pt x="x4" y="hd4" />\r
+          <pt x="hc" y="b" />\r
+        </cubicBezTo>\r
+        <cubicBezTo>\r
+          <pt x="x1" y="hd4" />\r
+          <pt x="x2" y="y1" />\r
+          <pt x="hc" y="hd4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </heart>\r
+  <heptagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="hf" fmla="val 102572" />\r
+      <gd name="vf" fmla="val 105210" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
+      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
+      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
+      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
+      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc dy2 0" />\r
+      <gd name="y3" fmla="+- svc dy3 0" />\r
+      <gd name="ib" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y1" r="x5" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </heptagon>\r
+  <hexagon>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+      <gd name="vf" fmla="val 115470" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="dy1" fmla="sin shd2 3600000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="q1" fmla="*/ maxAdj -1 2" />\r
+      <gd name="q2" fmla="+- a q1 0" />\r
+      <gd name="q3" fmla="?: q2 4 2" />\r
+      <gd name="q4" fmla="?: q2 3 2" />\r
+      <gd name="q5" fmla="?: q2 q1 0" />\r
+      <gd name="q6" fmla="+/ a q5 q1" />\r
+      <gd name="q7" fmla="*/ q6 q4 -1" />\r
+      <gd name="q8" fmla="+- q3 q7 0" />\r
+      <gd name="il" fmla="*/ w q8 24" />\r
+      <gd name="it" fmla="*/ h q8 24" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </hexagon>\r
+  <homePlate>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="ir" fmla="+/ x1 r 2" />\r
+      <gd name="x2" fmla="*/ x1 1 2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </homePlate>\r
+  <horizontalScroll>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="ch" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="ch2" fmla="*/ ch 1 2" />\r
+\r
+      <gd name="ch4" fmla="*/ ch 1 4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- ch ch2 0" />\r
+\r
+      <gd name="y4" fmla="+- ch ch 0" />\r
+\r
+      <gd name="y6" fmla="+- b 0 ch" />\r
+\r
+      <gd name="y7" fmla="+- b 0 ch2" />\r
+\r
+      <gd name="y5" fmla="+- y6 0 ch2" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- r 0 ch" />\r
+\r
+      <gd name="x4" fmla="+- r 0 ch2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="25000">\r
+        <pos x="ch" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="ch" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y6" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="ch" t="ch" r="x4" b="y6" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch2" y="ch" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="l" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="-10800000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="ch" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-16200000" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="-10800000" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch" y="y7" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ch" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <moveTo>\r
+          <pt x="x4" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="0" swAng="cd2" />\r
+        <moveTo>\r
+          <pt x="ch2" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch2" y="y3" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd2" swAng="cd2" />\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd2" />\r
+        <moveTo>\r
+          <pt x="ch" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch" y="y6" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </horizontalScroll>\r
+  <irregularSeal1>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x5" fmla="*/ w 4627 21600" />\r
+      <gd name="x12" fmla="*/ w 8485 21600" />\r
+      <gd name="x21" fmla="*/ w 16702 21600" />\r
+      <gd name="x24" fmla="*/ w 14522 21600" />\r
+      <gd name="y3" fmla="*/ h 6320 21600" />\r
+      <gd name="y6" fmla="*/ h 8615 21600" />\r
+      <gd name="y9" fmla="*/ h 13937 21600" />\r
+      <gd name="y18" fmla="*/ h 13290 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x24" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x12" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y18" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x5" t="y3" r="x21" b="y9" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="10800" y="5800" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="14522" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14155" y="5325" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18380" y="4457" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16702" y="7315" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21097" y="8137" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="17607" y="10475" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="13290" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16837" y="12942" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18145" y="18095" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14020" y="14457" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="13247" y="19737" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10532" y="14935" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8485" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7715" y="15627" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4762" y="17617" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5667" y="13937" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="135" y="14587" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3722" y="11775" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="8615" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4627" y="7617" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="370" y="2295" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7312" y="6320" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8352" y="2295" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </irregularSeal1>\r
+  <irregularSeal2>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x2" fmla="*/ w 9722 21600" />\r
+      <gd name="x5" fmla="*/ w 5372 21600" />\r
+      <gd name="x16" fmla="*/ w 11612 21600" />\r
+      <gd name="x19" fmla="*/ w 14640 21600" />\r
+      <gd name="y2" fmla="*/ h 1887 21600" />\r
+      <gd name="y3" fmla="*/ h 6382 21600" />\r
+      <gd name="y8" fmla="*/ h 12877 21600" />\r
+      <gd name="y14" fmla="*/ h 19712 21600" />\r
+      <gd name="y16" fmla="*/ h 18842 21600" />\r
+      <gd name="y17" fmla="*/ h 15935 21600" />\r
+      <gd name="y24" fmla="*/ h 6645 21600" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y8" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x16" y="y16" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y24" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x5" t="y3" r="x19" b="y17" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="11462" y="4342" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="14790" y="0" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14525" y="5777" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18007" y="3172" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16380" y="6532" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="6645" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16985" y="9402" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18270" y="11290" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16380" y="12310" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="18877" y="15632" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14640" y="14350" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14942" y="17370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="12180" y="15935" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="11612" y="18842" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="9872" y="17370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8700" y="19712" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7527" y="18125" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4917" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4805" y="18240" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1285" y="17825" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3330" y="15370" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="12877" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="3935" y="11592" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="1172" y="8270" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5372" y="7817" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="4502" y="3625" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="8550" y="6382" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="9722" y="1887" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </irregularSeal2>\r
+  <leftArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- l dx2 0" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx1" fmla="*/ y1 dx2 hd2" />\r
+      <gd name="x1" fmla="+- x2  0 dx1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="r" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </leftArrow>\r
+  <leftArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss w" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ w a4 100000" />\r
+\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="x3" fmla="+/ x2 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x1" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftArrowCallout>\r
+  <leftBrace>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 8333" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 100000" />\r
+      <gd name="q1" fmla="+- 100000 0 a2" />\r
+      <gd name="q2" fmla="min q1 a2" />\r
+      <gd name="q3" fmla="*/ q2 1 2" />\r
+      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="y3" fmla="*/ h a2 100000" />\r
+      <gd name="y4" fmla="+- y3 y1 0" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="il" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="hc" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
+        <pos x="l" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+  </leftBrace>\r
+  <leftBracket>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dx1" fmla="cos w 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="il" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="r" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="cd2" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftBracket>\r
+  <leftCircularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val -1142319" />\r
+\r
+      <gd name="adj3" fmla="val 1142319" />\r
+\r
+      <gd name="adj4" fmla="val 10800000" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="u22" fmla="abs u21" />\r
+      <gd name="minAng" fmla="*/ u22 -1 1" />\r
+      <gd name="u23" fmla="abs adj2" />\r
+      <gd name="a2" fmla="*/ u23 -1 1" />\r
+      <gd name="aAng" fmla="pin minAng a2 0" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 stAng" />\r
+      <gd name="htE" fmla="cos rh1 stAng" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="wtD" fmla="sin rw2 stAng" />\r
+      <gd name="htD" fmla="cos rh2 stAng" />\r
+      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
+      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
+      <gd name="xD" fmla="+- hc dxD 0" />\r
+\r
+      <gd name="yD" fmla="+- vc dyD 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng0" fmla="?: ist0 ist0 ist1" />\r
+      <gd name="isw1" fmla="+- stAng 0 istAng0" />\r
+      <gd name="isw2" fmla="+- isw1 21600000 0" />\r
+      <gd name="iswAng0" fmla="?: isw1 isw1 isw2" />\r
+\r
+      <gd name="istAng" fmla="+- istAng0 iswAng0 0" />\r
+      <gd name="iswAng" fmla="+- 0 0 iswAng0" />\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="sw0" fmla="+- en2 0 stAng" />\r
+      <gd name="sw1" fmla="+- sw0 0 21600000" />\r
+      <gd name="swAng" fmla="?: sw0 sw1 sw0" />\r
+\r
+\r
+      <gd name="stAng0" fmla="+- stAng swAng 0" />\r
+\r
+      <gd name="swAng0" fmla="+- 0 0 swAng" />\r
+\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="aI" fmla="+- stAng cd4 0" />\r
+      <gd name="aA" fmla="+- ptAng 0 cd4" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="minAng" maxAng="0">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aI">\r
+        <pos x="xI" y="yI" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xE" y="yE" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yD" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="yF" />\r
+        </lnTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="stAng0" swAng="swAng0" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftCircularArrow>\r
+  <leftRightArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x2" fmla="*/ ss a2 100000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="dy" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy" />\r
+      <gd name="y2" fmla="+- vc dy 0" />\r
+      <gd name="dx1" fmla="*/ y1 x2 hd2" />\r
+      <gd name="x1" fmla="+- x2 0 dx1" />\r
+      <gd name="x4" fmla="+- x3 dx1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="x3" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x4" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </leftRightArrow>\r
+  <leftRightArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss wd2" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dx2" fmla="*/ w a4 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x1" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightArrowCallout>\r
+  <leftRightCircularArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 1142319" />\r
+\r
+      <gd name="adj3" fmla="val 20457681" />\r
+\r
+      <gd name="adj4" fmla="val 11942319" />\r
+\r
+      <gd name="adj5" fmla="val 12500" />\r
+\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a5" fmla="pin 0 adj5 25000" />\r
+\r
+      <gd name="maxAdj1" fmla="*/ a5 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="enAng" fmla="pin 1 adj3 21599999" />\r
+      <gd name="stAng" fmla="pin 0 adj4 21599999" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="thh" fmla="*/ ss a5 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+\r
+\r
+      <gd name="rw1" fmla="+- wd2 th2 thh" />\r
+\r
+      <gd name="rh1" fmla="+- hd2 th2 thh" />\r
+\r
+      <gd name="rw2" fmla="+- rw1 0 th" />\r
+\r
+      <gd name="rh2" fmla="+- rh1 0 th" />\r
+\r
+      <gd name="rw3" fmla="+- rw2 th2 0" />\r
+\r
+      <gd name="rh3" fmla="+- rh2 th2 0" />\r
+\r
+\r
+      <gd name="wtH" fmla="sin rw3 enAng" />\r
+      <gd name="htH" fmla="cos rh3 enAng" />\r
+      <gd name="dxH" fmla="cat2 rw3 htH wtH" />\r
+      <gd name="dyH" fmla="sat2 rh3 htH wtH" />\r
+      <gd name="xH" fmla="+- hc dxH 0" />\r
+\r
+      <gd name="yH" fmla="+- vc dyH 0" />\r
+\r
+\r
+      <gd name="rI" fmla="min rw2 rh2" />\r
+\r
+      <gd name="u1" fmla="*/ dxH dxH 1" />\r
+      <gd name="u2" fmla="*/ dyH dyH 1" />\r
+      <gd name="u3" fmla="*/ rI rI 1" />\r
+      <gd name="u4" fmla="+- u1 0 u3" />\r
+      <gd name="u5" fmla="+- u2 0 u3" />\r
+      <gd name="u6" fmla="*/ u4 u5 u1" />\r
+      <gd name="u7" fmla="*/ u6 1 u2" />\r
+      <gd name="u8" fmla="+- 1 0 u7" />\r
+      <gd name="u9" fmla="sqrt u8" />\r
+      <gd name="u10" fmla="*/ u4 1 dxH" />\r
+      <gd name="u11" fmla="*/ u10 1 dyH" />\r
+      <gd name="u12" fmla="+/ 1 u9 u11" />\r
+      <gd name="u13" fmla="at2 1 u12" />\r
+      <gd name="u14" fmla="+- u13 21600000 0" />\r
+      <gd name="u15" fmla="?: u13 u13 u14" />\r
+      <gd name="u16" fmla="+- u15 0 enAng" />\r
+\r
+      <gd name="u17" fmla="+- u16 21600000 0" />\r
+      <gd name="u18" fmla="?: u16 u16 u17" />\r
+      <gd name="u19" fmla="+- u18 0 cd2" />\r
+      <gd name="u20" fmla="+- u18 0 21600000" />\r
+      <gd name="u21" fmla="?: u19 u20 u18" />\r
+      <gd name="maxAng" fmla="abs u21" />\r
+      <gd name="aAng" fmla="pin 0 adj2 maxAng" />\r
+\r
+      <gd name="ptAng" fmla="+- enAng aAng 0" />\r
+\r
+\r
+      <gd name="wtA" fmla="sin rw3 ptAng" />\r
+      <gd name="htA" fmla="cos rh3 ptAng" />\r
+      <gd name="dxA" fmla="cat2 rw3 htA wtA" />\r
+      <gd name="dyA" fmla="sat2 rh3 htA wtA" />\r
+      <gd name="xA" fmla="+- hc dxA 0" />\r
+\r
+      <gd name="yA" fmla="+- vc dyA 0" />\r
+\r
+\r
+      <gd name="dxG" fmla="cos thh ptAng" />\r
+      <gd name="dyG" fmla="sin thh ptAng" />\r
+      <gd name="xG" fmla="+- xH dxG 0" />\r
+\r
+      <gd name="yG" fmla="+- yH dyG 0" />\r
+\r
+\r
+      <gd name="dxB" fmla="cos thh ptAng" />\r
+      <gd name="dyB" fmla="sin thh ptAng" />\r
+      <gd name="xB" fmla="+- xH 0 dxB 0" />\r
+\r
+      <gd name="yB" fmla="+- yH 0 dyB 0" />\r
+\r
+\r
+      <gd name="sx1" fmla="+- xB 0 hc" />\r
+\r
+      <gd name="sy1" fmla="+- yB 0 vc" />\r
+\r
+      <gd name="sx2" fmla="+- xG 0 hc" />\r
+\r
+      <gd name="sy2" fmla="+- yG 0 vc" />\r
+\r
+\r
+      <gd name="rO" fmla="min rw1 rh1" />\r
+\r
+      <gd name="x1O" fmla="*/ sx1 rO rw1" />\r
+\r
+      <gd name="y1O" fmla="*/ sy1 rO rh1" />\r
+\r
+      <gd name="x2O" fmla="*/ sx2 rO rw1" />\r
+\r
+      <gd name="y2O" fmla="*/ sy2 rO rh1" />\r
+\r
+\r
+      <gd name="dxO" fmla="+- x2O 0 x1O" />\r
+      <gd name="dyO" fmla="+- y2O 0 y1O" />\r
+      <gd name="dO" fmla="mod dxO dyO 0" />\r
+\r
+      <gd name="q1" fmla="*/ x1O y2O 1" />\r
+      <gd name="q2" fmla="*/ x2O y1O 1" />\r
+      <gd name="DO" fmla="+- q1 0 q2" />\r
+\r
+\r
+      <gd name="q3" fmla="*/ rO rO 1" />\r
+\r
+      <gd name="q4" fmla="*/ dO dO 1" />\r
+\r
+      <gd name="q5" fmla="*/ q3 q4 1" />\r
+\r
+      <gd name="q6" fmla="*/ DO DO 1" />\r
+\r
+      <gd name="q7" fmla="+- q5 0 q6" />\r
+\r
+      <gd name="q8" fmla="max q7 0" />\r
+\r
+      <gd name="sdelO" fmla="sqrt q8" />\r
+\r
+      <gd name="ndyO" fmla="*/ dyO -1 1" />\r
+      <gd name="sdyO" fmla="?: ndyO -1 1" />\r
+\r
+      <gd name="q9" fmla="*/ sdyO dxO 1" />\r
+\r
+      <gd name="q10" fmla="*/ q9 sdelO 1" />\r
+\r
+      <gd name="q11" fmla="*/ DO dyO 1" />\r
+\r
+      <gd name="dxF1" fmla="+/ q11 q10 q4" />\r
+\r
+      <gd name="q12" fmla="+- q11 0 q10" />\r
+      <gd name="dxF2" fmla="*/ q12 1 q4" />\r
+\r
+\r
+      <gd name="adyO" fmla="abs dyO" />\r
+      <gd name="q13" fmla="*/ adyO sdelO 1" />\r
+\r
+      <gd name="q14" fmla="*/ DO dxO -1" />\r
+\r
+      <gd name="dyF1" fmla="+/ q14 q13 q4" />\r
+\r
+      <gd name="q15" fmla="+- q14 0 q13" />\r
+      <gd name="dyF2" fmla="*/ q15 1 q4" />\r
+\r
+\r
+\r
+      <gd name="q16" fmla="+- x2O 0 dxF1" />\r
+      <gd name="q17" fmla="+- x2O 0 dxF2" />\r
+      <gd name="q18" fmla="+- y2O 0 dyF1" />\r
+      <gd name="q19" fmla="+- y2O 0 dyF2" />\r
+      <gd name="q20" fmla="mod q16 q18 0" />\r
+\r
+      <gd name="q21" fmla="mod q17 q19 0" />\r
+\r
+      <gd name="q22" fmla="+- q21 0 q20" />\r
+      <gd name="dxF" fmla="?: q22 dxF1 dxF2" />\r
+\r
+      <gd name="dyF" fmla="?: q22 dyF1 dyF2" />\r
+\r
+      <gd name="sdxF" fmla="*/ dxF rw1 rO" />\r
+\r
+      <gd name="sdyF" fmla="*/ dyF rh1 rO" />\r
+\r
+      <gd name="xF" fmla="+- hc sdxF 0" />\r
+\r
+      <gd name="yF" fmla="+- vc sdyF 0" />\r
+\r
+\r
+\r
+\r
+      <gd name="x1I" fmla="*/ sx1 rI rw2" />\r
+\r
+      <gd name="y1I" fmla="*/ sy1 rI rh2" />\r
+\r
+      <gd name="x2I" fmla="*/ sx2 rI rw2" />\r
+\r
+      <gd name="y2I" fmla="*/ sy2 rI rh2" />\r
+\r
+\r
+      <gd name="dxI" fmla="+- x2I 0 x1I" />\r
+      <gd name="dyI" fmla="+- y2I 0 y1I" />\r
+      <gd name="dI" fmla="mod dxI dyI 0" />\r
+      <gd name="v1" fmla="*/ x1I y2I 1" />\r
+      <gd name="v2" fmla="*/ x2I y1I 1" />\r
+      <gd name="DI" fmla="+- v1 0 v2" />\r
+\r
+      <gd name="v3" fmla="*/ rI rI 1" />\r
+      <gd name="v4" fmla="*/ dI dI 1" />\r
+      <gd name="v5" fmla="*/ v3 v4 1" />\r
+      <gd name="v6" fmla="*/ DI DI 1" />\r
+      <gd name="v7" fmla="+- v5 0 v6" />\r
+      <gd name="v8" fmla="max v7 0" />\r
+      <gd name="sdelI" fmla="sqrt v8" />\r
+      <gd name="v9" fmla="*/ sdyO dxI 1" />\r
+      <gd name="v10" fmla="*/ v9 sdelI 1" />\r
+      <gd name="v11" fmla="*/ DI dyI 1" />\r
+      <gd name="dxC1" fmla="+/ v11 v10 v4" />\r
+      <gd name="v12" fmla="+- v11 0 v10" />\r
+      <gd name="dxC2" fmla="*/ v12 1 v4" />\r
+\r
+      <gd name="adyI" fmla="abs dyI" />\r
+      <gd name="v13" fmla="*/ adyI sdelI 1" />\r
+      <gd name="v14" fmla="*/ DI dxI -1" />\r
+      <gd name="dyC1" fmla="+/ v14 v13 v4" />\r
+      <gd name="v15" fmla="+- v14 0 v13" />\r
+      <gd name="dyC2" fmla="*/ v15 1 v4" />\r
+\r
+      <gd name="v16" fmla="+- x1I 0 dxC1" />\r
+      <gd name="v17" fmla="+- x1I 0 dxC2" />\r
+      <gd name="v18" fmla="+- y1I 0 dyC1" />\r
+      <gd name="v19" fmla="+- y1I 0 dyC2" />\r
+      <gd name="v20" fmla="mod v16 v18 0" />\r
+      <gd name="v21" fmla="mod v17 v19 0" />\r
+      <gd name="v22" fmla="+- v21 0 v20" />\r
+      <gd name="dxC" fmla="?: v22 dxC1 dxC2" />\r
+      <gd name="dyC" fmla="?: v22 dyC1 dyC2" />\r
+      <gd name="sdxC" fmla="*/ dxC rw2 rI" />\r
+      <gd name="sdyC" fmla="*/ dyC rh2 rI" />\r
+      <gd name="xC" fmla="+- hc sdxC 0" />\r
+\r
+      <gd name="yC" fmla="+- vc sdyC 0" />\r
+\r
+\r
+      <gd name="wtI" fmla="sin rw3 stAng" />\r
+      <gd name="htI" fmla="cos rh3 stAng" />\r
+      <gd name="dxI" fmla="cat2 rw3 htI wtI" />\r
+      <gd name="dyI" fmla="sat2 rh3 htI wtI" />\r
+      <gd name="xI" fmla="+- hc dxI 0" />\r
+\r
+      <gd name="yI" fmla="+- vc dyI 0" />\r
+\r
+\r
+      <gd name="lptAng" fmla="+- stAng 0 aAng" />\r
+\r
+\r
+      <gd name="wtL" fmla="sin rw3 lptAng" />\r
+      <gd name="htL" fmla="cos rh3 lptAng" />\r
+      <gd name="dxL" fmla="cat2 rw3 htL wtL" />\r
+      <gd name="dyL" fmla="sat2 rh3 htL wtL" />\r
+      <gd name="xL" fmla="+- hc dxL 0" />\r
+\r
+      <gd name="yL" fmla="+- vc dyL 0" />\r
+\r
+\r
+      <gd name="dxK" fmla="cos thh lptAng" />\r
+      <gd name="dyK" fmla="sin thh lptAng" />\r
+      <gd name="xK" fmla="+- xI dxK 0" />\r
+\r
+      <gd name="yK" fmla="+- yI dyK 0" />\r
+\r
+\r
+      <gd name="dxJ" fmla="cos thh lptAng" />\r
+      <gd name="dyJ" fmla="sin thh lptAng" />\r
+      <gd name="xJ" fmla="+- xI 0 dxJ 0" />\r
+\r
+      <gd name="yJ" fmla="+- yI 0 dyJ 0" />\r
+\r
+\r
+      <gd name="p1" fmla="+- xF 0 xC" />\r
+      <gd name="p2" fmla="+- yF 0 yC" />\r
+      <gd name="p3" fmla="mod p1 p2 0" />\r
+      <gd name="p4" fmla="*/ p3 1 2" />\r
+      <gd name="p5" fmla="+- p4 0 thh" />\r
+      <gd name="xGp" fmla="?: p5 xF xG" />\r
+      <gd name="yGp" fmla="?: p5 yF yG" />\r
+      <gd name="xBp" fmla="?: p5 xC xB" />\r
+      <gd name="yBp" fmla="?: p5 yC yB" />\r
+\r
+      <gd name="en0" fmla="at2 sdxF sdyF" />\r
+      <gd name="en1" fmla="+- en0 21600000 0" />\r
+      <gd name="en2" fmla="?: en0 en0 en1" />\r
+      <gd name="od0" fmla="+- en2 0 enAng" />\r
+      <gd name="od1" fmla="+- od0 21600000 0" />\r
+      <gd name="od2" fmla="?: od0 od0 od1" />\r
+\r
+      <gd name="st0" fmla="+- stAng 0 od2" />\r
+      <gd name="st1" fmla="+- st0 21600000 0" />\r
+      <gd name="st2" fmla="?: st0 st0 st1" />\r
+\r
+      <gd name="sw0" fmla="+- en2 0 st2" />\r
+      <gd name="sw1" fmla="+- sw0 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw0 sw0 sw1" />\r
+\r
+\r
+      <gd name="ist0" fmla="at2 sdxC sdyC" />\r
+      <gd name="ist1" fmla="+- ist0 21600000 0" />\r
+      <gd name="istAng" fmla="?: ist0 ist0 ist1" />\r
+\r
+      <gd name="id0" fmla="+- istAng 0 enAng" />\r
+      <gd name="id1" fmla="+- id0 0 21600000" />\r
+      <gd name="id2" fmla="?: id0 id1 id0" />\r
+\r
+      <gd name="ien0" fmla="+- stAng 0 id2" />\r
+      <gd name="ien1" fmla="+- ien0 0 21600000" />\r
+      <gd name="ien2" fmla="?: ien1 ien1 ien0" />\r
+\r
+      <gd name="isw1" fmla="+- ien2 0 istAng" />\r
+      <gd name="isw2" fmla="+- isw1 0 21600000" />\r
+      <gd name="iswAng" fmla="?: isw1 isw2 isw1" />\r
+\r
+\r
+      <gd name="wtE" fmla="sin rw1 st2" />\r
+      <gd name="htE" fmla="cos rh1 st2" />\r
+      <gd name="dxE" fmla="cat2 rw1 htE wtE" />\r
+      <gd name="dyE" fmla="sat2 rh1 htE wtE" />\r
+      <gd name="xE" fmla="+- hc dxE 0" />\r
+\r
+      <gd name="yE" fmla="+- vc dyE 0" />\r
+\r
+\r
+      <gd name="wtD" fmla="sin rw2 ien2" />\r
+      <gd name="htD" fmla="cos rh2 ien2" />\r
+      <gd name="dxD" fmla="cat2 rw2 htD wtD" />\r
+      <gd name="dyD" fmla="sat2 rh2 htD wtD" />\r
+      <gd name="xD" fmla="+- hc dxD 0" />\r
+\r
+      <gd name="yD" fmla="+- vc dyD 0" />\r
+\r
+\r
+      <gd name="xKp" fmla="?: p5 xE xK" />\r
+      <gd name="yKp" fmla="?: p5 yE yK" />\r
+      <gd name="xJp" fmla="?: p5 xD xJ" />\r
+      <gd name="yJp" fmla="?: p5 yD yJ" />\r
+\r
+      <gd name="aL" fmla="+- lptAng 0 cd4" />\r
+      <gd name="aA" fmla="+- ptAng cd4 0" />\r
+      <gd name="aB" fmla="+- ptAng cd2 0" />\r
+      <gd name="aJ" fmla="+- lptAng cd2 0" />\r
+\r
+      <gd name="idx" fmla="cos rw1 2700000" />\r
+      <gd name="idy" fmla="sin rh1 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="maxAng">\r
+        <pos x="xA" y="yA" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj4" minAng="0" maxAng="21599999">\r
+        <pos x="xE" y="yE" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj1" minR="0" maxR="maxAdj1" gdRefAng="adj3" minAng="0" maxAng="21599999">\r
+        <pos x="xF" y="yF" />\r
+      </ahPolar>\r
+      <ahPolar gdRefR="adj5" minR="0" maxR="25000">\r
+        <pos x="xB" y="yB" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="aL">\r
+        <pos x="xL" y="yL" />\r
+      </cxn>\r
+      <cxn ang="lptAng">\r
+        <pos x="xKp" y="yKp" />\r
+      </cxn>\r
+      <cxn ang="ptAng">\r
+        <pos x="xGp" y="yGp" />\r
+      </cxn>\r
+      <cxn ang="aA">\r
+        <pos x="xA" y="yA" />\r
+      </cxn>\r
+      <cxn ang="aB">\r
+        <pos x="xBp" y="yBp" />\r
+      </cxn>\r
+      <cxn ang="aJ">\r
+        <pos x="xJp" y="yJp" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xL" y="yL" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xKp" y="yKp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yE" />\r
+        </lnTo>\r
+        <arcTo wR="rw1" hR="rh1" stAng="st2" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="xGp" y="yGp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xBp" y="yBp" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xC" y="yC" />\r
+        </lnTo>\r
+        <arcTo wR="rw2" hR="rh2" stAng="istAng" swAng="iswAng" />\r
+        <lnTo>\r
+          <pt x="xJp" y="yJp" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightCircularArrow>\r
+  <leftRightRibbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+      <gd name="adj3" fmla="val 16667" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a3" fmla="pin 0 adj3 33333" />\r
+      <gd name="maxAdj1" fmla="+- 100000 0 a3" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+\r
+      <gd name="w1" fmla="+- wd2 0 wd32" />\r
+      <gd name="maxAdj2" fmla="*/ 100000 w1 ss" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+\r
+      <gd name="x1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a3 -200000" />\r
+\r
+      <gd name="ly1" fmla="+- vc dy2 dy1" />\r
+\r
+      <gd name="ry4" fmla="+- vc dy1 dy2" />\r
+\r
+      <gd name="ly2" fmla="+- ly1 dy1 0" />\r
+\r
+      <gd name="ry3" fmla="+- b 0 ly2" />\r
+\r
+      <gd name="ly4" fmla="*/ ly2 2 1" />\r
+\r
+      <gd name="ry1" fmla="+- b 0 ly4" />\r
+\r
+      <gd name="ly3" fmla="+- ly4 0 ly1" />\r
+\r
+      <gd name="ry2" fmla="+- b 0 ly3" />\r
+\r
+\r
+      <gd name="hR" fmla="*/ a3 ss 400000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 wd32" />\r
+\r
+      <gd name="x3" fmla="+- hc wd32 0" />\r
+\r
+      <gd name="y1" fmla="+- ly1 hR 0" />\r
+\r
+      <gd name="y2" fmla="+- ry2 0 hR" />\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x4" y="ry2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="33333">\r
+        <pos x="x3" y="ry2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="ry3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="ly4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="ly2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="ry1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="ly1" r="x4" b="ry4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="ly2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ly1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="ry2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ry3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ry4" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="ry2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="ly2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ly1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="ry2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ry3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ry4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="ry4" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="ly4" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ry2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="ly3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightRibbon>\r
+  <leftRightUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y4" fmla="+- b 0 dx2" />\r
+      <gd name="y3" fmla="+- y4 0 dx3" />\r
+      <gd name="y5" fmla="+- y4 dx3 0" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y4" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="ir" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftRightUpArrow>\r
+  <leftUpArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a2 50000" />\r
+\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="y2" fmla="+- b 0 dx2" />\r
+      <gd name="dx4" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x4" fmla="+- r 0 dx4" />\r
+      <gd name="y4" fmla="+- b 0 dx4" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- x4 0 dx3" />\r
+      <gd name="x5" fmla="+- x4 dx3 0" />\r
+      <gd name="y3" fmla="+- y4 0 dx3" />\r
+      <gd name="y5" fmla="+- y4 dx3 0" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx4" />\r
+      <gd name="cx1" fmla="+/ x1 x5 2" />\r
+      <gd name="cy1" fmla="+/ x1 y5 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x3" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="cx1" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x5" y="cy1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="x1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="x4" b="y5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </leftUpArrow>\r
+  <lightningBolt>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="x1" fmla="*/ w 5022 21600" />\r
+      <gd name="x3" fmla="*/ w 8472 21600" />\r
+      <gd name="x4" fmla="*/ w 8757 21600" />\r
+\r
+      <gd name="x5" fmla="*/ w 10012 21600" />\r
+      <gd name="x8" fmla="*/ w 12860 21600" />\r
+      <gd name="x9" fmla="*/ w 13917 21600" />\r
+\r
+      <gd name="x11" fmla="*/ w 16577 21600" />\r
+      <gd name="y1" fmla="*/ h 3890 21600" />\r
+      <gd name="y2" fmla="*/ h 6080 21600" />\r
+      <gd name="y4" fmla="*/ h 7437 21600" />\r
+\r
+      <gd name="y6" fmla="*/ h 9705 21600" />\r
+      <gd name="y7" fmla="*/ h 12007 21600" />\r
+      <gd name="y10" fmla="*/ h 14277 21600" />\r
+\r
+      <gd name="y11" fmla="*/ h 14915 21600" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x5" y="y11" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x11" y="y7" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x4" t="y4" r="x9" b="y10" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path w="21600" h="21600">\r
+        <moveTo>\r
+          <pt x="8472" y="0" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="12860" y="6080" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="11050" y="6797" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="16577" y="12007" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="14767" y="12877" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="21600" y="21600" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="10012" y="14915" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="12222" y="13987" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="5022" y="9705" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="7602" y="8382" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="0" y="3890" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </lightningBolt>\r
+  <line>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </line>\r
+  <lineInv>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </lineInv>\r
+  <mathDivide>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 5880" />\r
+\r
+      <gd name="adj3" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+      <gd name="a1" fmla="pin 1000 adj1 36745" />\r
+      <gd name="ma1" fmla="+- 0 0 a1" />\r
+\r
+      <gd name="ma3h" fmla="+/ 73490 ma1 4" />\r
+\r
+      <gd name="ma3w" fmla="*/ 36745 w h" />\r
+\r
+      <gd name="maxAdj3" fmla="min ma3h ma3w" />\r
+      <gd name="a3" fmla="pin 1000 adj3 maxAdj3" />\r
+      <gd name="m4a3" fmla="*/ -4 a3 1" />\r
+\r
+      <gd name="maxAdj2" fmla="+- 73490 m4a3 a1" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="yg" fmla="*/ h a2 100000" />\r
+\r
+      <gd name="rad" fmla="*/ h a3 100000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y3" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+\r
+      <gd name="a" fmla="+- yg rad 0" />\r
+      <gd name="y2" fmla="+- y3 0 a" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 rad" />\r
+\r
+      <gd name="y5" fmla="+- b 0 y1" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x3" fmla="+- hc dx1 0" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 rad" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="1000" maxY="36745">\r
+        <pos x="l" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="1000" maxX="maxAdj3">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x3" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y3" r="x3" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="hc" y="y1" />\r
+        </moveTo>\r
+        <arcTo hR="rad" wR="rad" stAng="3cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="y5" />\r
+        </moveTo>\r
+        <arcTo hR="rad" wR="rad" stAng="cd4" swAng="21600000" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathDivide>\r
+  <mathEqual>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 36745" />\r
+\r
+\r
+      <gd name="2a1" fmla="*/ a1 2 1" />\r
+\r
+      <gd name="mAdj2" fmla="+- 100000 0 2a1" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 mAdj2" />\r
+      <gd name="dy1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a2 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+\r
+\r
+\r
+      <gd name="yC1" fmla="+/ y1 y2 2" />\r
+\r
+      <gd name="yC2" fmla="+/ y3 y4 2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="36745">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+\r
+      <ahXY gdRefY="adj2" minY="0" maxY="mAdj2">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="yC1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathEqual>\r
+  <mathMinus>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathMinus>\r
+  <mathMultiply>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 51965" />\r
+\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+\r
+      <gd name="a" fmla="at2 w h" />\r
+\r
+      <gd name="sa" fmla="sin 1 a" />\r
+      <gd name="ca" fmla="cos 1 a" />\r
+      <gd name="ta" fmla="tan 1 a" />\r
+\r
+\r
+      <gd name="dl" fmla="mod w h 0" />\r
+\r
+      <gd name="rw" fmla="*/ dl 51965 100000" />\r
+\r
+\r
+\r
+      <gd name="lM" fmla="+- dl 0 rw" />\r
+      <gd name="xM" fmla="*/ ca lM 2" />\r
+      <gd name="yM" fmla="*/ sa lM 2" />\r
+\r
+\r
+      <gd name="dxAM" fmla="*/ sa th 2" />\r
+      <gd name="dyAM" fmla="*/ ca th 2" />\r
+      <gd name="xA" fmla="+- xM 0 dxAM" />\r
+      <gd name="yA" fmla="+- yM dyAM 0" />\r
+\r
+\r
+      <gd name="xB" fmla="+- xM dxAM 0" />\r
+      <gd name="yB" fmla="+- yM 0 dyAM" />\r
+\r
+\r
+      <gd name="xBC" fmla="+- hc 0 xB" />\r
+      <gd name="yBC" fmla="*/ xBC ta 1" />\r
+      <gd name="yC" fmla="+- yBC yB 0" />\r
+\r
+\r
+      <gd name="xD" fmla="+- r 0 xB" />\r
+      <gd name="xE" fmla="+- r 0 xA" />\r
+\r
+      <gd name="yFE" fmla="+- vc 0 yA" />\r
+      <gd name="xFE" fmla="*/ yFE 1 ta" />\r
+      <gd name="xF" fmla="+- xE 0 xFE" />\r
+      <gd name="xL" fmla="+- xA xFE 0" />\r
+      <gd name="yG" fmla="+- b 0 yA" />\r
+      <gd name="yH" fmla="+- b 0 yB" />\r
+      <gd name="yI" fmla="+- b 0 yC" />\r
+\r
+\r
+      <gd name="xC2" fmla="+- r 0 xM" />\r
+\r
+      <gd name="yC3" fmla="+- b 0 yM" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="51965">\r
+        <pos x="l" y="th" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="xM" y="yM" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC2" y="yM" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="xC2" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xM" y="yC3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="xA" t="yB" r="xE" b="yH" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xA" y="yA" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="xB" y="yB" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="yC" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yB" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yA" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yG" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xD" y="yH" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="yI" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xB" y="yH" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xA" y="yG" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xL" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathMultiply>\r
+  <mathNotEqual>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+      <gd name="adj2" fmla="val 6600000" />\r
+\r
+      <gd name="adj3" fmla="val 11760" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="crAng" fmla="pin 4200000 adj2 6600000" />\r
+\r
+\r
+      <gd name="2a1" fmla="*/ a1 2 1" />\r
+      <gd name="maxAdj3" fmla="+- 100000 0 2a1" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+\r
+      <gd name="dy1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a3 200000" />\r
+\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x8" fmla="+- hc dx1 0" />\r
+\r
+\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+\r
+\r
+      <gd name="cadj2" fmla="+- crAng 0 cd4" />\r
+      <gd name="xadj2" fmla="tan hd2 cadj2" />\r
+\r
+\r
+\r
+      <gd name="len" fmla="mod xadj2 hd2 0" />\r
+\r
+\r
+\r
+      <gd name="bhw" fmla="*/ len dy1 hd2" />\r
+\r
+      <gd name="bhw2" fmla="*/ bhw 1 2" />\r
+      <gd name="x7" fmla="+- hc xadj2 bhw2" />\r
+\r
+      <gd name="dx67" fmla="*/ xadj2 y1 hd2" />\r
+      <gd name="x6" fmla="+- x7 0 dx67" />\r
+\r
+      <gd name="dx57" fmla="*/ xadj2 y2 hd2" />\r
+      <gd name="x5" fmla="+- x7 0 dx57" />\r
+\r
+      <gd name="dx47" fmla="*/ xadj2 y3 hd2" />\r
+      <gd name="x4" fmla="+- x7 0 dx47" />\r
+\r
+      <gd name="dx37" fmla="*/ xadj2 y4 hd2" />\r
+      <gd name="x3" fmla="+- x7 0 dx37" />\r
+\r
+      <gd name="dx27" fmla="*/ xadj2 2 1" />\r
+      <gd name="x2" fmla="+- x7 0 dx27" />\r
+\r
+\r
+      <gd name="rx7" fmla="+- x7 bhw 0" />\r
+\r
+      <gd name="rx6" fmla="+- x6 bhw 0" />\r
+\r
+      <gd name="rx5" fmla="+- x5 bhw 0" />\r
+\r
+      <gd name="rx4" fmla="+- x4 bhw 0" />\r
+\r
+      <gd name="rx3" fmla="+- x3 bhw 0" />\r
+\r
+      <gd name="rx2" fmla="+- x2 bhw 0" />\r
+\r
+\r
+\r
+      <gd name="dx7" fmla="*/ dy1 hd2 len" />\r
+      <gd name="rxt" fmla="+- x7 dx7 0" />\r
+\r
+      <gd name="lxt" fmla="+- rx7 0 dx7" />\r
+\r
+      <gd name="rx" fmla="?: cadj2 rxt rx7" />\r
+\r
+      <gd name="lx" fmla="?: cadj2 x7 lxt" />\r
+\r
+\r
+      <gd name="dy3" fmla="*/ dy1 xadj2 len" />\r
+      <gd name="dy4" fmla="+- 0 0 dy3" />\r
+      <gd name="ry" fmla="?: cadj2 dy3 t" />\r
+\r
+      <gd name="ly" fmla="?: cadj2 t dy4" />\r
+\r
+\r
+      <gd name="dlx" fmla="+- w 0 rx" />\r
+\r
+      <gd name="drx" fmla="+- w 0 lx" />\r
+\r
+\r
+      <gd name="dly" fmla="+- h 0 ry" />\r
+\r
+      <gd name="dry" fmla="+- h 0 ly" />\r
+\r
+\r
+\r
+      <gd name="xC1" fmla="+/ rx lx 2" />\r
+\r
+      <gd name="xC2" fmla="+/ drx dlx 2" />\r
+\r
+\r
+      <gd name="yC1" fmla="+/ ry ly 2" />\r
+\r
+      <gd name="yC2" fmla="+/ y1 y2 2" />\r
+\r
+      <gd name="yC3" fmla="+/ y3 y4 2" />\r
+\r
+      <gd name="yC4" fmla="+/ dry dly 2" />\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="50000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahPolar gdRefAng="adj2" minAng="4200000" maxAng="6600000">\r
+        <pos x="lx" y="t" />\r
+      </ahPolar>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x8" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x8" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xC2" y="yC4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="yC3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC1" y="yC1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x8" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="lx" y="ly" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx" y="ry" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="drx" y="dry" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dlx" y="dly" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathNotEqual>\r
+  <mathPlus>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 23520" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 73490" />\r
+      <gd name="dx1" fmla="*/ w 73490 200000" />\r
+\r
+      <gd name="dy1" fmla="*/ h 73490 200000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dx2" />\r
+\r
+      <gd name="y3" fmla="+- vc dx2 0" />\r
+\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="73490">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y2" r="x4" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </mathPlus>\r
+  <moon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 87500" />\r
+      <gd name="g0" fmla="*/ ss a 100000" />\r
+      <gd name="g0w" fmla="*/ g0 w ss" />\r
+      <gd name="g1" fmla="+- ss 0 g0" />\r
+      <gd name="g2" fmla="*/ g0 g0 g1" />\r
+      <gd name="g3" fmla="*/ ss ss g1" />\r
+      <gd name="g4" fmla="*/ g3 2 1" />\r
+      <gd name="g5" fmla="+- g4 0 g2" />\r
+      <gd name="g6" fmla="+- g5 0 g0" />\r
+      <gd name="g6w" fmla="*/ g6 w ss" />\r
+      <gd name="g7" fmla="*/ g5 1 2" />\r
+      <gd name="g8" fmla="+- g7 0 g0" />\r
+      <gd name="dy1" fmla="*/ g8 hd2 ss" />\r
+\r
+      <gd name="g10h" fmla="+- vc 0 dy1" />\r
+      <gd name="g11h" fmla="+- vc dy1 0" />\r
+      <gd name="g12" fmla="*/ g0 9598 32768" />\r
+      <gd name="g12w" fmla="*/ g12 w ss" />\r
+      <gd name="g13" fmla="+- ss 0 g12" />\r
+      <gd name="q1" fmla="*/ ss ss 1" />\r
+      <gd name="q2" fmla="*/ g13 g13 1" />\r
+      <gd name="q3" fmla="+- q1 0 q2" />\r
+      <gd name="q4" fmla="sqrt q3" />\r
+      <gd name="dy4" fmla="*/ q4 hd2 ss" />\r
+      <gd name="g15h" fmla="+- vc 0 dy4" />\r
+      <gd name="g16h" fmla="+- vc dy4 0" />\r
+      <gd name="g17w" fmla="+- g6w 0 g0w" />\r
+      <gd name="g18w" fmla="*/ g17w 1 2" />\r
+\r
+\r
+      <gd name="dx2p" fmla="+- g0w g18w w" />\r
+      <gd name="dx2" fmla="*/ dx2p -1 1" />\r
+\r
+      <gd name="dy2" fmla="*/ hd2 -1 1" />\r
+\r
+      <gd name="stAng1" fmla="at2 dx2 dy2" />\r
+      <gd name="enAngp1" fmla="at2 dx2 hd2" />\r
+      <gd name="enAng1" fmla="+- enAngp1 0 21600000" />\r
+      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="87500">\r
+        <pos x="g0w" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="g0w" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="g12w" t="g15h" r="g0w" b="g16h" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="hd2" stAng="cd4" swAng="cd2" />\r
+        <arcTo wR="g18w" hR="dy1" stAng="stAng1" swAng="swAng1" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </moon>\r
+  <nonIsoscelesTrapezoid>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x2" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="dx3" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="x4" fmla="+/ r x3 2" />\r
+      <gd name="il" fmla="*/ wd3 a1 maxAdj" />\r
+\r
+      <gd name="adjm" fmla="max a1 a2" />\r
+      <gd name="it" fmla="*/ hd3 adjm maxAdj" />\r
+\r
+      <gd name="irt" fmla="*/ wd3 a2 maxAdj" />\r
+      <gd name="ir" fmla="+- r 0 irt" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+\r
+    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </nonIsoscelesTrapezoid>\r
+  <noSmoking>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 18750" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dr" fmla="*/ ss a 100000" />\r
+      <gd name="iwd2" fmla="+- wd2 0 dr" />\r
+      <gd name="ihd2" fmla="+- hd2 0 dr" />\r
+      <gd name="ang" fmla="at2 w h" />\r
+      <gd name="ct" fmla="cos ihd2 ang" />\r
+      <gd name="st" fmla="sin iwd2 ang" />\r
+      <gd name="m" fmla="mod ct st 0" />\r
+      <gd name="n" fmla="*/ iwd2 ihd2 m" />\r
+      <gd name="drd2" fmla="*/ dr 1 2" />\r
+      <gd name="dang" fmla="at2 n drd2" />\r
+      <gd name="2dang" fmla="*/ dang 2 1" />\r
+      <gd name="swAng" fmla="+- -10800000 2dang 0" />\r
+      <gd name="t3" fmla="at2 w h" />\r
+      <gd name="stAng1" fmla="+- t3 0 dang" />\r
+      <gd name="stAng2" fmla="+- stAng1 0 cd2" />\r
+      <gd name="ct1" fmla="cos ihd2 stAng1" />\r
+      <gd name="st1" fmla="sin iwd2 stAng1" />\r
+      <gd name="m1" fmla="mod ct1 st1 0" />\r
+      <gd name="n1" fmla="*/ iwd2 ihd2 m1" />\r
+      <gd name="dx1" fmla="cos n1 stAng1" />\r
+      <gd name="dy1" fmla="sin n1 stAng1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="x2" fmla="+- hc 0 dx1" />\r
+      <gd name="y2" fmla="+- vc 0 dy1" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefR="adj" minR="0" maxR="50000">\r
+        <pos x="dr" y="vc" />\r
+      </ahPolar>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="3cd4" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="stAng1" swAng="swAng" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x2" y="y2" />\r
+        </moveTo>\r
+        <arcTo wR="iwd2" hR="ihd2" stAng="stAng2" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </noSmoking>\r
+  <notchedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="x1" fmla="*/ dy1 dx2 hd2" />\r
+      <gd name="x3" fmla="+- r 0 x1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x1" t="y1" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </notchedRightArrow>\r
+  <octagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 29289" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 1 2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="x1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </octagon>\r
+  <parallelogram>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 100000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 200000" />\r
+      <gd name="x2" fmla="*/ ss a 100000" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+      <gd name="x5" fmla="+- r 0 x2" />\r
+      <gd name="x3" fmla="*/ x5 1 2" />\r
+      <gd name="x4" fmla="+- r 0 x3" />\r
+      <gd name="il" fmla="*/ wd2 a maxAdj" />\r
+      <gd name="q1" fmla="*/ 5 a maxAdj" />\r
+      <gd name="q2" fmla="+/ 1 q1 12" />\r
+      <gd name="il" fmla="*/ q2 w 1" />\r
+      <gd name="it" fmla="*/ q2 h 1" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+      <gd name="q3" fmla="*/ h hc x2" />\r
+      <gd name="y1" fmla="pin 0 q3 h" />\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </parallelogram>\r
+  <pentagon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="hf" fmla="val 105146" />\r
+      <gd name="vf" fmla="val 110557" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1080000" />\r
+      <gd name="dx2" fmla="cos swd2 18360000" />\r
+      <gd name="dy1" fmla="sin shd2 1080000" />\r
+      <gd name="dy2" fmla="sin shd2 18360000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc 0 dy2" />\r
+      <gd name="it" fmla="*/ y1 dx2 dx1" />\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="it" r="x3" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </pentagon>\r
+  <pie>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 0" />\r
+      <gd name="adj2" fmla="val 16200000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="stAng" fmla="pin 0 adj1 21599999" />\r
+      <gd name="enAng" fmla="pin 0 adj2 21599999" />\r
+      <gd name="sw1" fmla="+- enAng 0 stAng" />\r
+      <gd name="sw2" fmla="+- sw1 21600000 0" />\r
+      <gd name="swAng" fmla="?: sw1 sw1 sw2" />\r
+      <gd name="wt1" fmla="sin wd2 stAng" />\r
+      <gd name="ht1" fmla="cos hd2 stAng" />\r
+      <gd name="dx1" fmla="cat2 wd2 ht1 wt1" />\r
+      <gd name="dy1" fmla="sat2 hd2 ht1 wt1" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="wt2" fmla="sin wd2 enAng" />\r
+      <gd name="ht2" fmla="cos hd2 enAng" />\r
+      <gd name="dx2" fmla="cat2 wd2 ht2 wt2" />\r
+      <gd name="dy2" fmla="sat2 hd2 ht2 wt2" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahPolar gdRefAng="adj1" minAng="0" maxAng="21599999">\r
+        <pos x="x1" y="y1" />\r
+      </ahPolar>\r
+      <ahPolar gdRefAng="adj2" minAng="0" maxAng="21599999">\r
+        <pos x="x2" y="y2" />\r
+      </ahPolar>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="ir" r="it" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng" swAng="swAng" />\r
+        <lnTo>\r
+          <pt x="hc" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </pie>\r
+  <pieWedge>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="g1" fmla="cos w 13500000" />\r
+      <gd name="g2" fmla="sin h 13500000" />\r
+      <gd name="x1" fmla="+- r g1 0" />\r
+      <gd name="y1" fmla="+- b g2 0" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="h" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </pieWedge>\r
+  <plaque>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 70711 100000" />\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="-5400000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </plaque>\r
+  <plaqueTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="dx" hR="dx" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="dx" hR="dx" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <arcTo wR="dx" hR="dx" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="dx" hR="dx" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </plaqueTabs>\r
+  <plus>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="d" fmla="+- w 0 h" />\r
+      <gd name="il" fmla="?: d l x1" />\r
+      <gd name="ir" fmla="?: d r x2" />\r
+      <gd name="it" fmla="?: d x1 t" />\r
+      <gd name="ib" fmla="?: d y2 b" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </plus>\r
+  <quadArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 22500" />\r
+\r
+      <gd name="adj2" fmla="val 22500" />\r
+\r
+      <gd name="adj3" fmla="val 22500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q1" fmla="+- 100000 0 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ q1 1 2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="x1" fmla="*/ ss a3 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x6" fmla="+- r 0 x1" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dx2" />\r
+      <gd name="y5" fmla="+- vc dx2 0" />\r
+      <gd name="y3" fmla="+- vc 0 dx3" />\r
+      <gd name="y4" fmla="+- vc dx3 0" />\r
+      <gd name="y6" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ dx3 x1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x3" y="x1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="x1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="y3" r="ir" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="x1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </quadArrow>\r
+  <quadArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 18515" />\r
+\r
+      <gd name="adj2" fmla="val 18515" />\r
+\r
+      <gd name="adj3" fmla="val 18515" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="+- 50000 0 a2" />\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 2 1" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin a1 adj4 maxAdj4" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx3" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dx1" fmla="*/ w a4 200000" />\r
+\r
+      <gd name="dy1" fmla="*/ h a4 200000" />\r
+\r
+\r
+      <gd name="x8" fmla="+- r 0 ah" />\r
+      <gd name="x2" fmla="+- hc 0 dx1" />\r
+      <gd name="x7" fmla="+- hc dx1 0" />\r
+      <gd name="x3" fmla="+- hc 0 dx2" />\r
+      <gd name="x6" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc 0 dx3" />\r
+      <gd name="x5" fmla="+- hc dx3 0" />\r
+\r
+      <gd name="y8" fmla="+- b 0 ah" />\r
+      <gd name="y2" fmla="+- vc 0 dy1" />\r
+      <gd name="y7" fmla="+- vc dy1 0" />\r
+      <gd name="y3" fmla="+- vc 0 dx2" />\r
+      <gd name="y6" fmla="+- vc dx2 0" />\r
+      <gd name="y4" fmla="+- vc 0 dx3" />\r
+      <gd name="y5" fmla="+- vc dx3 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x4" y="ah" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="ah" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="a1" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y2" r="x7" b="y7" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="ah" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ah" y="y6" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </quadArrowCallout>\r
+  <rect>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rect>\r
+  <ribbon>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 33333" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+\r
+\r
+      <gd name="x10" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd32 0" />\r
+      <gd name="x8" fmla="+- x9 0 wd32" />\r
+      <gd name="x5" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x6" fmla="+- x9 0 wd8" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 wd32" />\r
+      <gd name="x7" fmla="+- x6 wd32 0" />\r
+      <gd name="y1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="y2" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y2" />\r
+\r
+      <gd name="y3" fmla="*/ y4 1 2" />\r
+\r
+      <gd name="hR" fmla="*/ h a1 400000" />\r
+\r
+      <gd name="y5" fmla="+- b 0 hR" />\r
+      <gd name="y6" fmla="+- y2 0 hR" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x10" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="y2" r="x9" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x5" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x6" y="hR" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y5" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x3" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x5" y="hR" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="hR" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x9" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ribbon>\r
+  <ribbon2>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 33333" />\r
+      <gd name="a2" fmla="pin 25000 adj2 75000" />\r
+\r
+\r
+      <gd name="x10" fmla="+- r 0 wd8" />\r
+\r
+      <gd name="dx2" fmla="*/ w a2 200000" />\r
+\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+\r
+      <gd name="x3" fmla="+- x2 wd32 0" />\r
+      <gd name="x8" fmla="+- x9 0 wd32" />\r
+      <gd name="x5" fmla="+- x2 wd8 0" />\r
+\r
+      <gd name="x6" fmla="+- x9 0 wd8" />\r
+\r
+      <gd name="x4" fmla="+- x5 0 wd32" />\r
+      <gd name="x7" fmla="+- x6 wd32 0" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- b 0 dy1" />\r
+      <gd name="dy2" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y4" fmla="+- t dy2 0" />\r
+\r
+      <gd name="y3" fmla="+/ y4 b 2" />\r
+\r
+      <gd name="hR" fmla="*/ h a1 400000" />\r
+\r
+\r
+      <gd name="y6" fmla="+- b 0 hR" />\r
+      <gd name="y7" fmla="+- y1 0 hR" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="33333">\r
+        <pos x="hc" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="25000" maxX="75000">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="wd8" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x10" y="y3" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x2" t="t" r="x9" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x4" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x8" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path stroke="false" fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x5" y="y6" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x6" y="y6" />\r
+        </moveTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="wd8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="hR" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x8" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd32" hR="hR" stAng="3cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x5" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y6" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="y6" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x2" y="y7" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x9" y="y4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y7" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </ribbon2>\r
+  <rightArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 100000 w ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx2" fmla="*/ y1 dx1 hd2" />\r
+      <gd name="x2" fmla="+- x1 dx2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="y1" r="x2" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rightArrow>\r
+  <rightArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 w ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss w" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dy1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="dx3" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="x3" fmla="+- r 0 dx3" />\r
+      <gd name="x2" fmla="*/ w a4 100000" />\r
+\r
+      <gd name="x1" fmla="*/ x2 1 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="x3" y="y2" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj3" minX="0" maxX="maxAdj3">\r
+        <pos x="x3" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="x2" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="x2" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </rightArrowCallout>\r
+  <rightBrace>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 8333" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 100000" />\r
+      <gd name="q1" fmla="+- 100000 0 a2" />\r
+      <gd name="q2" fmla="min q1 a2" />\r
+      <gd name="q3" fmla="*/ q2 1 2" />\r
+      <gd name="maxAdj1" fmla="*/ q3 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="y1" fmla="*/ ss a1 100000" />\r
+      <gd name="y3" fmla="*/ h a2 100000" />\r
+      <gd name="y2" fmla="+- y3 0 y1" />\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="ir" fmla="+- l dx1 0" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="maxAdj1">\r
+        <pos x="hc" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="100000">\r
+        <pos x="r" y="y3" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="hc" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="cd2" swAng="-5400000" />\r
+        <arcTo wR="wd2" hR="y1" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="hc" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="y1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+  </rightBrace>\r
+  <rightBracket>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 8333" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="y1" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dx1" fmla="cos w 2700000" />\r
+      <gd name="dy1" fmla="sin y1 2700000" />\r
+      <gd name="ir" fmla="+- l dx1 0" />\r
+      <gd name="it" fmla="+- y1 0 dy1" />\r
+      <gd name="ib" fmla="+- b dy1 y1" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="maxAdj">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="w" hR="y1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="w" hR="y1" stAng="0" swAng="cd4" />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </rightBracket>\r
+  <round1Rect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="idx" fmla="*/ dx1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 idx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="dx1" hR="dx1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round1Rect>\r
+  <round2DiagRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+      <gd name="y1" fmla="+- b 0 x1" />\r
+      <gd name="a" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 a" />\r
+      <gd name="y2" fmla="+- b 0 a" />\r
+      <gd name="dx1" fmla="*/ x1 29289 100000" />\r
+      <gd name="dx2" fmla="*/ a 29289 100000" />\r
+      <gd name="d" fmla="+- dx1 0 dx2" />\r
+      <gd name="dx" fmla="?: d dx1 dx2" />\r
+      <gd name="ir" fmla="+- r 0 dx" />\r
+      <gd name="ib" fmla="+- b 0 dx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="a" hR="a" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="a" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="a" hR="a" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round2DiagRect>\r
+  <round2SameRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+\r
+      <gd name="tx1" fmla="*/ ss a1 100000" />\r
+      <gd name="tx2" fmla="+- r 0 tx1" />\r
+\r
+      <gd name="bx1" fmla="*/ ss a2 100000" />\r
+      <gd name="bx2" fmla="+- r 0 bx1" />\r
+      <gd name="by1" fmla="+- b 0 bx1" />\r
+      <gd name="d" fmla="+- tx1 0 bx1" />\r
+      <gd name="tdx" fmla="*/ tx1 29289 100000" />\r
+      <gd name="bdx" fmla="*/ bx1 29289 100000" />\r
+      <gd name="il" fmla="?: d tdx bdx" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 bdx" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="tx2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="bx1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="tdx" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="tx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="tx2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="tx1" hR="tx1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="by1" />\r
+        </lnTo>\r
+        <arcTo wR="bx1" hR="bx1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="bx1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="bx1" hR="bx1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="tx1" />\r
+        </lnTo>\r
+        <arcTo wR="tx1" hR="tx1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </round2SameRect>\r
+  <roundRect>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="x1" fmla="*/ ss a 100000" />\r
+      <gd name="x2" fmla="+- r 0 x1" />\r
+      <gd name="y2" fmla="+- b 0 x1" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="x1" />\r
+        </moveTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </roundRect>\r
+  <rtTriangle>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="it" fmla="*/ h 7 12" />\r
+      <gd name="ir" fmla="*/ w 7 12" />\r
+      <gd name="ib" fmla="*/ h 11 12" />\r
+    </gdLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="hc" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="wd12" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </rtTriangle>\r
+  <smileyFace>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 4653" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin -4653 adj 4653" />\r
+      <gd name="x1" fmla="*/ w 4969 21699" />\r
+\r
+      <gd name="x2" fmla="*/ w 6215 21600" />\r
+\r
+      <gd name="x3" fmla="*/ w 13135 21600" />\r
+\r
+      <gd name="x4" fmla="*/ w 16640 21600" />\r
+\r
+      <gd name="y1" fmla="*/ h 7570 21600" />\r
+\r
+      <gd name="y3" fmla="*/ h 16515 21600" />\r
+\r
+      <gd name="dy2" fmla="*/ h a 100000" />\r
+\r
+      <gd name="y2" fmla="+- y3 0 dy2" />\r
+\r
+      <gd name="y4" fmla="+- y3 dy2 0" />\r
+\r
+      <gd name="dy3" fmla="*/ h a 50000" />\r
+\r
+      <gd name="y5" fmla="+- y4 dy3 0" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="wR" fmla="*/ w 1125 21600" />\r
+      <gd name="hR" fmla="*/ h 1125 21600" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="-4653" maxY="4653">\r
+        <pos x="hc" y="y4" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+        <moveTo>\r
+          <pt x="x3" y="y1" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="hc" y="y5" />\r
+          <pt x="x4" y="y2" />\r
+        </quadBezTo>\r
+      </path>\r
+      <path fill="none">\r
+\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </smileyFace>\r
+  <snip1Rect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ ss a 100000" />\r
+      <gd name="x1" fmla="+- r 0 dx1" />\r
+      <gd name="it" fmla="*/ dx1 1 2" />\r
+      <gd name="ir" fmla="+/ x1 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip1Rect>\r
+  <snip2DiagRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 0" />\r
+      <gd name="adj2" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="lx1" fmla="*/ ss a1 100000" />\r
+      <gd name="lx2" fmla="+- r 0 lx1" />\r
+      <gd name="ly1" fmla="+- b 0 lx1" />\r
+      <gd name="rx1" fmla="*/ ss a2 100000" />\r
+      <gd name="rx2" fmla="+- r 0 rx1" />\r
+      <gd name="ry1" fmla="+- b 0 rx1" />\r
+      <gd name="d" fmla="+- lx1 0 rx1" />\r
+      <gd name="dx" fmla="?: d lx1 rx1" />\r
+      <gd name="il" fmla="*/ dx 1 2" />\r
+\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="lx1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="rx2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="lx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="rx2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="rx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="ly1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="lx2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="rx1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="ry1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="lx1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip2DiagRect>\r
+  <snip2SameRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 0" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="tx1" fmla="*/ ss a1 100000" />\r
+      <gd name="tx2" fmla="+- r 0 tx1" />\r
+      <gd name="bx1" fmla="*/ ss a2 100000" />\r
+      <gd name="bx2" fmla="+- r 0 bx1" />\r
+      <gd name="by1" fmla="+- b 0 bx1" />\r
+      <gd name="d" fmla="+- tx1 0 bx1" />\r
+      <gd name="dx" fmla="?: d tx1 bx1" />\r
+      <gd name="il" fmla="*/ dx 1 2" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="it" fmla="*/ tx1 1 2" />\r
+      <gd name="ib" fmla="+/ by1 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="tx2" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="bx1" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="tx1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="tx2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="tx1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="by1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="bx2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="bx1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="by1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="tx1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snip2SameRect>\r
+  <snipRoundRect>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 16667" />\r
+      <gd name="adj2" fmla="val 16667" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 50000" />\r
+      <gd name="a2" fmla="pin 0 adj2 50000" />\r
+      <gd name="x1" fmla="*/ ss a1 100000" />\r
+      <gd name="dx2" fmla="*/ ss a2 100000" />\r
+      <gd name="x2" fmla="+- r 0 dx2" />\r
+      <gd name="il" fmla="*/ x1 29289 100000" />\r
+\r
+      <gd name="ir" fmla="+/ x2 r 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="50000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="50000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="il" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="x1" />\r
+        </lnTo>\r
+        <arcTo wR="x1" hR="x1" stAng="cd2" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </snipRoundRect>\r
+  <squareTabs>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="md" fmla="mod w h 0" />\r
+      <gd name="dx" fmla="*/ 1 md 20" />\r
+\r
+      <gd name="y1" fmla="+- 0 b dx" />\r
+\r
+      <gd name="x1" fmla="+- 0 r dx" />\r
+\r
+    </gdLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="dx" y="dx" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="dx" y="x1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="dx" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="dx" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="dx" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="dx" t="dx" r="x1" b="y1" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dx" y="dx" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="dx" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="dx" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="dx" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="dx" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </squareTabs>\r
+  <star10>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 42533" />\r
+      <gd name="hf" fmla="val 105146" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 95106 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 58779 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ hd2 80902 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 30902 100000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 80902 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 30902 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 95106 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 58779 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx4" fmla="+- hc sdx2 0" />\r
+      <gd name="sx5" fmla="+- hc sdx1 0" />\r
+      <gd name="sx6" fmla="+- hc iwd2 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc sdy2 0" />\r
+      <gd name="sy4" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy2" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star10>\r
+  <star12>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 1800000" />\r
+\r
+      <gd name="dy1" fmla="sin hd2 3600000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x3" fmla="*/ w 3 4" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y3" fmla="*/ h 3 4" />\r
+      <gd name="y4" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="cos iwd2 900000" />\r
+      <gd name="sdx2" fmla="cos iwd2 2700000" />\r
+      <gd name="sdx3" fmla="cos iwd2 4500000" />\r
+      <gd name="sdy1" fmla="sin ihd2 4500000" />\r
+      <gd name="sdy2" fmla="sin ihd2 2700000" />\r
+      <gd name="sdy3" fmla="sin ihd2 900000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc sdx3 0" />\r
+      <gd name="sx5" fmla="+- hc sdx2 0" />\r
+      <gd name="sx6" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc sdy3 0" />\r
+      <gd name="sy5" fmla="+- vc sdy2 0" />\r
+      <gd name="sy6" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x4" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="wd4" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="wd4" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy2" r="sx5" b="sy5" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="wd4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy4" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star12>\r
+  <star16>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ wd2 92388 100000" />\r
+      <gd name="dx2" fmla="*/ wd2 70711 100000" />\r
+      <gd name="dx3" fmla="*/ wd2 38268 100000" />\r
+      <gd name="dy1" fmla="*/ hd2 92388 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 70711 100000" />\r
+      <gd name="dy3" fmla="*/ hd2 38268 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc dy3 0" />\r
+      <gd name="y5" fmla="+- vc dy2 0" />\r
+      <gd name="y6" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 98079 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 83147 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 55557 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 19509 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 98079 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 83147 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 55557 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 19509 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc sdx4 0" />\r
+      <gd name="sx6" fmla="+- hc sdx3 0" />\r
+      <gd name="sx7" fmla="+- hc sdx2 0" />\r
+      <gd name="sx8" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc sdy4 0" />\r
+      <gd name="sy6" fmla="+- vc sdy3 0" />\r
+      <gd name="sy7" fmla="+- vc sdy2 0" />\r
+      <gd name="sy8" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y6" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y5" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x3" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy5" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </star16>\r
+  <star24>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 900000" />\r
+      <gd name="dx2" fmla="cos wd2 1800000" />\r
+      <gd name="dx3" fmla="cos wd2 2700000" />\r
+      <gd name="dx4" fmla="val wd4" />\r
+      <gd name="dx5" fmla="cos wd2 4500000" />\r
+      <gd name="dy1" fmla="sin hd2 4500000" />\r
+      <gd name="dy2" fmla="sin hd2 3600000" />\r
+      <gd name="dy3" fmla="sin hd2 2700000" />\r
+      <gd name="dy4" fmla="val hd4" />\r
+      <gd name="dy5" fmla="sin hd2 900000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc 0 dx4" />\r
+      <gd name="x5" fmla="+- hc 0 dx5" />\r
+      <gd name="x6" fmla="+- hc dx5 0" />\r
+      <gd name="x7" fmla="+- hc dx4 0" />\r
+      <gd name="x8" fmla="+- hc dx3 0" />\r
+      <gd name="x9" fmla="+- hc dx2 0" />\r
+      <gd name="x10" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc 0 dy4" />\r
+      <gd name="y5" fmla="+- vc 0 dy5" />\r
+      <gd name="y6" fmla="+- vc dy5 0" />\r
+      <gd name="y7" fmla="+- vc dy4 0" />\r
+      <gd name="y8" fmla="+- vc dy3 0" />\r
+      <gd name="y9" fmla="+- vc dy2 0" />\r
+      <gd name="y10" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 99144 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 92388 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 79335 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 60876 100000" />\r
+      <gd name="sdx5" fmla="*/ iwd2 38268 100000" />\r
+      <gd name="sdx6" fmla="*/ iwd2 13053 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 99144 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 92388 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 79335 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 60876 100000" />\r
+      <gd name="sdy5" fmla="*/ ihd2 38268 100000" />\r
+      <gd name="sdy6" fmla="*/ ihd2 13053 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
+      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
+      <gd name="sx7" fmla="+- hc sdx6 0" />\r
+      <gd name="sx8" fmla="+- hc sdx5 0" />\r
+      <gd name="sx9" fmla="+- hc sdx4 0" />\r
+      <gd name="sx10" fmla="+- hc sdx3 0" />\r
+      <gd name="sx11" fmla="+- hc sdx2 0" />\r
+      <gd name="sx12" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
+      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
+      <gd name="sy7" fmla="+- vc sdy6 0" />\r
+      <gd name="sy8" fmla="+- vc sdy5 0" />\r
+      <gd name="sy9" fmla="+- vc sdy4 0" />\r
+      <gd name="sy10" fmla="+- vc sdy3 0" />\r
+      <gd name="sy11" fmla="+- vc sdy2 0" />\r
+      <gd name="sy12" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy7" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star24>\r
+  <star32>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="*/ wd2 98079 100000" />\r
+      <gd name="dx2" fmla="*/ wd2 92388 100000" />\r
+      <gd name="dx3" fmla="*/ wd2 83147 100000" />\r
+      <gd name="dx4" fmla="cos wd2 2700000" />\r
+      <gd name="dx5" fmla="*/ wd2 55557 100000" />\r
+      <gd name="dx6" fmla="*/ wd2 38268 100000" />\r
+      <gd name="dx7" fmla="*/ wd2 19509 100000" />\r
+      <gd name="dy1" fmla="*/ hd2 98079 100000" />\r
+      <gd name="dy2" fmla="*/ hd2 92388 100000" />\r
+      <gd name="dy3" fmla="*/ hd2 83147 100000" />\r
+      <gd name="dy4" fmla="sin hd2 2700000" />\r
+      <gd name="dy5" fmla="*/ hd2 55557 100000" />\r
+      <gd name="dy6" fmla="*/ hd2 38268 100000" />\r
+      <gd name="dy7" fmla="*/ hd2 19509 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc 0 dx4" />\r
+      <gd name="x5" fmla="+- hc 0 dx5" />\r
+      <gd name="x6" fmla="+- hc 0 dx6" />\r
+      <gd name="x7" fmla="+- hc 0 dx7" />\r
+      <gd name="x8" fmla="+- hc dx7 0" />\r
+      <gd name="x9" fmla="+- hc dx6 0" />\r
+      <gd name="x10" fmla="+- hc dx5 0" />\r
+      <gd name="x11" fmla="+- hc dx4 0" />\r
+      <gd name="x12" fmla="+- hc dx3 0" />\r
+      <gd name="x13" fmla="+- hc dx2 0" />\r
+      <gd name="x14" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+      <gd name="y3" fmla="+- vc 0 dy3" />\r
+      <gd name="y4" fmla="+- vc 0 dy4" />\r
+      <gd name="y5" fmla="+- vc 0 dy5" />\r
+      <gd name="y6" fmla="+- vc 0 dy6" />\r
+      <gd name="y7" fmla="+- vc 0 dy7" />\r
+      <gd name="y8" fmla="+- vc dy7 0" />\r
+      <gd name="y9" fmla="+- vc dy6 0" />\r
+      <gd name="y10" fmla="+- vc dy5 0" />\r
+      <gd name="y11" fmla="+- vc dy4 0" />\r
+      <gd name="y12" fmla="+- vc dy3 0" />\r
+      <gd name="y13" fmla="+- vc dy2 0" />\r
+      <gd name="y14" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 99518 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 95694 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 88192 100000" />\r
+      <gd name="sdx4" fmla="*/ iwd2 77301 100000" />\r
+      <gd name="sdx5" fmla="*/ iwd2 63439 100000" />\r
+      <gd name="sdx6" fmla="*/ iwd2 47140 100000" />\r
+      <gd name="sdx7" fmla="*/ iwd2 29028 100000" />\r
+      <gd name="sdx8" fmla="*/ iwd2 9802 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 99518 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 95694 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 88192 100000" />\r
+      <gd name="sdy4" fmla="*/ ihd2 77301 100000" />\r
+      <gd name="sdy5" fmla="*/ ihd2 63439 100000" />\r
+      <gd name="sdy6" fmla="*/ ihd2 47140 100000" />\r
+      <gd name="sdy7" fmla="*/ ihd2 29028 100000" />\r
+      <gd name="sdy8" fmla="*/ ihd2 9802 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc 0 sdx4" />\r
+      <gd name="sx5" fmla="+- hc 0 sdx5" />\r
+      <gd name="sx6" fmla="+- hc 0 sdx6" />\r
+      <gd name="sx7" fmla="+- hc 0 sdx7" />\r
+      <gd name="sx8" fmla="+- hc 0 sdx8" />\r
+      <gd name="sx9" fmla="+- hc sdx8 0" />\r
+      <gd name="sx10" fmla="+- hc sdx7 0" />\r
+      <gd name="sx11" fmla="+- hc sdx6 0" />\r
+      <gd name="sx12" fmla="+- hc sdx5 0" />\r
+      <gd name="sx13" fmla="+- hc sdx4 0" />\r
+      <gd name="sx14" fmla="+- hc sdx3 0" />\r
+      <gd name="sx15" fmla="+- hc sdx2 0" />\r
+      <gd name="sx16" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc 0 sdy3" />\r
+      <gd name="sy4" fmla="+- vc 0 sdy4" />\r
+      <gd name="sy5" fmla="+- vc 0 sdy5" />\r
+      <gd name="sy6" fmla="+- vc 0 sdy6" />\r
+      <gd name="sy7" fmla="+- vc 0 sdy7" />\r
+      <gd name="sy8" fmla="+- vc 0 sdy8" />\r
+      <gd name="sy9" fmla="+- vc sdy8 0" />\r
+      <gd name="sy10" fmla="+- vc sdy7 0" />\r
+      <gd name="sy11" fmla="+- vc sdy6 0" />\r
+      <gd name="sy12" fmla="+- vc sdy5 0" />\r
+      <gd name="sy13" fmla="+- vc sdy4 0" />\r
+      <gd name="sy14" fmla="+- vc sdy3 0" />\r
+      <gd name="sy15" fmla="+- vc sdy2 0" />\r
+      <gd name="sy16" fmla="+- vc sdy1 0" />\r
+      <gd name="idx" fmla="cos iwd2 2700000" />\r
+      <gd name="idy" fmla="sin ihd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="ssd2">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x11" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx13" y="sy5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx14" y="sy6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y6" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx15" y="sy7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y7" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx16" y="sy8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx16" y="sy9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx15" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx14" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx13" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x11" y="y11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx12" y="sy13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx11" y="sy14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x9" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx10" y="sy15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx9" y="sy16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx8" y="sy16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx7" y="sy15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy11" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y9" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y8" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy9" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star32>\r
+  <star4>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx" fmla="cos iwd2 2700000" />\r
+      <gd name="sdy" fmla="sin ihd2 2700000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx" />\r
+      <gd name="sx2" fmla="+- hc sdx 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy" />\r
+      <gd name="sy2" fmla="+- vc sdy 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx2" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star4>\r
+  <star5>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 19098" />\r
+      <gd name="hf" fmla="val 105146" />\r
+      <gd name="vf" fmla="val 110557" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1080000" />\r
+      <gd name="dx2" fmla="cos swd2 18360000" />\r
+      <gd name="dy1" fmla="sin shd2 1080000" />\r
+      <gd name="dy2" fmla="sin shd2 18360000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc 0 dy2" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
+      <gd name="sdx1" fmla="cos iwd2 20520000" />\r
+      <gd name="sdx2" fmla="cos iwd2 3240000" />\r
+      <gd name="sdy1" fmla="sin ihd2 3240000" />\r
+      <gd name="sdy2" fmla="sin ihd2 20520000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- svc ihd2 0" />\r
+      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y2" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </star5>\r
+  <star6>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 28868" />\r
+      <gd name="hf" fmla="val 115470" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="dx1" fmla="cos swd2 1800000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="y2" fmla="+- vc hd4 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 1 2" />\r
+      <gd name="sx1" fmla="+- hc 0 iwd2" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc iwd2 0" />\r
+      <gd name="sdy1" fmla="sin ihd2 3600000" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x2" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="hd4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="hd4" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="hd4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="vc" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star6>\r
+  <star7>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 34601" />\r
+      <gd name="hf" fmla="val 102572" />\r
+      <gd name="vf" fmla="val 105210" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="swd2" fmla="*/ wd2 hf 100000" />\r
+      <gd name="shd2" fmla="*/ hd2 vf 100000" />\r
+      <gd name="svc" fmla="*/ vc  vf 100000" />\r
+      <gd name="dx1" fmla="*/ swd2 97493 100000" />\r
+      <gd name="dx2" fmla="*/ swd2 78183 100000" />\r
+      <gd name="dx3" fmla="*/ swd2 43388 100000" />\r
+      <gd name="dy1" fmla="*/ shd2 62349 100000" />\r
+      <gd name="dy2" fmla="*/ shd2 22252 100000" />\r
+      <gd name="dy3" fmla="*/ shd2 90097 100000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc 0 dx3" />\r
+      <gd name="x4" fmla="+- hc dx3 0" />\r
+      <gd name="x5" fmla="+- hc dx2 0" />\r
+      <gd name="x6" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- svc 0 dy1" />\r
+      <gd name="y2" fmla="+- svc dy2 0" />\r
+      <gd name="y3" fmla="+- svc dy3 0" />\r
+      <gd name="iwd2" fmla="*/ swd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ shd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 97493 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 78183 100000" />\r
+      <gd name="sdx3" fmla="*/ iwd2 43388 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc 0 sdx3" />\r
+      <gd name="sx4" fmla="+- hc sdx3 0" />\r
+      <gd name="sx5" fmla="+- hc sdx2 0" />\r
+      <gd name="sx6" fmla="+- hc sdx1 0" />\r
+      <gd name="sdy1" fmla="*/ ihd2 90097 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 22252 100000" />\r
+      <gd name="sdy3" fmla="*/ ihd2 62349 100000" />\r
+      <gd name="sy1" fmla="+- svc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- svc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- svc sdy3 0" />\r
+      <gd name="sy4" fmla="+- svc ihd2 0" />\r
+      <gd name="yAdj" fmla="+- svc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="x5" y="y1" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x6" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x4" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x3" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx2" t="sy1" r="sx5" b="sy3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x1" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx6" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx5" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star7>\r
+  <star8>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 37500" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 50000" />\r
+      <gd name="dx1" fmla="cos wd2 2700000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="sin hd2 2700000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="iwd2" fmla="*/ wd2 a 50000" />\r
+      <gd name="ihd2" fmla="*/ hd2 a 50000" />\r
+      <gd name="sdx1" fmla="*/ iwd2 92388 100000" />\r
+      <gd name="sdx2" fmla="*/ iwd2 38268 100000" />\r
+      <gd name="sdy1" fmla="*/ ihd2 92388 100000" />\r
+      <gd name="sdy2" fmla="*/ ihd2 38268 100000" />\r
+      <gd name="sx1" fmla="+- hc 0 sdx1" />\r
+      <gd name="sx2" fmla="+- hc 0 sdx2" />\r
+      <gd name="sx3" fmla="+- hc sdx2 0" />\r
+      <gd name="sx4" fmla="+- hc sdx1 0" />\r
+      <gd name="sy1" fmla="+- vc 0 sdy1" />\r
+      <gd name="sy2" fmla="+- vc 0 sdy2" />\r
+      <gd name="sy3" fmla="+- vc sdy2 0" />\r
+      <gd name="sy4" fmla="+- vc sdy1 0" />\r
+      <gd name="yAdj" fmla="+- vc 0 ihd2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="50000">\r
+        <pos x="hc" y="yAdj" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x1" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="sx1" t="sy1" r="sx4" b="sy4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx4" y="sy3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx3" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx2" y="sy4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="sx1" y="sy3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </star8>\r
+  <straightConnector1>\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path fill="none">\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+  </straightConnector1>\r
+  <stripedRightArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+\r
+      <gd name="adj2" fmla="val 50000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 84375 w ss" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="x4" fmla="*/ ss 5 32" />\r
+      <gd name="dx5" fmla="*/ ss a2 100000" />\r
+      <gd name="x5" fmla="+- r 0 dx5" />\r
+      <gd name="dy1" fmla="*/ h a1 200000" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="y2" fmla="+- vc dy1 0" />\r
+      <gd name="dx6" fmla="*/ dy1 dx5 hd2" />\r
+      <gd name="x6" fmla="+- r 0 dx6" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="100000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x5" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x5" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x5" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x4" t="y1" r="x6" b="y2" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ssd32" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd32" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ssd16" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ssd8" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd8" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ssd16" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="y1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="vc" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x5" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </stripedRightArrow>\r
+  <sun>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 12500 adj 46875" />\r
+      <gd name="g0" fmla="+- 50000 0 a" />\r
+      <gd name="g1" fmla="*/ g0 30274 32768" />\r
+      <gd name="g2" fmla="*/ g0 12540 32768" />\r
+      <gd name="g3" fmla="+- g1 50000 0" />\r
+      <gd name="g4" fmla="+- g2 50000 0" />\r
+      <gd name="g5" fmla="+- 50000 0 g1" />\r
+      <gd name="g6" fmla="+- 50000 0 g2" />\r
+      <gd name="g7" fmla="*/ g0 23170 32768" />\r
+      <gd name="g8" fmla="+- 50000 g7 0" />\r
+      <gd name="g9" fmla="+- 50000 0 g7" />\r
+      <gd name="g10" fmla="*/ g5 3 4" />\r
+      <gd name="g11" fmla="*/ g6 3 4" />\r
+      <gd name="g12" fmla="+- g10 3662 0" />\r
+      <gd name="g13" fmla="+- g11 3662 0" />\r
+      <gd name="g14" fmla="+- g11 12500 0" />\r
+      <gd name="g15" fmla="+- 100000 0 g10" />\r
+      <gd name="g16" fmla="+- 100000 0 g12" />\r
+      <gd name="g17" fmla="+- 100000 0 g13" />\r
+      <gd name="g18" fmla="+- 100000 0 g14" />\r
+      <gd name="ox1" fmla="*/ w 18436 21600" />\r
+      <gd name="oy1" fmla="*/ h 3163 21600" />\r
+      <gd name="ox2" fmla="*/ w 3163 21600" />\r
+      <gd name="oy2" fmla="*/ h 18436 21600" />\r
+      <gd name="x8" fmla="*/ w g8 100000" />\r
+      <gd name="x9" fmla="*/ w g9 100000" />\r
+      <gd name="x10" fmla="*/ w g10 100000" />\r
+      <gd name="x12" fmla="*/ w g12 100000" />\r
+      <gd name="x13" fmla="*/ w g13 100000" />\r
+      <gd name="x14" fmla="*/ w g14 100000" />\r
+      <gd name="x15" fmla="*/ w g15 100000" />\r
+      <gd name="x16" fmla="*/ w g16 100000" />\r
+      <gd name="x17" fmla="*/ w g17 100000" />\r
+      <gd name="x18" fmla="*/ w g18 100000" />\r
+      <gd name="x19" fmla="*/ w a 100000" />\r
+      <gd name="wR" fmla="*/ w g0 100000" />\r
+      <gd name="hR" fmla="*/ h g0 100000" />\r
+      <gd name="y8" fmla="*/ h g8 100000" />\r
+      <gd name="y9" fmla="*/ h g9 100000" />\r
+      <gd name="y10" fmla="*/ h g10 100000" />\r
+      <gd name="y12" fmla="*/ h g12 100000" />\r
+      <gd name="y13" fmla="*/ h g13 100000" />\r
+      <gd name="y14" fmla="*/ h g14 100000" />\r
+      <gd name="y15" fmla="*/ h g15 100000" />\r
+      <gd name="y16" fmla="*/ h g16 100000" />\r
+      <gd name="y17" fmla="*/ h g17 100000" />\r
+      <gd name="y18" fmla="*/ h g18 100000" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="12500" maxX="46875">\r
+        <pos x="x19" y="vc" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="x9" t="y9" r="x8" b="y8" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="r" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y18" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x15" y="y14" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox1" y="oy1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x16" y="y13" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x17" y="y12" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x18" y="y10" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y10" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox2" y="oy1" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y12" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y13" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y14" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y18" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox2" y="oy2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x12" y="y17" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x13" y="y16" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="hc" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x14" y="y15" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x18" y="y15" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ox1" y="oy2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x17" y="y16" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x16" y="y17" />\r
+        </lnTo>\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x19" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wR" hR="hR" stAng="cd2" swAng="21600000" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </sun>\r
+  <swooshArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 16667" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+\r
+\r
+      <gd name="a1" fmla="pin 1 adj1 75000" />\r
+\r
+      <gd name="maxAdj2" fmla="*/ 70000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="ad1" fmla="*/ h a1 100000" />\r
+      <gd name="ad2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="xB" fmla="+- r 0 ad2" />\r
+      <gd name="yB" fmla="+- t ssd8 0" />\r
+\r
+      <gd name="alfa" fmla="*/ cd4 1 14" />\r
+\r
+      <gd name="dx0" fmla="tan ssd8 alfa" />\r
+      <gd name="xC" fmla="+- xB 0 dx0" />\r
+\r
+      <gd name="dx1" fmla="tan ad1 alfa" />\r
+\r
+      <gd name="yF" fmla="+- yB ad1 0" />\r
+      <gd name="xF" fmla="+- xB dx1 0" />\r
+\r
+      <gd name="xE" fmla="+- xF dx0 0" />\r
+      <gd name="yE" fmla="+- yF ssd8 0" />\r
+\r
+      <gd name="dy2" fmla="+- yE 0 t" />\r
+      <gd name="dy22" fmla="*/ dy2 1 2" />\r
+      <gd name="dy3" fmla="*/ h 1 20" />\r
+      <gd name="yD" fmla="+- t dy22 dy3" />\r
+\r
+\r
+      <gd name="dy4" fmla="*/ hd6 1 1" />\r
+      <gd name="yP1" fmla="+- hd6 dy4 0" />\r
+      <gd name="xP1" fmla="val wd6" />\r
+\r
+\r
+      <gd name="dy5" fmla="*/ hd6 1 2" />\r
+      <gd name="yP2" fmla="+- yF dy5 0" />\r
+      <gd name="xP2" fmla="val wd4" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="1" maxY="75000">\r
+        <pos x="xF" y="yF" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="xB" y="yB" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xC" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="yD" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xE" y="yE" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <quadBezTo>\r
+          <pt x="xP1" y="yP1" />\r
+          <pt x="xB" y="yB" />\r
+        </quadBezTo>\r
+        <lnTo>\r
+          <pt x="xC" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="yD" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xE" y="yE" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xF" y="yF" />\r
+        </lnTo>\r
+        <quadBezTo>\r
+          <pt x="xP2" y="yP2" />\r
+          <pt x="l" y="b" />\r
+        </quadBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </swooshArrow>\r
+  <teardrop>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 100000" />\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 200000" />\r
+      <gd name="r2" fmla="sqrt 2" />\r
+      <gd name="tw" fmla="*/ wd2 r2 1" />\r
+      <gd name="th" fmla="*/ hd2 r2 1" />\r
+      <gd name="sw" fmla="*/ tw a 100000" />\r
+      <gd name="sh" fmla="*/ th a 100000" />\r
+      <gd name="dx1" fmla="cos sw 2700000" />\r
+      <gd name="dy1" fmla="sin sh 2700000" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc 0 dy1" />\r
+      <gd name="x2" fmla="+/ hc x1 2" />\r
+      <gd name="y2" fmla="+/ vc y1 2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="200000">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="x1" y="y1" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="vc" />\r
+        </moveTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd2" swAng="cd4" />\r
+        <quadBezTo>\r
+          <pt x="x2" y="t" />\r
+          <pt x="x1" y="y1" />\r
+        </quadBezTo>\r
+        <quadBezTo>\r
+          <pt x="r" y="y2" />\r
+          <pt x="r" y="vc" />\r
+        </quadBezTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="wd2" hR="hd2" stAng="cd4" swAng="cd4" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </teardrop>\r
+  <trapezoid>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 25000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj" fmla="*/ 50000 w ss" />\r
+      <gd name="a" fmla="pin 0 adj maxAdj" />\r
+      <gd name="x1" fmla="*/ ss a 200000" />\r
+      <gd name="x2" fmla="*/ ss a 100000" />\r
+      <gd name="x3" fmla="+- r 0 x2" />\r
+      <gd name="x4" fmla="+- r 0 x1" />\r
+      <gd name="il" fmla="*/ wd3 a maxAdj" />\r
+      <gd name="it" fmla="*/ hd3 a maxAdj" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="maxAdj">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x4" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </trapezoid>\r
+  <triangle>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 100000" />\r
+      <gd name="x1" fmla="*/ w a 200000" />\r
+      <gd name="x2" fmla="*/ w a 100000" />\r
+      <gd name="x3" fmla="+- x1 wd2 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj" minX="0" maxX="100000">\r
+        <pos x="x2" y="t" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="x2" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="l" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x2" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="r" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x3" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="vc" r="x3" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </triangle>\r
+  <upArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 64977" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 100000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss h" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ h a4 100000" />\r
+\r
+      <gd name="y2" fmla="+- b 0 dy2" />\r
+      <gd name="y3" fmla="+/ y2 b 2" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </upArrowCallout>\r
+  <upArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="y2" fmla="*/ ss a2 100000" />\r
+      <gd name="y3" fmla="+- b 0 y2" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </upArrow>\r
+  <upDownArrow>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 50000" />\r
+      <gd name="adj2" fmla="val 50000" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 h ss" />\r
+      <gd name="a1" fmla="pin 0 adj1 100000" />\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="y2" fmla="*/ ss a2 100000" />\r
+      <gd name="y3" fmla="+- b 0 y2" />\r
+      <gd name="dx1" fmla="*/ w a1 200000" />\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc dx1 0" />\r
+      <gd name="dy1" fmla="*/ x1 y2 wd2" />\r
+      <gd name="y1" fmla="+- y2 0 dy1" />\r
+      <gd name="y4" fmla="+- y3 dy1 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="100000">\r
+        <pos x="x1" y="y3" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj2" minY="0" maxY="maxAdj2">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y2" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="y3" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y3" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x2" y="vc" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y2" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="x1" t="y1" r="x2" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y2" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </upDownArrow>\r
+  <upDownArrowCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 48123" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="maxAdj2" fmla="*/ 50000 w ss" />\r
+\r
+      <gd name="a2" fmla="pin 0 adj2 maxAdj2" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="maxAdj3" fmla="*/ 50000 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q2" fmla="*/ a3 ss hd2" />\r
+\r
+      <gd name="maxAdj4" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+      <gd name="dx1" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="dx2" fmla="*/ ss a1 200000" />\r
+\r
+      <gd name="x1" fmla="+- hc 0 dx1" />\r
+      <gd name="x2" fmla="+- hc 0 dx2" />\r
+      <gd name="x3" fmla="+- hc dx2 0" />\r
+      <gd name="x4" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="dy2" fmla="*/ h a4 200000" />\r
+\r
+      <gd name="y2" fmla="+- vc 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- vc dy2 0" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="x2" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="maxAdj2">\r
+        <pos x="x1" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="r" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj4" minY="0" maxY="maxAdj4">\r
+        <pos x="l" y="y2" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="y2" r="r" b="y3" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="y2" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x3" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x4" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="hc" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y3" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </upDownArrowCallout>\r
+  <uturnArrow>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 25000" />\r
+\r
+      <gd name="adj2" fmla="val 25000" />\r
+\r
+      <gd name="adj3" fmla="val 25000" />\r
+\r
+      <gd name="adj4" fmla="val 43750" />\r
+\r
+      <gd name="adj5" fmla="val 75000" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a2" fmla="pin 0 adj2 25000" />\r
+      <gd name="maxAdj1" fmla="*/ a2 2 1" />\r
+      <gd name="a1" fmla="pin 0 adj1 maxAdj1" />\r
+      <gd name="q2" fmla="*/ a1 ss h" />\r
+\r
+      <gd name="q3" fmla="+- 100000 0 q2" />\r
+\r
+      <gd name="maxAdj3" fmla="*/ q3 h ss" />\r
+\r
+      <gd name="a3" fmla="pin 0 adj3 maxAdj3" />\r
+      <gd name="q1" fmla="+- a3 a1 0" />\r
+      <gd name="minAdj5" fmla="*/ q1 ss h" />\r
+      <gd name="a5" fmla="pin minAdj5 adj5 100000" />\r
+      <gd name="th" fmla="*/ ss a1 100000" />\r
+\r
+      <gd name="aw2" fmla="*/ ss a2 100000" />\r
+\r
+      <gd name="th2" fmla="*/ th 1 2" />\r
+      <gd name="dh2" fmla="+- aw2 0 th2" />\r
+\r
+      <gd name="y5" fmla="*/ h a5 100000" />\r
+\r
+      <gd name="ah" fmla="*/ ss a3 100000" />\r
+\r
+      <gd name="y4" fmla="+- y5 0 ah" />\r
+      <gd name="x9" fmla="+- r 0 dh2" />\r
+\r
+      <gd name="bw" fmla="*/ x9 1 2" />\r
+      <gd name="bs" fmla="min bw y4" />\r
+      <gd name="maxAdj4" fmla="*/ bs 100000 ss" />\r
+      <gd name="a4" fmla="pin 0 adj4 maxAdj4" />\r
+\r
+\r
+      <gd name="bd" fmla="*/ ss a4 100000" />\r
+\r
+\r
+\r
+      <gd name="bd3" fmla="+- bd 0 th" />\r
+      <gd name="bd2" fmla="max bd3 0" />\r
+      <gd name="x3" fmla="+- th bd2 0" />\r
+\r
+      <gd name="x8" fmla="+- r 0 aw2" />\r
+\r
+      <gd name="x6" fmla="+- x8 0 aw2" />\r
+\r
+      <gd name="x7" fmla="+- x6 dh2 0" />\r
+\r
+      <gd name="x4" fmla="+- x9 0 bd" />\r
+\r
+      <gd name="x5" fmla="+- x7 0 bd2" />\r
+\r
+      <gd name="cx" fmla="+/ th x7 2" />\r
+\r
+\r
+\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="0" maxX="maxAdj1">\r
+        <pos x="th" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="0" maxX="25000">\r
+        <pos x="x6" y="b" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj3" minY="0" maxY="maxAdj3">\r
+        <pos x="x6" y="y4" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj4" minX="0" maxX="maxAdj4">\r
+        <pos x="bd" y="t" />\r
+      </ahXY>\r
+      <ahXY gdRefY="adj5" minY="minAdj5" maxY="100000">\r
+        <pos x="r" y="y5" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="x6" y="y4" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="x8" y="y5" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="y4" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="cx" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="th2" y="b" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="b" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="l" y="bd" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x4" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="bd" hR="bd" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x9" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x8" y="y5" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="y4" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x7" y="x3" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="0" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="x3" y="th" />\r
+        </lnTo>\r
+        <arcTo wR="bd2" hR="bd2" stAng="3cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="th" y="b" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </uturnArrow>\r
+  <verticalScroll>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj" fmla="val 12500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a" fmla="pin 0 adj 25000" />\r
+      <gd name="ch" fmla="*/ ss a 100000" />\r
+\r
+      <gd name="ch2" fmla="*/ ch 1 2" />\r
+\r
+      <gd name="ch4" fmla="*/ ch 1 4" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="x3" fmla="+- ch ch2 0" />\r
+\r
+      <gd name="x4" fmla="+- ch ch 0" />\r
+\r
+      <gd name="x6" fmla="+- r 0 ch" />\r
+\r
+      <gd name="x7" fmla="+- r 0 ch2" />\r
+\r
+      <gd name="x5" fmla="+- x6 0 ch2" />\r
+\r
+\r
+\r
+\r
+\r
+      <gd name="y3" fmla="+- b 0 ch" />\r
+\r
+      <gd name="y4" fmla="+- b 0 ch2" />\r
+\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj" minY="0" maxY="25000">\r
+        <pos x="l" y="ch" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="ch" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x6" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="ch" t="ch" r="x6" b="y4" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="ch2" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="-10800000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y3" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="ch" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x7" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x4" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="darkenLess" stroke="false" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="x4" y="ch2" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="ch" y="y4" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="3cd4" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
+        <close />\r
+      </path>\r
+      <path fill="none" extrusionOk="false">\r
+\r
+        <moveTo>\r
+          <pt x="ch" y="y3" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="ch" y="ch2" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x7" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x6" y="ch" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x6" y="y4" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="ch2" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="cd2" />\r
+        <close />\r
+        <moveTo>\r
+          <pt x="x3" y="t" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="3cd4" swAng="cd2" />\r
+        <arcTo wR="ch4" hR="ch4" stAng="cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="x4" y="ch2" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="x6" y="ch" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x3" y="ch" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ch2" y="y3" />\r
+        </moveTo>\r
+        <arcTo wR="ch4" hR="ch4" stAng="3cd4" swAng="cd2" />\r
+        <lnTo>\r
+          <pt x="ch" y="y4" />\r
+        </lnTo>\r
+        <moveTo>\r
+          <pt x="ch2" y="b" />\r
+        </moveTo>\r
+        <arcTo wR="ch2" hR="ch2" stAng="cd4" swAng="-5400000" />\r
+        <lnTo>\r
+          <pt x="ch" y="y3" />\r
+        </lnTo>\r
+      </path>\r
+    </pathLst>\r
+\r
+  </verticalScroll>\r
+  <wave>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val 12500" />\r
+\r
+      <gd name="adj2" fmla="val 0" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="a1" fmla="pin 0 adj1 20000" />\r
+      <gd name="a2" fmla="pin -10000 adj2 10000" />\r
+      <gd name="y1" fmla="*/ h a1 100000" />\r
+\r
+      <gd name="dy2" fmla="*/ y1 10 3" />\r
+      <gd name="y2" fmla="+- y1 0 dy2" />\r
+\r
+      <gd name="y3" fmla="+- y1 dy2 0" />\r
+\r
+      <gd name="y4" fmla="+- b 0 y1" />\r
+\r
+      <gd name="y5" fmla="+- y4 0 dy2" />\r
+\r
+      <gd name="y6" fmla="+- y4 dy2 0" />\r
+\r
+      <gd name="dx1" fmla="*/ w a2 100000" />\r
+\r
+      <gd name="of2" fmla="*/ w a2 50000" />\r
+\r
+      <gd name="x1" fmla="abs dx1" />\r
+\r
+      <gd name="dx2" fmla="?: of2 0 of2" />\r
+      <gd name="x2" fmla="+- l 0 dx2" />\r
+\r
+      <gd name="dx5" fmla="?: of2 of2 0" />\r
+      <gd name="x5" fmla="+- r 0 dx5" />\r
+\r
+      <gd name="dx3" fmla="+/ dx2 x5 3" />\r
+\r
+      <gd name="x3" fmla="+- x2 dx3 0" />\r
+\r
+      <gd name="x4" fmla="+/ x3 x5 2" />\r
+\r
+      <gd name="x6" fmla="+- l dx5 0" />\r
+\r
+      <gd name="x10" fmla="+- r dx2 0" />\r
+\r
+      <gd name="x7" fmla="+- x6 dx3 0" />\r
+\r
+      <gd name="x8" fmla="+/ x7 x10 2" />\r
+\r
+      <gd name="x9" fmla="+- r 0 x1" />\r
+\r
+      <gd name="xAdj" fmla="+- hc dx1 0" />\r
+      <gd name="xAdj2" fmla="+- hc 0 dx1" />\r
+      <gd name="il" fmla="max x2 x6" />\r
+      <gd name="ir" fmla="min x5 x10" />\r
+      <gd name="it" fmla="*/ h a1 50000" />\r
+      <gd name="ib" fmla="+- b 0 it" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefY="adj1" minY="0" maxY="20000">\r
+        <pos x="l" y="y1" />\r
+      </ahXY>\r
+      <ahXY gdRefX="adj2" minX="-10000" maxX="10000">\r
+        <pos x="xAdj" y="b" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="cd4">\r
+        <pos x="xAdj2" y="y1" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="x1" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="xAdj" y="y4" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="x9" y="vc" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="x2" y="y1" />\r
+        </moveTo>\r
+        <cubicBezTo>\r
+          <pt x="x3" y="y2" />\r
+          <pt x="x4" y="y3" />\r
+          <pt x="x5" y="y1" />\r
+        </cubicBezTo>\r
+        <lnTo>\r
+          <pt x="x10" y="y4" />\r
+        </lnTo>\r
+        <cubicBezTo>\r
+          <pt x="x8" y="y6" />\r
+          <pt x="x7" y="y5" />\r
+          <pt x="x6" y="y4" />\r
+        </cubicBezTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </wave>\r
+  <wedgeEllipseCallout>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+      <gd name="adj2" fmla="val 62500" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="sdx" fmla="*/ dxPos h 1" />\r
+      <gd name="sdy" fmla="*/ dyPos w 1" />\r
+      <gd name="pang" fmla="at2 sdx sdy" />\r
+      <gd name="stAng" fmla="+- pang 660000 0" />\r
+      <gd name="enAng" fmla="+- pang 0 660000" />\r
+      <gd name="dx1" fmla="cos wd2 stAng" />\r
+      <gd name="dy1" fmla="sin hd2 stAng" />\r
+      <gd name="x1" fmla="+- hc dx1 0" />\r
+      <gd name="y1" fmla="+- vc dy1 0" />\r
+      <gd name="dx2" fmla="cos wd2 enAng" />\r
+      <gd name="dy2" fmla="sin hd2 enAng" />\r
+      <gd name="x2" fmla="+- hc dx2 0" />\r
+      <gd name="y2" fmla="+- vc dy2 0" />\r
+      <gd name="stAng1" fmla="at2 dx1 dy1" />\r
+      <gd name="enAng1" fmla="at2 dx2 dy2" />\r
+      <gd name="swAng1" fmla="+- enAng1 0 stAng1" />\r
+      <gd name="swAng2" fmla="+- swAng1 21600000 0" />\r
+      <gd name="swAng" fmla="?: swAng1 swAng1 swAng2" />\r
+      <gd name="idx" fmla="cos wd2 2700000" />\r
+      <gd name="idy" fmla="sin hd2 2700000" />\r
+      <gd name="il" fmla="+- hc 0 idx" />\r
+      <gd name="ir" fmla="+- hc idx 0" />\r
+      <gd name="it" fmla="+- vc 0 idy" />\r
+      <gd name="ib" fmla="+- vc idy 0" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="il" y="it" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="il" y="ib" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="ir" y="ib" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="3cd4">\r
+        <pos x="ir" y="it" />\r
+      </cxn>\r
+      <cxn ang="pang">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="it" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="xPos" y="yPos" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="y1" />\r
+        </lnTo>\r
+        <arcTo wR="wd2" hR="hd2" stAng="stAng1" swAng="swAng" />\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </wedgeEllipseCallout>\r
+  <wedgeRectCallout>\r
+\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+\r
+      <gd name="adj2" fmla="val 62500" />\r
+\r
+    </avLst>\r
+\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="dx" fmla="+- xPos 0 hc" />\r
+      <gd name="dy" fmla="+- yPos 0 vc" />\r
+      <gd name="dq" fmla="*/ dxPos h w" />\r
+      <gd name="ady" fmla="abs dyPos" />\r
+      <gd name="adq" fmla="abs dq" />\r
+      <gd name="dz" fmla="+- ady 0 adq" />\r
+      <gd name="xg1" fmla="?: dxPos 7 2" />\r
+      <gd name="xg2" fmla="?: dxPos 10 5" />\r
+      <gd name="x1" fmla="*/ w xg1 12" />\r
+      <gd name="x2" fmla="*/ w xg2 12" />\r
+      <gd name="yg1" fmla="?: dyPos 7 2" />\r
+      <gd name="yg2" fmla="?: dyPos 10 5" />\r
+      <gd name="y1" fmla="*/ h yg1 12" />\r
+      <gd name="y2" fmla="*/ h yg2 12" />\r
+      <gd name="t1" fmla="?: dxPos l xPos" />\r
+      <gd name="xl" fmla="?: dz l t1" />\r
+      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
+      <gd name="xt" fmla="?: dz t2 x1" />\r
+      <gd name="t3" fmla="?: dxPos xPos r" />\r
+      <gd name="xr" fmla="?: dz r t3" />\r
+      <gd name="t4" fmla="?: dyPos xPos x1" />\r
+      <gd name="xb" fmla="?: dz t4 x1" />\r
+      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
+      <gd name="yl" fmla="?: dz y1 t5" />\r
+      <gd name="t6" fmla="?: dyPos t yPos" />\r
+      <gd name="yt" fmla="?: dz t6 t" />\r
+      <gd name="t7" fmla="?: dxPos yPos y1" />\r
+      <gd name="yr" fmla="?: dz y1 t7" />\r
+      <gd name="t8" fmla="?: dyPos yPos b" />\r
+      <gd name="yb" fmla="?: dz t8 b" />\r
+    </gdLst>\r
+\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+\r
+    <rect l="l" t="t" r="r" b="b" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="t" />\r
+        </moveTo>\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xt" y="yt" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xr" y="yr" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xb" y="yb" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xl" y="yl" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+\r
+  </wedgeRectCallout>\r
+  <wedgeRoundRectCallout>\r
+    <avLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="adj1" fmla="val -20833" />\r
+      <gd name="adj2" fmla="val 62500" />\r
+      <gd name="adj3" fmla="val 16667" />\r
+    </avLst>\r
+    <gdLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <gd name="dxPos" fmla="*/ w adj1 100000" />\r
+      <gd name="dyPos" fmla="*/ h adj2 100000" />\r
+      <gd name="xPos" fmla="+- hc dxPos 0" />\r
+      <gd name="yPos" fmla="+- vc dyPos 0" />\r
+      <gd name="dq" fmla="*/ dxPos h w" />\r
+      <gd name="ady" fmla="abs dyPos" />\r
+      <gd name="adq" fmla="abs dq" />\r
+      <gd name="dz" fmla="+- ady 0 adq" />\r
+      <gd name="xg1" fmla="?: dxPos 7 2" />\r
+      <gd name="xg2" fmla="?: dxPos 10 5" />\r
+      <gd name="x1" fmla="*/ w xg1 12" />\r
+      <gd name="x2" fmla="*/ w xg2 12" />\r
+      <gd name="yg1" fmla="?: dyPos 7 2" />\r
+      <gd name="yg2" fmla="?: dyPos 10 5" />\r
+      <gd name="y1" fmla="*/ h yg1 12" />\r
+      <gd name="y2" fmla="*/ h yg2 12" />\r
+      <gd name="t1" fmla="?: dxPos l xPos" />\r
+      <gd name="xl" fmla="?: dz l t1" />\r
+      <gd name="t2" fmla="?: dyPos x1 xPos" />\r
+      <gd name="xt" fmla="?: dz t2 x1" />\r
+      <gd name="t3" fmla="?: dxPos xPos r" />\r
+      <gd name="xr" fmla="?: dz r t3" />\r
+      <gd name="t4" fmla="?: dyPos xPos x1" />\r
+      <gd name="xb" fmla="?: dz t4 x1" />\r
+      <gd name="t5" fmla="?: dxPos y1 yPos" />\r
+      <gd name="yl" fmla="?: dz y1 t5" />\r
+      <gd name="t6" fmla="?: dyPos t yPos" />\r
+      <gd name="yt" fmla="?: dz t6 t" />\r
+      <gd name="t7" fmla="?: dxPos yPos y1" />\r
+      <gd name="yr" fmla="?: dz y1 t7" />\r
+      <gd name="t8" fmla="?: dyPos yPos b" />\r
+      <gd name="yb" fmla="?: dz t8 b" />\r
+      <gd name="u1" fmla="*/ ss adj3 100000" />\r
+      <gd name="u2" fmla="+- r 0 u1" />\r
+      <gd name="v2" fmla="+- b 0 u1" />\r
+      <gd name="il" fmla="*/ u1 29289 100000" />\r
+      <gd name="ir" fmla="+- r 0 il" />\r
+      <gd name="ib" fmla="+- b 0 il" />\r
+    </gdLst>\r
+    <ahLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <ahXY gdRefX="adj1" minX="-2147483647" maxX="2147483647" gdRefY="adj2" minY="-2147483647" maxY="2147483647">\r
+        <pos x="xPos" y="yPos" />\r
+      </ahXY>\r
+    </ahLst>\r
+    <cxnLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <cxn ang="3cd4">\r
+        <pos x="hc" y="t" />\r
+      </cxn>\r
+      <cxn ang="cd2">\r
+        <pos x="l" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="hc" y="b" />\r
+      </cxn>\r
+      <cxn ang="0">\r
+        <pos x="r" y="vc" />\r
+      </cxn>\r
+      <cxn ang="cd4">\r
+        <pos x="xPos" y="yPos" />\r
+      </cxn>\r
+    </cxnLst>\r
+    <rect l="il" t="il" r="ir" b="ib" xmlns="http://schemas.openxmlformats.org/drawingml/2006/main" />\r
+    <pathLst xmlns="http://schemas.openxmlformats.org/drawingml/2006/main">\r
+      <path>\r
+        <moveTo>\r
+          <pt x="l" y="u1" />\r
+        </moveTo>\r
+        <arcTo wR="u1" hR="u1" stAng="cd2" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x1" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xt" y="yt" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x2" y="t" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="u2" y="t" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="3cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="r" y="y1" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xr" y="yr" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="r" y="v2" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="0" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="x2" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xb" y="yb" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="x1" y="b" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="u1" y="b" />\r
+        </lnTo>\r
+        <arcTo wR="u1" hR="u1" stAng="cd4" swAng="cd4" />\r
+        <lnTo>\r
+          <pt x="l" y="y2" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="xl" y="yl" />\r
+        </lnTo>\r
+        <lnTo>\r
+          <pt x="l" y="y1" />\r
+        </lnTo>\r
+        <close />\r
+      </path>\r
+    </pathLst>\r
+  </wedgeRoundRectCallout>\r
+</presetShapeDefinitons>\r
index 525f673c3eeac8fa0f5b35d412ab291e08859880..8036695285f50be0bfccc3901cb2825169f9b6b8 100644 (file)
@@ -34,6 +34,8 @@ import org.apache.poi.hslf.record.ExObjList;
 import org.apache.poi.hslf.record.OEShapeAtom;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.StringUtil;
 
@@ -63,7 +65,7 @@ public final class ActiveXShape extends Picture {
       *        this picture in the <code>Slide</code>
       * @param parent the parent shape of this picture
       */
-     protected ActiveXShape(EscherContainerRecord escherRecord, Shape parent){
+     protected ActiveXShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
@@ -78,7 +80,7 @@ public final class ActiveXShape extends Picture {
         EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
         spRecord.setFlags(EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_HASSHAPETYPE | EscherSpRecord.FLAG_OLESHAPE);
 
-        setShapeType(ShapeTypes.HostControl);
+        setShapeType(ShapeType.HOST_CONTROL);
         setEscherProperty(EscherProperties.BLIP__PICTUREID, idx);
         setEscherProperty(EscherProperties.LINESTYLE__COLOR, 0x8000001);
         setEscherProperty(EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x80008);
index 1b8e7dde688614368b595382e62248a40151ce29..ccb302d7158172f5c91552c2297b7cabd8c4b002 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.POILogger;
 
 import java.awt.geom.Rectangle2D;
@@ -33,20 +35,20 @@ import java.awt.geom.Rectangle2D;
  */
 public class AutoShape extends TextShape {
 
-    protected AutoShape(EscherContainerRecord escherRecord, Shape parent){
+    protected AutoShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
-    public AutoShape(int type, Shape parent){
+    public AutoShape(ShapeType type, ShapeContainer<Shape> parent){
         super(null, parent);
         _escherContainer = createSpContainer(type, parent instanceof ShapeGroup);
     }
 
-    public AutoShape(int type){
+    public AutoShape(ShapeType type){
         this(type, null);
     }
 
-    protected EscherContainerRecord createSpContainer(int shapeType, boolean isChild){
+    protected EscherContainerRecord createSpContainer(ShapeType shapeType, boolean isChild){
         _escherContainer = super.createSpContainer(isChild);
 
         setShapeType(shapeType);
@@ -110,7 +112,7 @@ public class AutoShape extends TextShape {
         ShapeOutline outline = AutoShapes.getShapeOutline(getShapeType());
         Rectangle2D anchor = getLogicalAnchor2D();
         if(outline == null){
-            logger.log(POILogger.WARN, "Outline not found for " + ShapeTypes.typeName(getShapeType()));
+            logger.log(POILogger.WARN, "Outline not found for " + getShapeType().nativeName);
             return anchor;
         }
         java.awt.Shape shape = outline.getOutline(this);
index 02b20fbe2a7b538d7a8e8118988a3dc6f3b82f1f..25a68dfcd891694e44bfcfe719d98f4f37d95ae3 100644 (file)
@@ -26,6 +26,7 @@ import java.awt.geom.Rectangle2D;
 import java.awt.geom.RoundRectangle2D;
 
 import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 /**
  * Stores definition of auto-shapes.
@@ -45,8 +46,8 @@ public final class AutoShapes {
      *
      * @return the shape outline
      */
-    public static ShapeOutline getShapeOutline(int type){
-        ShapeOutline outline = shapes[type];
+    public static ShapeOutline getShapeOutline(ShapeType type){
+        ShapeOutline outline = shapes[type.nativeId];
         return outline;
     }
 
@@ -68,14 +69,14 @@ public final class AutoShapes {
     static {
         shapes = new ShapeOutline[255];
 
-        shapes[ShapeTypes.Rectangle] = new ShapeOutline(){
+        shapes[ShapeType.RECT.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 Rectangle2D path = new Rectangle2D.Float(0, 0, 21600, 21600);
                 return path;
             }
         };
 
-        shapes[ShapeTypes.RoundRectangle] = new ShapeOutline(){
+        shapes[ShapeType.ROUND_RECT.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
                 RoundRectangle2D path = new RoundRectangle2D.Float(0, 0, 21600, 21600, adjval, adjval);
@@ -83,14 +84,14 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Ellipse] = new ShapeOutline(){
+        shapes[ShapeType.ELLIPSE.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 Ellipse2D path = new Ellipse2D.Float(0, 0, 21600, 21600);
                 return path;
             }
         };
 
-        shapes[ShapeTypes.Diamond] = new ShapeOutline(){
+        shapes[ShapeType.DIAMOND.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 GeneralPath path = new GeneralPath();
                 path.moveTo(10800, 0);
@@ -103,7 +104,7 @@ public final class AutoShapes {
         };
 
         //m@0,l,21600r21600
-        shapes[ShapeTypes.IsocelesTriangle] = new ShapeOutline(){
+        shapes[ShapeType.TRIANGLE.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 10800);
                 GeneralPath path = new GeneralPath();
@@ -115,7 +116,7 @@ public final class AutoShapes {
            }
         };
 
-        shapes[ShapeTypes.RightTriangle] = new ShapeOutline(){
+        shapes[ShapeType.RT_TRIANGLE.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 GeneralPath path = new GeneralPath();
                 path.moveTo(0, 0);
@@ -126,7 +127,7 @@ public final class AutoShapes {
            }
         };
 
-        shapes[ShapeTypes.Parallelogram] = new ShapeOutline(){
+        shapes[ShapeType.PARALLELOGRAM.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
 
@@ -140,7 +141,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Trapezoid] = new ShapeOutline(){
+        shapes[ShapeType.TRAPEZOID.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
 
@@ -154,7 +155,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Hexagon] = new ShapeOutline(){
+        shapes[ShapeType.HEXAGON.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
 
@@ -170,7 +171,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Octagon] = new ShapeOutline(){
+        shapes[ShapeType.OCTAGON.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 6326);
 
@@ -188,7 +189,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Plus] = new ShapeOutline(){
+        shapes[ShapeType.PLUS.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
 
@@ -210,7 +211,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Pentagon] = new ShapeOutline(){
+        shapes[ShapeType.PENTAGON.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
 
                 GeneralPath path = new GeneralPath();
@@ -224,7 +225,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.DownArrow] = new ShapeOutline(){
+        shapes[ShapeType.DOWN_ARROW.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m0@0 l@1@0 @1,0 @2,0 @2@0,21600@0,10800,21600xe
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 16200);
@@ -242,7 +243,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.UpArrow] = new ShapeOutline(){
+        shapes[ShapeType.UP_ARROW.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m0@0 l@1@0 @1,21600@2,21600@2@0,21600@0,10800,xe
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
@@ -260,7 +261,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Arrow] = new ShapeOutline(){
+        shapes[ShapeType.RIGHT_ARROW.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m@0, l@0@1 ,0@1,0@2@0@2@0,21600,21600,10800xe
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 16200);
@@ -278,7 +279,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.LeftArrow] = new ShapeOutline(){
+        shapes[ShapeType.LEFT_ARROW.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m@0, l@0@1,21600@1,21600@2@0@2@0,21600,,10800xe
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
@@ -296,7 +297,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.Can] = new ShapeOutline(){
+        shapes[ShapeType.CAN.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m10800,qx0@1l0@2qy10800,21600,21600@2l21600@1qy10800,xem0@1qy10800@0,21600@1nfe
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 5400);
@@ -320,7 +321,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.LeftBrace] = new ShapeOutline(){
+        shapes[ShapeType.LEFT_BRACE.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m21600,qx10800@0l10800@2qy0@11,10800@3l10800@1qy21600,21600e
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 1800);
@@ -348,7 +349,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.RightBrace] = new ShapeOutline(){
+        shapes[ShapeType.RIGHT_BRACE.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 //m,qx10800@0 l10800@2qy21600@11,10800@3l10800@1qy,21600e
                 int adjval = shape.getEscherProperty(EscherProperties.GEOMETRY__ADJUSTVALUE, 1800);
@@ -376,7 +377,7 @@ public final class AutoShapes {
             }
         };
 
-        shapes[ShapeTypes.StraightConnector1] = new ShapeOutline(){
+        shapes[ShapeType.STRAIGHT_CONNECTOR_1.nativeId] = new ShapeOutline(){
             public java.awt.Shape getOutline(Shape shape){
                 return new Line2D.Float(0, 0, 21600, 21600);
             }
index 531f2da191b9ce82b897caa74f37df4038de8841..12070cdf625da10344a1e9b0746a8503b70ccdaf 100644 (file)
 
 package org.apache.poi.hslf.model;
 
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics2D;
+import java.awt.Image;
+import java.awt.Rectangle;
+import java.awt.image.BufferedImage;
+import java.io.ByteArrayInputStream;
+
+import javax.imageio.ImageIO;
+
 import org.apache.poi.ddf.EscherContainerRecord;
-import org.apache.poi.hslf.usermodel.PictureData;
 import org.apache.poi.hslf.blip.Bitmap;
+import org.apache.poi.hslf.usermodel.PictureData;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.POILogger;
 
-import javax.imageio.ImageIO;
-import java.awt.*;
-import java.awt.image.BufferedImage;
-import java.io.ByteArrayInputStream;
-
 /**
  * Background shape
  *
@@ -34,7 +40,7 @@ import java.io.ByteArrayInputStream;
  */
 public final class Background extends Shape {
 
-    protected Background(EscherContainerRecord escherRecord, Shape parent) {
+    protected Background(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent) {
         super(escherRecord, parent);
     }
 
index 82f46b5e1cc92500c724b93077a046fd6283c073..187bfd0ca2d1db4238b88c6e147f1d55a295afaf 100644 (file)
@@ -31,6 +31,8 @@ import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherOptRecord;
 import org.apache.poi.ddf.EscherProperties;
 import org.apache.poi.ddf.EscherSimpleProperty;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogger;
 
@@ -60,7 +62,7 @@ public final class Freeform extends AutoShape {
      * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent    the parent of the shape
      */
-   protected Freeform(EscherContainerRecord escherRecord, Shape parent){
+   protected Freeform(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
 
     }
@@ -71,9 +73,9 @@ public final class Freeform extends AutoShape {
      * @param parent    the parent of this Shape. For example, if this text box is a cell
      * in a table then the parent is Table.
      */
-    public Freeform(Shape parent){
-        super(null, parent);
-        _escherContainer = createSpContainer(ShapeTypes.NotPrimitive, parent instanceof ShapeGroup);
+    public Freeform(ShapeContainer<Shape> parent){
+        super((EscherContainerRecord)null, parent);
+        _escherContainer = createSpContainer(ShapeType.NOT_PRIMITIVE, parent instanceof ShapeGroup);
     }
 
     /**
index fbdd2e7aee156ee79e788522758fb282d9210c82..d317b6ad56fb48962451dc1142da8a4bbb5986c5 100644 (file)
@@ -152,7 +152,7 @@ public final class Hyperlink {
      * @return found hyperlinks or <code>null</code> if not found
      */
     protected static Hyperlink[] find(TextRun run){
-        ArrayList lst = new ArrayList();
+        List<Hyperlink> lst = new ArrayList<Hyperlink>();
         SlideShow ppt = run.getSheet().getSlideShow();
         //document-level container which stores info about all links in a presentation
         ExObjList exobj = ppt.getDocumentRecord().getExObjList();
@@ -177,7 +177,7 @@ public final class Hyperlink {
      * @return found hyperlink or <code>null</code>
      */
     protected static Hyperlink find(Shape shape){
-        ArrayList lst = new ArrayList();
+        List<Hyperlink> lst = new ArrayList<Hyperlink>();
         SlideShow ppt = shape.getSheet().getSlideShow();
         //document-level container which stores info about all links in a presentation
         ExObjList exobj = ppt.getDocumentRecord().getExObjList();
@@ -198,7 +198,7 @@ public final class Hyperlink {
         return lst.size() == 1 ? (Hyperlink)lst.get(0) : null;
     }
 
-    private static void find(Record[] records, ExObjList exobj, List out){
+    private static void find(Record[] records, ExObjList exobj, List<Hyperlink> out){
         for (int i = 0; i < records.length; i++) {
             //see if we have InteractiveInfo in the textrun's records
             if( records[i] instanceof InteractiveInfo){
index 2a23d2481963a171ce7205191506de5d581cdd18..3c078ec5a0bc491be9c58fd09483f289622a78a8 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 import java.awt.geom.Rectangle2D;
 import java.awt.geom.Line2D;
@@ -95,11 +97,11 @@ public final class Line extends SimpleShape {
     public static final int LINE_TRIPLE = 4;
 
 
-    protected Line(EscherContainerRecord escherRecord, Shape parent){
+    protected Line(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
-    public Line(Shape parent){
+    public Line(ShapeContainer<Shape> parent){
         super(null, parent);
         _escherContainer = createSpContainer(parent instanceof ShapeGroup);
     }
@@ -112,7 +114,7 @@ public final class Line extends SimpleShape {
         _escherContainer = super.createSpContainer(isChild);
 
         EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
-        short type = (ShapeTypes.Line << 4) | 0x2;
+        short type = (short)((ShapeType.LINE.nativeId << 4) | 0x2);
         spRecord.setOptions(type);
 
         //set default properties for a line
index 93e8a124fcf21301ca0a9aeaacfc9d044e88f76a..6b5225e9252c1f7676a4281064837104edd4fd16 100644 (file)
@@ -25,6 +25,7 @@ import org.apache.poi.ddf.EscherProperties;
 import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.hslf.record.*;
 import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 
 /**
  * Represents a movie in a PowerPoint document.
@@ -54,7 +55,7 @@ public final class MovieShape extends Picture {
      * @param idx the index of the picture
      * @param parent the parent shape
      */
-    public MovieShape(int movieIdx, int idx, Shape parent) {
+    public MovieShape(int movieIdx, int idx, ShapeContainer<Shape> parent) {
         super(idx, parent);
         setMovieIndex(movieIdx);
     }
@@ -66,7 +67,7 @@ public final class MovieShape extends Picture {
       *        this picture in the <code>Slide</code>
       * @param parent the parent shape of this picture
       */
-     protected MovieShape(EscherContainerRecord escherRecord, Shape parent){
+     protected MovieShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
index 659b340e1c46eb9d202956829b812f36937f2927..c4e560a91f9b2dea03b7d1fd2851f8c8f12223c5 100644 (file)
@@ -24,6 +24,7 @@ import org.apache.poi.hslf.record.ExObjList;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.ExEmbed;
 import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogger;
 
@@ -51,7 +52,7 @@ public final class OLEShape extends Picture {
      * @param idx the index of the picture
      * @param parent the parent shape
      */
-    public OLEShape(int idx, Shape parent) {
+    public OLEShape(int idx, ShapeContainer<Shape> parent) {
         super(idx, parent);
     }
 
@@ -62,7 +63,7 @@ public final class OLEShape extends Picture {
       *        this picture in the <code>Slide</code>
       * @param parent the parent shape of this picture
       */
-     protected OLEShape(EscherContainerRecord escherRecord, Shape parent){
+     protected OLEShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
index 99acb335b5097cd83e1b36b03aed1d485f53ad8c..e592d77f8f3507a11d94edf4e51d59029708d15e 100644 (file)
@@ -1456,7 +1456,7 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
      * @param hints the rendering hints to be set
      * @see RenderingHints
      */
-    public void addRenderingHints(Map hints){
+    public void addRenderingHints(Map<?,?> hints){
         this._hints.putAll(hints);
     }
 
@@ -1581,8 +1581,9 @@ public final class PPGraphics2D extends Graphics2D implements Cloneable {
      * @param hints the rendering hints to be set
      * @see RenderingHints
      */
-    public void setRenderingHints(Map hints){
-        this._hints = new RenderingHints(hints);
+    public void setRenderingHints(Map<?,?> hints){
+        this._hints = new RenderingHints(null);
+        this._hints.putAll(hints);
     }
 
     /**
index eda9d25056ee1764cd261a77e26f17764faa96ea..f57ced0ac4cf7471b4300d2a2376c9c4c0a81077 100644 (file)
@@ -39,6 +39,8 @@ import org.apache.poi.hslf.blip.Bitmap;
 import org.apache.poi.hslf.record.Document;
 import org.apache.poi.hslf.usermodel.PictureData;
 import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.StringUtil;
 import org.apache.poi.util.Units;
@@ -96,7 +98,7 @@ public class Picture extends SimpleShape {
      * @param idx the index of the picture
      * @param parent the parent shape
      */
-    public Picture(int idx, Shape parent) {
+    public Picture(int idx, ShapeContainer<Shape> parent) {
         super(null, parent);
         _escherContainer = createSpContainer(idx, parent instanceof ShapeGroup);
     }
@@ -108,7 +110,7 @@ public class Picture extends SimpleShape {
       *        this picture in the <code>Slide</code>
       * @param parent the parent shape of this picture
       */
-     protected Picture(EscherContainerRecord escherRecord, Shape parent){
+     protected Picture(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
@@ -136,7 +138,7 @@ public class Picture extends SimpleShape {
         _escherContainer.setOptions((short)15);
 
         EscherSpRecord spRecord = _escherContainer.getChildById(EscherSpRecord.RECORD_ID);
-        spRecord.setOptions((short)((ShapeTypes.PictureFrame << 4) | 0x2));
+        spRecord.setOptions((short)((ShapeType.FRAME.nativeId << 4) | 0x2));
 
         //set default properties for a picture
         EscherOptRecord opt = getEscherOptRecord();
@@ -295,6 +297,6 @@ public class Picture extends SimpleShape {
         EscherSimpleProperty prop = getEscherProperty(opt, propertyId);
         if (prop == null) return 0;
         int fixedPoint = prop.getPropertyValue();
-        return Units.fixedPointToDecimal(fixedPoint);
+        return Units.fixedPointToDouble(fixedPoint);
     }
 }
\ No newline at end of file
index a3eb1b978df6ebd588d2c53c8138e201a9a82650..4b30c110e45408cc07ddef5c828b35e1cc4093bb 100644 (file)
@@ -20,6 +20,7 @@ package org.apache.poi.hslf.model;
 import org.apache.poi.ddf.*;
 import org.apache.poi.hslf.record.OEPlaceholderAtom;
 import org.apache.poi.hslf.exceptions.HSLFException;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 
 import java.io.ByteArrayOutputStream;
 
@@ -30,11 +31,11 @@ import java.io.ByteArrayOutputStream;
  */
 public final class Placeholder extends TextBox {
 
-    protected Placeholder(EscherContainerRecord escherRecord, Shape parent){
+    protected Placeholder(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
-    public Placeholder(Shape parent){
+    public Placeholder(ShapeContainer<Shape> parent){
         super(parent);
     }
 
index 09637a65eee87b246d7545def586dcdb622a5554..b7ea9c8356cd13ac33ba61858c740ea5229df31c 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.LittleEndian;
 
 import java.awt.geom.Point2D;
@@ -34,7 +36,7 @@ public final class Polygon extends AutoShape {
      * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent    the parent of the shape
      */
-   protected Polygon(EscherContainerRecord escherRecord, Shape parent){
+   protected Polygon(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
 
     }
@@ -45,9 +47,9 @@ public final class Polygon extends AutoShape {
      * @param parent    the parent of this Shape. For example, if this text box is a cell
      * in a table then the parent is Table.
      */
-    public Polygon(Shape parent){
-        super(null, parent);
-        _escherContainer = createSpContainer(ShapeTypes.NotPrimitive, parent instanceof ShapeGroup);
+    public Polygon(ShapeContainer<Shape> parent){
+        super((EscherContainerRecord)null, parent);
+        _escherContainer = createSpContainer(ShapeType.NOT_PRIMITIVE, parent instanceof ShapeGroup);
     }
 
     /**
index 4a136611ca7c0c00dd895329537c9b06c152be0e..67da50097f34a50488df38a2a5ca4e5009327da9 100644 (file)
@@ -19,6 +19,8 @@ package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
 import org.apache.poi.hslf.record.ColorSchemeAtom;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.POILogger;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.Units;
@@ -43,7 +45,7 @@ import java.awt.geom.Rectangle2D;
   *
   * @author Yegor Kozlov
  */
-public abstract class Shape {
+public abstract class Shape implements org.apache.poi.sl.usermodel.Shape<Shape> {
 
     // For logging
     protected POILogger logger = POILogFactory.getLogger(this.getClass());
@@ -83,7 +85,7 @@ public abstract class Shape {
      * Parent of this shape.
      * <code>null</code> for the topmost shapes.
      */
-    protected Shape _parent;
+    protected ShapeContainer<Shape> _parent;
 
     /**
      * The <code>Sheet</code> this shape belongs to
@@ -101,7 +103,7 @@ public abstract class Shape {
      * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent             the parent of this Shape
      */
-      protected Shape(EscherContainerRecord escherRecord, Shape parent){
+      protected Shape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         _escherContainer = escherRecord;
         _parent = parent;
      }
@@ -114,7 +116,7 @@ public abstract class Shape {
     /**
      *  @return the parent of this shape
      */
-    public Shape getParent(){
+    public ShapeContainer<Shape> getParent(){
         return _parent;
     }
 
@@ -122,25 +124,25 @@ public abstract class Shape {
      * @return name of the shape.
      */
     public String getShapeName(){
-        return ShapeTypes.typeName(getShapeType());
+        return getShapeType().nativeName;
     }
 
     /**
      * @return type of the shape.
      * @see org.apache.poi.hslf.record.RecordTypes
      */
-    public int getShapeType(){
+    public ShapeType getShapeType(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
-        return spRecord.getShapeType();
+        return ShapeType.forId(spRecord.getShapeType(), false);
     }
 
     /**
      * @param type type of the shape.
      * @see org.apache.poi.hslf.record.RecordTypes
      */
-    public void setShapeType(int type){
+    public void setShapeType(ShapeType type){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
-        spRecord.setShapeType( (short) type );
+        spRecord.setShapeType( (short) type.nativeId );
         spRecord.setVersion( (short) 0x2 );
     }
 
@@ -395,7 +397,7 @@ public abstract class Shape {
         EscherSimpleProperty op = getEscherProperty(opt, opacityProperty);
         int defaultOpacity = 0x00010000;
         int opacity = (op == null) ? defaultOpacity : op.getPropertyValue();
-        double alpha = Units.fixedPointToDecimal(opacity)*255.0;
+        double alpha = Units.fixedPointToDouble(opacity)*255.0;
         return new Color(rgb[0], rgb[1], rgb[2], (int)alpha);
     }
 
@@ -456,7 +458,7 @@ public abstract class Shape {
      * @return the hyperlink assigned to this shape
      * or <code>null</code> if not found.
      */
-     public Hyperlink getHyperlink(){
+    public Hyperlink getHyperlink(){
         return Hyperlink.find(this);
     }
 
@@ -477,44 +479,47 @@ public abstract class Shape {
         return getEscherChild(EscherOptRecord.RECORD_ID);
     }
     
-    /**
-     * Whether the shape is horizontally flipped
-     *
-     * @return whether the shape is horizontally flipped
-     */
-     public boolean getFlipHorizontal(){
+    @Override
+    public boolean getFlipHorizontal(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         return (spRecord.getFlags()& EscherSpRecord.FLAG_FLIPHORIZ) != 0;
     }
+     
+    @Override
+    public void setFlipHorizontal(boolean flip) {
+        EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
+        int flag = spRecord.getFlags() | EscherSpRecord.FLAG_FLIPHORIZ;
+        spRecord.setFlags(flag);
+    }
 
-    /**
-     * Whether the shape is vertically flipped
-     *
-     * @return whether the shape is vertically flipped
-     */
+    @Override
     public boolean getFlipVertical(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
         return (spRecord.getFlags()& EscherSpRecord.FLAG_FLIPVERT) != 0;
     }
+    
+    @Override
+    public void setFlipVertical(boolean flip) {
+        EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
+        int flag = spRecord.getFlags() | EscherSpRecord.FLAG_FLIPVERT;
+        spRecord.setFlags(flag);
+    }
 
-    /**
-     * Rotation angle in degrees
-     *
-     * @return rotation angle in degrees
-     */
-    public int getRotation(){
+    @Override
+    public double getRotation(){
         int rot = getEscherProperty(EscherProperties.TRANSFORM__ROTATION);
-        int angle = (rot >> 16) % 360;
-
+        double angle = Units.fixedPointToDouble(rot) % 360.0;
         return angle;
     }
+    
+    @Override
+    public void setRotation(double theta){
+        int rot = Units.doubleToFixedPoint(theta % 360.0);
+        setEscherProperty(EscherProperties.TRANSFORM__ROTATION, rot);
+    }
 
-    /**
-     * Rotate this shape
-     *
-     * @param theta the rotation angle in degrees
-     */
-    public void setRotation(int theta){
-        setEscherProperty(EscherProperties.TRANSFORM__ROTATION, (theta << 16));
+    @Override
+    public boolean isPlaceholder() {
+        return false;
     }
 }
index c3843c29117d6794c87d50f1d1eaef624215fe86..e9c2172649478a8ccbf84a673afc1d93d7ec907a 100644 (file)
@@ -34,6 +34,8 @@ import org.apache.poi.hslf.record.InteractiveInfoAtom;
 import org.apache.poi.hslf.record.OEShapeAtom;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
@@ -49,14 +51,14 @@ public final class ShapeFactory {
     /**
      * Create a new shape from the data provided.
      */
-    public static Shape createShape(EscherContainerRecord spContainer, Shape parent){
+    public static Shape createShape(EscherContainerRecord spContainer, ShapeContainer<Shape> parent){
         if (spContainer.getRecordId() == EscherContainerRecord.SPGR_CONTAINER){
             return createShapeGroup(spContainer, parent);
         }
         return createSimpeShape(spContainer, parent);
     }
 
-    public static ShapeGroup createShapeGroup(EscherContainerRecord spContainer, Shape parent){
+    public static ShapeGroup createShapeGroup(EscherContainerRecord spContainer, ShapeContainer<Shape> parent){
         ShapeGroup group = null;
         EscherRecord opt = Shape.getEscherChild((EscherContainerRecord)spContainer.getChild(0), (short)0xF122);
         if(opt != null){
@@ -80,17 +82,17 @@ public final class ShapeFactory {
         return group;
      }
 
-    public static Shape createSimpeShape(EscherContainerRecord spContainer, Shape parent){
+    public static Shape createSimpeShape(EscherContainerRecord spContainer, ShapeContainer<Shape> parent){
         Shape shape = null;
         EscherSpRecord spRecord = spContainer.getChildById(EscherSpRecord.RECORD_ID);
 
-        int type = spRecord.getShapeType();
+        ShapeType type = ShapeType.forId(spRecord.getShapeType(), false);
         switch (type){
-            case ShapeTypes.TextBox:
+            case TEXT_BOX:
                 shape = new TextBox(spContainer, parent);
                 break;
-            case ShapeTypes.HostControl:
-            case ShapeTypes.PictureFrame: {
+            case HOST_CONTROL:
+            case FRAME: {
                 InteractiveInfo info = getClientDataRecord(spContainer, RecordTypes.InteractiveInfo.typeID);
                 OEShapeAtom oes = getClientDataRecord(spContainer, RecordTypes.OEShapeAtom.typeID);
                 if(info != null && info.getInteractiveInfoAtom() != null){
@@ -111,10 +113,10 @@ public final class ShapeFactory {
                 if(shape == null) shape = new Picture(spContainer, parent);
                 break;
             }
-            case ShapeTypes.Line:
+            case LINE:
                 shape = new Line(spContainer, parent);
                 break;
-            case ShapeTypes.NotPrimitive: {
+            case NOT_PRIMITIVE: {
                 EscherOptRecord opt = Shape.getEscherChild(spContainer, EscherOptRecord.RECORD_ID);
                 EscherProperty prop = Shape.getEscherProperty(opt, EscherProperties.GEOMETRY__VERTICES);
                 if(prop != null)
index 796b248ac5c36efc7bf2a93e25deb03b245d73a2..f18701a0e414159b99c41b96fa61e5c6c420e6f6 100644 (file)
@@ -30,6 +30,8 @@ import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherRecord;
 import org.apache.poi.ddf.EscherSpRecord;
 import org.apache.poi.ddf.EscherSpgrRecord;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogger;
 
@@ -38,7 +40,7 @@ import org.apache.poi.util.POILogger;
  *
  * @author Yegor Kozlov
  */
-public class ShapeGroup extends Shape{
+public class ShapeGroup extends Shape implements ShapeContainer<Shape> {
 
     /**
       * Create a new ShapeGroup. This constructor is used when a new shape is created.
@@ -55,7 +57,7 @@ public class ShapeGroup extends Shape{
       * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
       * @param parent    the parent of the shape
       */
-    protected ShapeGroup(EscherContainerRecord escherRecord, Shape parent){
+    protected ShapeGroup(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
@@ -63,31 +65,7 @@ public class ShapeGroup extends Shape{
      * @return the shapes contained in this group container
      */
     public Shape[] getShapes() {
-       // Out escher container record should contain several
-        //  SpContainers, the first of which is the group shape itself
-        Iterator<EscherRecord> iter = _escherContainer.getChildIterator();
-
-        // Don't include the first SpContainer, it is always NotPrimitive
-        if (iter.hasNext()) {
-               iter.next();
-        }
-        List<Shape> shapeList = new ArrayList<Shape>();
-        while (iter.hasNext()) {
-               EscherRecord r = iter.next();
-               if(r instanceof EscherContainerRecord) {
-                       // Create the Shape for it
-                       EscherContainerRecord container = (EscherContainerRecord)r;
-                       Shape shape = ShapeFactory.createShape(container, this);
-                shape.setSheet(getSheet());
-                       shapeList.add( shape );
-               } else {
-                       // Should we do anything special with these non
-                       //  Container records?
-                       logger.log(POILogger.ERROR, "Shape contained non container escher record, was " + r.getClass().getName());
-               }
-        }
-
-        // Put the shapes into an array, and return
+        List<Shape> shapeList = getShapeList();
         Shape[] shapes = shapeList.toArray(new Shape[shapeList.size()]);
         return shapes;
     }
@@ -179,7 +157,7 @@ public class ShapeGroup extends Shape{
         spcont.addChildRecord(spg);
 
         EscherSpRecord sp = new EscherSpRecord();
-        short type = (ShapeTypes.NotPrimitive << 4) + 2;
+        short type = (short)((ShapeType.NOT_PRIMITIVE.nativeId << 4) + 2);
         sp.setOptions(type);
         sp.setFlags(EscherSpRecord.FLAG_HAVEANCHOR | EscherSpRecord.FLAG_GROUP);
         spcont.addChildRecord(sp);
@@ -260,9 +238,10 @@ public class ShapeGroup extends Shape{
      *
      * @return type of the shape.
      */
-    public int getShapeType(){
+    public ShapeType getShapeType(){
         EscherSpRecord spRecord = getEscherChild(EscherSpRecord.RECORD_ID);
-        return spRecord.getOptions() >> 4;
+        int nativeId = spRecord.getOptions() >> 4;
+        return ShapeType.forId(nativeId, false);
     }
 
     /**
@@ -291,4 +270,45 @@ public class ShapeGroup extends Shape{
         EscherContainerRecord groupInfoContainer = (EscherContainerRecord)_escherContainer.getChild(0);
         return groupInfoContainer.getChildById((short)recordId);
     }
+
+    public Iterator<Shape> iterator() {
+        return getShapeList().iterator();
+    }
+
+    public boolean removeShape(Shape shape) {
+        // TODO: implement!
+        throw new UnsupportedOperationException();
+    }
+
+    /**
+     * @return the shapes contained in this group container
+     */
+    protected List<Shape> getShapeList() {
+        // Out escher container record should contain several
+        //  SpContainers, the first of which is the group shape itself
+        Iterator<EscherRecord> iter = _escherContainer.getChildIterator();
+
+        // Don't include the first SpContainer, it is always NotPrimitive
+        if (iter.hasNext()) {
+            iter.next();
+        }
+        List<Shape> shapeList = new ArrayList<Shape>();
+        while (iter.hasNext()) {
+            EscherRecord r = iter.next();
+            if(r instanceof EscherContainerRecord) {
+                // Create the Shape for it
+                EscherContainerRecord container = (EscherContainerRecord)r;
+                Shape shape = ShapeFactory.createShape(container, this);
+                shape.setSheet(getSheet());
+                shapeList.add( shape );
+            } else {
+                // Should we do anything special with these non
+                //  Container records?
+                logger.log(POILogger.ERROR, "Shape contained non container escher record, was " + r.getClass().getName());
+            }
+        }
+
+        return shapeList;
+    }
+
 }
diff --git a/src/scratchpad/src/org/apache/poi/hslf/model/ShapeTypes.java b/src/scratchpad/src/org/apache/poi/hslf/model/ShapeTypes.java
deleted file mode 100644 (file)
index 4840c93..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.hslf.model;
-
-import java.lang.reflect.Field;
-import java.util.HashMap;
-
-import org.apache.poi.hslf.exceptions.HSLFException;
-
-/**
- * Contains all known shape types in PowerPoint
- *
- * @author Yegor Kozlov
- */
-public final class ShapeTypes implements org.apache.poi.sl.usermodel.ShapeTypes {
-    /**
-     * Return name of the shape by id
-     * @param type  - the id of the shape, one of the static constants defined in this class
-     * @return  the name of the shape
-     */
-    public static String typeName(int type) {
-        String name = (String)types.get(Integer.valueOf(type));
-        return name;
-    }
-
-    public static final HashMap types;
-    static {
-        types = new HashMap();
-        try {
-            Field[] f = org.apache.poi.sl.usermodel.ShapeTypes.class.getFields();
-            for (int i = 0; i < f.length; i++){
-                Object val = f[i].get(null);
-                if (val instanceof Integer) {
-                    types.put(val, f[i].getName());
-                }
-            }
-        } catch (IllegalAccessException e){
-            throw new HSLFException("Failed to initialize shape types");
-        }
-    }
-
-}
index c5256b1d2a7cc61f57a25b3fdd54e64864eb66dd..c3383f4d6995a5f064e4aacab422e6491c99b46e 100644 (file)
@@ -45,6 +45,7 @@ import org.apache.poi.hslf.record.TextHeaderAtom;
 import org.apache.poi.hslf.record.TextRulerAtom;
 import org.apache.poi.hslf.record.TextSpecInfoAtom;
 import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 
@@ -56,7 +57,7 @@ import org.apache.poi.util.POILogger;
  * @author Yegor Kozlov
  */
 
-public abstract class Sheet {
+public abstract class Sheet implements ShapeContainer<Shape> {
        private static POILogger logger = POILogFactory.getLogger(Sheet.class);
 
     /**
@@ -272,36 +273,8 @@ public abstract class Sheet {
      * @return all shapes contained in this Sheet (Slide or Notes)
      */
     public Shape[] getShapes() {
-        PPDrawing ppdrawing = getPPDrawing();
-
-        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
-        EscherContainerRecord spgr = null;
-
-        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
-            EscherRecord rec = it.next();
-            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
-                spgr = (EscherContainerRecord) rec;
-                break;
-            }
-        }
-        if (spgr == null) {
-            throw new IllegalStateException("spgr not found");
-        }
-
-        List<Shape> shapes = new ArrayList<Shape>();
-        Iterator<EscherRecord> it = spgr.getChildIterator();
-        if (it.hasNext()) {
-            // skip first item
-            it.next();
-        }
-        for (; it.hasNext();) {
-            EscherContainerRecord sp = (EscherContainerRecord) it.next();
-            Shape sh = ShapeFactory.createShape(sp, null);
-            sh.setSheet(this);
-            shapes.add(sh);
-        }
-
-        return shapes.toArray(new Shape[shapes.size()]);
+        List<Shape> shapeList = getShapeList();
+        return shapeList.toArray(new Shape[shapeList.size()]);
     }
 
     /**
@@ -524,4 +497,47 @@ public abstract class Sheet {
 
     }
 
+    public Iterator<Shape> iterator() {
+        return getShapeList().iterator();
+    }
+
+
+    /**
+     * Returns all shapes contained in this Sheet
+     *
+     * @return all shapes contained in this Sheet (Slide or Notes)
+     */
+    protected List<Shape> getShapeList() {
+        PPDrawing ppdrawing = getPPDrawing();
+
+        EscherContainerRecord dg = (EscherContainerRecord) ppdrawing.getEscherRecords()[0];
+        EscherContainerRecord spgr = null;
+
+        for (Iterator<EscherRecord> it = dg.getChildIterator(); it.hasNext();) {
+            EscherRecord rec = it.next();
+            if (rec.getRecordId() == EscherContainerRecord.SPGR_CONTAINER) {
+                spgr = (EscherContainerRecord) rec;
+                break;
+            }
+        }
+        if (spgr == null) {
+            throw new IllegalStateException("spgr not found");
+        }
+
+        List<Shape> shapeList = new ArrayList<Shape>();
+        Iterator<EscherRecord> it = spgr.getChildIterator();
+        if (it.hasNext()) {
+            // skip first item
+            it.next();
+        }
+        for (; it.hasNext();) {
+            EscherContainerRecord sp = (EscherContainerRecord) it.next();
+            Shape sh = ShapeFactory.createShape(sp, null);
+            sh.setSheet(this);
+            shapeList.add(sh);
+        }
+
+        return shapeList;
+    }
+
 }
index 34db620951942ff04ecdf17ad29ddb0f0f0030c0..7694cacba2467b704431bad6bf5cb11f709cedfe 100644 (file)
@@ -38,6 +38,7 @@ import org.apache.poi.hslf.exceptions.HSLFException;
 import org.apache.poi.hslf.record.InteractiveInfo;
 import org.apache.poi.hslf.record.InteractiveInfoAtom;
 import org.apache.poi.hslf.record.Record;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.LittleEndian;
 
 /**
@@ -62,7 +63,7 @@ public abstract class SimpleShape extends Shape {
      * @param escherRecord    <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent    the parent of the shape
      */
-    protected SimpleShape(EscherContainerRecord escherRecord, Shape parent){
+    protected SimpleShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
@@ -191,7 +192,7 @@ public abstract class SimpleShape extends Shape {
      *
      * @return style of the line.
      */
-    public int getLineStyle(){
+    public int getStrokeStyle(){
         EscherOptRecord opt = getEscherOptRecord();
         EscherSimpleProperty prop = getEscherProperty(opt, EscherProperties.LINESTYLE__LINESTYLE);
         return prop == null ? Line.LINE_SIMPLE : prop.getPropertyValue();
@@ -221,12 +222,14 @@ public abstract class SimpleShape extends Shape {
         Rectangle2D anchor = getAnchor2D();
 
         //if it is a groupped shape see if we need to transform the coordinates
-        if (_parent != null){
+        if (getParent() != null){
             ArrayList<ShapeGroup> lst = new ArrayList<ShapeGroup>();
-            for (Shape top=this; (top = top.getParent()) != null; ) {
-                lst.add(0, (ShapeGroup)top);
+            for (ShapeContainer<Shape> parent=this.getParent();
+                parent instanceof ShapeGroup;
+                parent = ((ShapeGroup)parent).getParent()) {
+                lst.add(0, (ShapeGroup)parent);
             }
-
+            
             AffineTransform tx = new AffineTransform();
             for(ShapeGroup prnt : lst) {
                 Rectangle2D exterior = prnt.getAnchor2D();
@@ -243,8 +246,8 @@ public abstract class SimpleShape extends Shape {
             anchor = tx.createTransformedShape(anchor).getBounds2D();
         }
 
-        int angle = getRotation();
-        if(angle != 0){
+        double angle = getRotation();
+        if(angle != 0.){
             double centerX = anchor.getX() + anchor.getWidth()/2;
             double centerY = anchor.getY() + anchor.getHeight()/2;
 
index 9e040c1677f49811109bb27e8af49ae77eff1af5..f5342534a539cbf9ac19b4865d2c0b384f0a86a1 100644 (file)
@@ -34,9 +34,10 @@ import org.apache.poi.hslf.record.RecordContainer;
 import org.apache.poi.hslf.record.RecordTypes;
 import org.apache.poi.hslf.record.SSSlideInfoAtom;
 import org.apache.poi.hslf.record.SlideAtom;
+import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
 import org.apache.poi.hslf.record.StyleTextProp9Atom;
 import org.apache.poi.hslf.record.TextHeaderAtom;
-import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 /**
  * This class represents a slide in a PowerPoint Document. It allows
@@ -47,8 +48,7 @@ import org.apache.poi.hslf.record.SlideListWithText.SlideAtomsSet;
  * @author Yegor Kozlov
  */
 
-public final class Slide extends Sheet
-{
+public final class Slide extends Sheet {
        private int _slideNo;
        private SlideAtomsSet _atomSet;
        private TextRun[] _runs;
@@ -180,7 +180,7 @@ public final class Slide extends Sheet
         */
        public TextBox addTitle() {
                Placeholder pl = new Placeholder();
-               pl.setShapeType(ShapeTypes.Rectangle);
+               pl.setShapeType(ShapeType.RECT);
                pl.getTextRun().setRunType(TextHeaderAtom.TITLE_TYPE);
                pl.setText("Click to edit title");
                pl.setAnchor(new java.awt.Rectangle(54, 48, 612, 90));
index c494789917a6a4918f9e8eb77b3dfb88b3b9954c..266e6d913bab606525fa7b82f5543d0465bfb77e 100644 (file)
@@ -18,6 +18,7 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.LittleEndian;
 
 import java.util.*;
@@ -92,7 +93,7 @@ public final class Table extends ShapeGroup {
      * @param escherRecord <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent       the parent of the shape
      */
-    public Table(EscherContainerRecord escherRecord, Shape parent) {
+    public Table(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent) {
         super(escherRecord, parent);
     }
 
@@ -125,7 +126,7 @@ public final class Table extends ShapeGroup {
             TableCell cell = cells[i][0];
             int rowHeight = cell.getAnchor().height*MASTER_DPI/POINT_DPI;
             byte[] val = new byte[4];
-            LittleEndian.putInt(val, rowHeight);
+            LittleEndian.putInt(val, 0, rowHeight);
             p.setElement(i, val);
             for (int j = 0; j < cells[i].length; j++) {
                 TableCell c = cells[i][j];
@@ -149,11 +150,11 @@ public final class Table extends ShapeGroup {
     }
 
     protected void initTable(){
-        Shape[] sh = getShapes();
-        Arrays.sort(sh, new Comparator(){
-            public int compare( Object o1, Object o2 ) {
-                Rectangle anchor1 = ((Shape)o1).getAnchor();
-                Rectangle anchor2 = ((Shape)o2).getAnchor();
+        List<Shape> shapeList = getShapeList();
+        Collections.sort(shapeList, new Comparator<Shape>(){
+            public int compare( Shape o1, Shape o2 ) {
+                Rectangle anchor1 = o1.getAnchor();
+                Rectangle anchor2 = o2.getAnchor();
                 int delta = anchor1.y - anchor2.y;
                 if(delta == 0) delta = anchor1.x - anchor2.x;
                 return delta;
@@ -161,23 +162,23 @@ public final class Table extends ShapeGroup {
         });
         int y0 = -1;
         int maxrowlen = 0;
-        ArrayList lst = new ArrayList();
-        ArrayList row = null;
-        for (int i = 0; i < sh.length; i++) {
-            if(sh[i] instanceof TextShape){
-                Rectangle anchor = sh[i].getAnchor();
+        List<List<Shape>> lst = new ArrayList<List<Shape>>();
+        List<Shape> row = null;
+        for (Shape sh : shapeList) {
+            if(sh instanceof TextShape){
+                Rectangle anchor = sh.getAnchor();
                 if(anchor.y != y0){
                     y0 = anchor.y;
-                    row = new ArrayList();
+                    row = new ArrayList<Shape>();
                     lst.add(row);
                 }
-                row.add(sh[i]);
+                row.add(sh);
                 maxrowlen = Math.max(maxrowlen, row.size());
             }
         }
         cells = new TableCell[lst.size()][maxrowlen];
         for (int i = 0; i < lst.size(); i++) {
-            row = (ArrayList)lst.get(i);
+            row = lst.get(i);
             for (int j = 0; j < row.size(); j++) {
                 TextShape tx = (TextShape)row.get(j);
                 cells[i][j] = new TableCell(tx.getSpContainer(), getParent());
@@ -318,7 +319,7 @@ public final class Table extends ShapeGroup {
     private Line cloneBorder(Line line){
         Line border = createBorder();
         border.setLineWidth(line.getLineWidth());
-        border.setLineStyle(line.getLineStyle());
+        border.setLineStyle(line.getStrokeStyle());
         border.setLineDashing(line.getLineDashing());
         border.setLineColor(line.getLineColor());
         return border;
index 864d55eae440cdca30f460cbc470f04affa897a6..15854bb50a6b7aca1d29cf6d993dd322144fc1e6 100644 (file)
 
 package org.apache.poi.hslf.model;
 
-import org.apache.poi.ddf.*;
+import java.awt.Rectangle;
 
-import java.awt.*;
+import org.apache.poi.ddf.EscherContainerRecord;
+import org.apache.poi.ddf.EscherOptRecord;
+import org.apache.poi.ddf.EscherProperties;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 /**
  * Represents a cell in a ppt table
@@ -38,10 +42,10 @@ public final class TableCell extends TextBox {
     /**
      * Create a TableCell object and initialize it from the supplied Record container.
      *
-     * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
+     * @param escherRecord       {@link EscherSpContainer} container which holds information about this shape
      * @param parent    the parent of the shape
      */
-   protected TableCell(EscherContainerRecord escherRecord, Shape parent){
+   protected TableCell(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
     }
 
@@ -51,10 +55,10 @@ public final class TableCell extends TextBox {
      * @param parent    the parent of this Shape. For example, if this text box is a cell
      * in a table then the parent is Table.
      */
-    public TableCell(Shape parent){
+    public TableCell(ShapeContainer<Shape> parent){
         super(parent);
 
-        setShapeType(ShapeTypes.Rectangle);
+        setShapeType(ShapeType.RECT);
         //_txtrun.setRunType(TextHeaderAtom.HALF_BODY_TYPE);
         //_txtrun.getRichTextRuns()[0].setFlag(false, 0, false);
     }
index 46e080eb5d0c704c18dd873744d64ec795430f65..267102aa5236ff23dbf643c7bf6c100ee99db12f 100644 (file)
@@ -18,6 +18,8 @@
 package org.apache.poi.hslf.model;
 
 import org.apache.poi.ddf.*;
+import org.apache.poi.sl.usermodel.ShapeContainer;
+import org.apache.poi.sl.usermodel.ShapeType;
 
 /**
  * Represents a TextFrame shape in PowerPoint.
@@ -36,7 +38,7 @@ public class TextBox extends TextShape {
      * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent    the parent of the shape
      */
-   protected TextBox(EscherContainerRecord escherRecord, Shape parent){
+   protected TextBox(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
 
     }
@@ -47,7 +49,7 @@ public class TextBox extends TextShape {
      * @param parent    the parent of this Shape. For example, if this text box is a cell
      * in a table then the parent is Table.
      */
-    public TextBox(Shape parent){
+    public TextBox(ShapeContainer<Shape> parent){
         super(parent);
     }
 
@@ -67,7 +69,7 @@ public class TextBox extends TextShape {
     protected EscherContainerRecord createSpContainer(boolean isChild){
         _escherContainer = super.createSpContainer(isChild);
 
-        setShapeType(ShapeTypes.TextBox);
+        setShapeType(ShapeType.TEXT_BOX);
 
         //set default properties for a TextBox
         setEscherProperty(EscherProperties.FILL__FILLCOLOR, 0x8000004);
index b585d61e1bc408c460d9ecd1539af64ae418b785..e1e053e397bc28e2cb9f49caceb02d6e157fbe9b 100644 (file)
@@ -41,12 +41,14 @@ import org.apache.poi.hslf.record.OutlineTextRefAtom;
 import org.apache.poi.hslf.record.PPDrawing;
 import org.apache.poi.hslf.record.Record;
 import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.RoundTripHFPlaceholder12;
 import org.apache.poi.hslf.record.StyleTextPropAtom;
 import org.apache.poi.hslf.record.TextBytesAtom;
 import org.apache.poi.hslf.record.TextCharsAtom;
 import org.apache.poi.hslf.record.TextHeaderAtom;
 import org.apache.poi.hslf.record.TxInteractiveInfoAtom;
 import org.apache.poi.hslf.usermodel.RichTextRun;
+import org.apache.poi.sl.usermodel.ShapeContainer;
 import org.apache.poi.util.POILogger;
 
 /**
@@ -109,7 +111,7 @@ public abstract class TextShape extends SimpleShape {
      * @param escherRecord       <code>EscherSpContainer</code> container which holds information about this shape
      * @param parent    the parent of the shape
      */
-   protected TextShape(EscherContainerRecord escherRecord, Shape parent){
+   protected TextShape(EscherContainerRecord escherRecord, ShapeContainer<Shape> parent){
         super(escherRecord, parent);
 
     }
@@ -120,7 +122,7 @@ public abstract class TextShape extends SimpleShape {
      * @param parent    the parent of this Shape. For example, if this text box is a cell
      * in a table then the parent is Table.
      */
-    public TextShape(Shape parent){
+    public TextShape(ShapeContainer<Shape> parent){
         super(null, parent);
         _escherContainer = createSpContainer(parent instanceof ShapeGroup);
     }
@@ -623,4 +625,17 @@ public abstract class TextShape extends SimpleShape {
 
     }
 
+    @Override
+    public boolean isPlaceholder() {
+        OEPlaceholderAtom oep = getPlaceholderAtom();
+        if (oep != null) return true;
+
+        //special case for files saved in Office 2007
+        RoundTripHFPlaceholder12 hldr = getClientDataRecord(RecordTypes.RoundTripHFPlaceholder12.typeID);
+        if (hldr != null) return true;
+
+        return false;
+    }
+
+    
 }
index 8b8146f1324b7f7657a05a34925e4dd2b8c8ea73..38535ecf09e761f1d861ddb78aaa655ef129cf59 100644 (file)
@@ -37,7 +37,7 @@ import org.apache.poi.ddf.EscherSpRecord;
 import org.apache.poi.ddf.EscherSpgrRecord;
 import org.apache.poi.ddf.EscherTextboxRecord;
 import org.apache.poi.ddf.UnknownEscherRecord;
-import org.apache.poi.hslf.model.ShapeTypes;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogger;
 
@@ -95,7 +95,7 @@ public final class PPDrawing extends RecordAtom {
                final DefaultEscherRecordFactory erf = new DefaultEscherRecordFactory();
                final List<EscherRecord> escherChildren = new ArrayList<EscherRecord>();
                findEscherChildren(erf, contents, 8, len-8, escherChildren);
-               this.childRecords = (EscherRecord[]) escherChildren.toArray(new EscherRecord[escherChildren.size()]);
+               this.childRecords = escherChildren.toArray(new EscherRecord[escherChildren.size()]);
 
                if (1 == this.childRecords.length && (short)0xf002 == this.childRecords[0].getRecordId() && this.childRecords[0] instanceof EscherContainerRecord) {
                        this.textboxWrappers = findInDgContainer((EscherContainerRecord) this.childRecords[0]);
@@ -103,7 +103,7 @@ public final class PPDrawing extends RecordAtom {
                        // Find and EscherTextboxRecord's, and wrap them up
                        final List<EscherTextboxWrapper> textboxes = new ArrayList<EscherTextboxWrapper>();
                        findEscherTextboxRecord(childRecords, textboxes);
-                       this.textboxWrappers = (EscherTextboxWrapper[]) textboxes.toArray(new EscherTextboxWrapper[textboxes.size()]);
+                       this.textboxWrappers = textboxes.toArray(new EscherTextboxWrapper[textboxes.size()]);
                }
        }
        private EscherTextboxWrapper[] findInDgContainer(final EscherContainerRecord escherContainerF002) {
@@ -131,7 +131,7 @@ public final class PPDrawing extends RecordAtom {
                                found.add(w);
                        }
                }
-               return (EscherTextboxWrapper[]) found.toArray(new EscherTextboxWrapper[found.size()]);
+               return found.toArray(new EscherTextboxWrapper[found.size()]);
        }
        private StyleTextProp9Atom findInSpContainer(final EscherContainerRecord spContainer) {
                final EscherContainerRecord escherContainerF011 = findFirstEscherContainerRecordOfType((short)0xf011, spContainer);
@@ -301,7 +301,7 @@ public final class PPDrawing extends RecordAtom {
                spContainer.addChildRecord(spgr);
 
                EscherSpRecord sp = new EscherSpRecord();
-               sp.setOptions((short)((ShapeTypes.NotPrimitive << 4) + 2));
+               sp.setOptions((short)((ShapeType.NOT_PRIMITIVE.nativeId << 4) + 2));
                sp.setFlags(EscherSpRecord.FLAG_PATRIARCH | EscherSpRecord.FLAG_GROUP);
                spContainer.addChildRecord(sp);
                spgrContainer.addChildRecord(spContainer);
@@ -311,7 +311,7 @@ public final class PPDrawing extends RecordAtom {
                spContainer.setOptions((short)15);
                spContainer.setRecordId(EscherContainerRecord.SP_CONTAINER);
                sp = new EscherSpRecord();
-               sp.setOptions((short)((ShapeTypes.Rectangle << 4) + 2));
+               sp.setOptions((short)((ShapeType.RECT.nativeId << 4) + 2));
                sp.setFlags(EscherSpRecord.FLAG_BACKGROUND | EscherSpRecord.FLAG_HASSHAPETYPE);
                spContainer.addChildRecord(sp);
 
@@ -393,7 +393,7 @@ public final class PPDrawing extends RecordAtom {
                                result.add(child);
                        }
                }
-               return (EscherContainerRecord[]) result.toArray(new EscherContainerRecord[result.size()]);
+               return result.toArray(new EscherContainerRecord[result.size()]);
     }
     protected Record buildFromUnknownEscherRecord(UnknownEscherRecord unknown) {
                byte[] bingo = unknown.getData();
@@ -436,6 +436,6 @@ public final class PPDrawing extends RecordAtom {
                                }
                        }
        }
-       return (StyleTextProp9Atom[]) result.toArray(new StyleTextProp9Atom[result.size()]);
+       return result.toArray(new StyleTextProp9Atom[result.size()]);
        }
 }
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawAutoShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawAutoShape.java
new file mode 100644 (file)
index 0000000..a8dcca5
--- /dev/null
@@ -0,0 +1,10 @@
+package org.apache.poi.sl.draw;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+\r
+\r
+public class DrawAutoShape<T extends AutoShape> extends DrawTextShape<T> {\r
+    public DrawAutoShape(T shape) {\r
+        super(shape);\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawFactory.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawFactory.java
new file mode 100644 (file)
index 0000000..9270091
--- /dev/null
@@ -0,0 +1,96 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw;\r
+\r
+import static org.apache.poi.sl.draw.Drawable.DRAW_FACTORY;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.font.TextLayout;\r
+import java.text.AttributedString;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+\r
+public class DrawFactory {\r
+    protected static ThreadLocal<DrawFactory> defaultFactory = new ThreadLocal<DrawFactory>();\r
+\r
+    /**\r
+     * Set a custom draw factory for the current thread.\r
+     * This is a fallback, for operations where usercode can't set a graphics context.\r
+     * Preferably use the rendering hint {@link Drawable#DRAW_FACTORY} to set the factory.\r
+     *\r
+     * @param factory\r
+     */\r
+    public static void setDefaultFactory(DrawFactory factory) {\r
+        defaultFactory.set(factory);\r
+    }\r
+\r
+    public static DrawFactory getInstance(Graphics2D graphics) {\r
+        // first try to find the factory over the rendering hing\r
+        DrawFactory factory = (DrawFactory)graphics.getRenderingHint(DRAW_FACTORY);\r
+        // secondly try the thread local default\r
+        if (factory == null) {\r
+            factory = defaultFactory.get();\r
+        }\r
+        // and at last, use the default factory\r
+        if (factory == null) {\r
+            factory = new DrawFactory();\r
+            graphics.setRenderingHint(DRAW_FACTORY, factory);\r
+        }\r
+        return factory;\r
+    }\r
+\r
+    public Drawable getDrawable(Sheet sheet) {\r
+        return new DrawSheet(sheet);\r
+    }\r
+\r
+    public Drawable getDrawable(MasterSheet sheet) {\r
+        return new DrawMasterSheet(sheet);\r
+    }\r
+\r
+    @SuppressWarnings("unchecked")\r
+    public Drawable getDrawable(Shape shape) {\r
+        if (shape instanceof TextBox) {\r
+            return getDrawable((TextBox)shape);\r
+        } else if (shape instanceof FreeformShape) {\r
+            return getDrawable((FreeformShape)shape);\r
+        }\r
+\r
+        throw new IllegalArgumentException("Unsupported shape type: "+shape.getClass());\r
+    }\r
+\r
+    public <T extends TextBox> DrawTextBox<T> getDrawable(T shape) {\r
+        return new DrawTextBox<T>(shape);\r
+    }\r
+\r
+    public <T extends FreeformShape> DrawFreeformShape<T> getDrawable(T shape) {\r
+        return new DrawFreeformShape<T>(shape);\r
+    }\r
+\r
+    \r
+    public DrawTextParagraph getDrawable(TextParagraph paragraph) {\r
+        return new DrawTextParagraph(paragraph);\r
+    }\r
+\r
+    public DrawTextFragment getTextFragment(TextLayout layout, AttributedString str) {\r
+        return new DrawTextFragment(layout, str);\r
+    }\r
+    \r
+    public DrawPaint getPaint(PlaceableShape shape) {\r
+        return new DrawPaint(shape);\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawFontManager.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawFontManager.java
new file mode 100644 (file)
index 0000000..9c49489
--- /dev/null
@@ -0,0 +1,38 @@
+/*\r
+ *  ====================================================================\r
+ *    Licensed to the Apache Software Foundation (ASF) under one or more\r
+ *    contributor license agreements.  See the NOTICE file distributed with\r
+ *    this work for additional information regarding copyright ownership.\r
+ *    The ASF licenses this file to You under the Apache License, Version 2.0\r
+ *    (the "License"); you may not use this file except in compliance with\r
+ *    the License.  You may obtain a copy of the License at\r
+ *\r
+ *        http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *    Unless required by applicable law or agreed to in writing, software\r
+ *    distributed under the License is distributed on an "AS IS" BASIS,\r
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *    See the License for the specific language governing permissions and\r
+ *    limitations under the License.\r
+ * ====================================================================\r
+ */\r
+\r
+package org.apache.poi.sl.draw;\r
+\r
+/**\r
+ * Manages fonts when rendering slides.\r
+ *\r
+ * Use this class to handle unknown / missing fonts or to substitute fonts\r
+ */\r
+public interface DrawFontManager {\r
+\r
+    /**\r
+     * select a font to be used to paint text\r
+     *\r
+     * @param typeface the font family as defined in the .pptx file.\r
+     * This can be unknown or missing in the graphic environment.\r
+     *\r
+     * @return the font to be used to paint text\r
+     */\r
+    String getRendererableFont(String typeface, int pitchFamily);\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawFreeformShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawFreeformShape.java
new file mode 100644 (file)
index 0000000..666b85a
--- /dev/null
@@ -0,0 +1,9 @@
+package org.apache.poi.sl.draw;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+\r
+public class DrawFreeformShape<T extends FreeformShape> extends DrawAutoShape<T> {\r
+    public DrawFreeformShape(T shape) {\r
+        super(shape);\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawMasterSheet.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawMasterSheet.java
new file mode 100644 (file)
index 0000000..c4afeb3
--- /dev/null
@@ -0,0 +1,22 @@
+package org.apache.poi.sl.draw;\r
+\r
+import org.apache.poi.sl.usermodel.MasterSheet;\r
+import org.apache.poi.sl.usermodel.Shape;\r
+\r
+\r
+public class DrawMasterSheet extends DrawSheet {\r
+\r
+    public DrawMasterSheet(MasterSheet sheet) {\r
+        super(sheet);\r
+    }\r
+\r
+    /**\r
+     * Checks if this <code>sheet</code> displays the specified shape.\r
+     *\r
+     * Subclasses can override it and skip certain shapes from drawings,\r
+     * for instance, slide masters and layouts don't display placeholders\r
+     */\r
+    protected boolean canDraw(Shape shape){\r
+        return !shape.isPlaceholder();\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawPaint.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawPaint.java
new file mode 100644 (file)
index 0000000..c608ec3
--- /dev/null
@@ -0,0 +1,448 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.*;\r
+import java.awt.MultipleGradientPaint.ColorSpaceType;\r
+import java.awt.MultipleGradientPaint.CycleMethod;\r
+import java.awt.Shape;\r
+import java.awt.geom.*;\r
+import java.awt.image.*;\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.sl.usermodel.GradientPaint;\r
+import org.apache.poi.sl.usermodel.TexturePaint;\r
+import org.apache.poi.util.POILogFactory;\r
+import org.apache.poi.util.POILogger;\r
+\r
+\r
+public class DrawPaint {\r
+    public final static Color NO_PAINT = new Color(0xFF, 0xFF, 0xFF, 0);\r
+    private final static POILogger LOG = POILogFactory.getLogger(DrawPaint.class);\r
+\r
+    protected PlaceableShape shape;\r
+    \r
+    public DrawPaint(PlaceableShape shape) {\r
+        this.shape = shape;\r
+    }\r
+    \r
+    public Paint getPaint(Graphics2D graphics, PaintStyle paint) {\r
+        if (paint instanceof SolidPaint) {\r
+            return getSolidPaint((SolidPaint)paint, graphics);\r
+        } else if (paint instanceof GradientPaint) {\r
+            return getGradientPaint((GradientPaint)paint, graphics);\r
+        } else if (paint instanceof TexturePaint) {\r
+            return getTexturePaint((TexturePaint)paint, graphics);\r
+        }\r
+        return null;\r
+    }\r
+    \r
+    protected Paint getSolidPaint(SolidPaint fill, Graphics2D graphics) {\r
+        return applyColorTransform(fill.getSolidColor());\r
+    }\r
+\r
+    protected Paint getGradientPaint(GradientPaint fill, Graphics2D graphics) {\r
+        switch (fill.getGradientType()) {\r
+        case linear:\r
+            return createLinearGradientPaint(fill, graphics);\r
+        case circular:\r
+            return createRadialGradientPaint(fill, graphics);\r
+        case shape:\r
+            return createPathGradientPaint(fill, graphics);\r
+        default:\r
+            throw new UnsupportedOperationException("gradient fill of type "+fill+" not supported.");\r
+        }\r
+    }\r
+\r
+    protected Paint getTexturePaint(TexturePaint fill, Graphics2D graphics) {\r
+        InputStream is = fill.getImageData();\r
+        if (is == null) return NO_PAINT;\r
+        assert(graphics != null);\r
+        \r
+        ImageRenderer renderer = (ImageRenderer)graphics.getRenderingHint(Drawable.IMAGE_RENDERER);\r
+        if (renderer == null) renderer = new ImageRenderer();\r
+\r
+        try {\r
+            renderer.loadImage(fill.getImageData(), fill.getContentType());\r
+        } catch (IOException e) {\r
+            LOG.log(POILogger.ERROR, "Can't load image data - using transparent color", e);\r
+            return NO_PAINT;\r
+        }\r
+\r
+        int alpha = fill.getAlpha();\r
+        if (alpha != -1) {\r
+            renderer.setAlpha(fill.getAlpha()/100000.f);\r
+        }\r
+        \r
+        Dimension dim = renderer.getDimension();\r
+        Rectangle2D textAnchor = new Rectangle2D.Double(0, 0, dim.getWidth(), dim.getHeight());\r
+        Paint paint = new java.awt.TexturePaint(renderer.getImage(), textAnchor);\r
+\r
+        return paint;\r
+    }\r
+    \r
+    /**\r
+     * Convert color transformations in {@link ColorStyle} to a {@link Color} instance\r
+     */\r
+    public static Color applyColorTransform(ColorStyle color){\r
+        Color result = color.getColor();\r
+\r
+        if (result == null || color.getAlpha() == 100) return NO_PAINT;\r
+        \r
+        result = applyAlpha(result, color);\r
+        result = applyLuminanace(result, color);\r
+        result = applyShade(result, color);\r
+        result = applyTint(result, color);\r
+\r
+        return result;\r
+    }\r
+\r
+    protected static Color applyAlpha(Color c, ColorStyle fc) {\r
+        int alpha = c.getAlpha();\r
+        return (alpha == 0 || alpha == -1) ? c : new Color(c.getRed(), c.getGreen(), c.getBlue(), alpha); \r
+    }\r
+    \r
+    /**\r
+     * Apply lumMod / lumOff adjustments\r
+     *\r
+     * @param c the color to modify\r
+     * @param lumMod luminance modulation in the range [0..100000]\r
+     * @param lumOff luminance offset in the range [0..100000]\r
+     * @return  modified color\r
+     */\r
+    protected static Color applyLuminanace(Color c, ColorStyle fc) {\r
+        int lumMod = fc.getLumMod();\r
+        if (lumMod == -1) lumMod = 100000;\r
+\r
+        int lumOff = fc.getLumOff();\r
+        if (lumOff == -1) lumOff = 0;\r
+        \r
+        if (lumMod == 100000 && lumOff == 0) return c;\r
+\r
+        int r = c.getRed();\r
+        int g = c.getGreen();\r
+        int b = c.getBlue();\r
+        \r
+        float red,green,blue;\r
+        \r
+        Color color;\r
+        if (lumOff > 0) {\r
+            float flumOff = lumOff / 100000.f;\r
+            red = (255.f - r) * (1.f - flumOff) + r;\r
+            green = (255.f - g) * flumOff + g;\r
+            blue = (255.f - b) * flumOff + b;\r
+        } else {\r
+            float flumMod = lumMod / 100000.f;\r
+            red = r * lumMod;\r
+            green = g * lumMod;\r
+            blue = b * lumMod;\r
+        }\r
+        return new Color(Math.round(red), Math.round(green), Math.round(blue), c.getAlpha());\r
+    }\r
+    \r
+    /**\r
+     * This algorithm returns result different from PowerPoint.\r
+     * TODO: revisit and improve\r
+     */\r
+    protected static Color applyShade(Color c, ColorStyle fc) {\r
+        int shade = fc.getShade();\r
+        if (shade == -1) return c;\r
+        \r
+        float fshade = shade / 100000.f;\r
+\r
+        float red = c.getRed() * fshade;\r
+        float green = c.getGreen() * fshade;\r
+        float blue = c.getGreen() * fshade;\r
+        \r
+        return new Color(Math.round(red), Math.round(green), Math.round(blue), c.getAlpha());\r
+    }\r
+\r
+    /**\r
+     * This algorithm returns result different from PowerPoint.\r
+     * TODO: revisit and improve\r
+     */\r
+    protected static Color applyTint(Color c, ColorStyle fc) {\r
+        int tint = fc.getTint();\r
+        if (tint == -1) return c;\r
+        \r
+        float ftint = tint / 100000.f;\r
+\r
+        float red = ftint * c.getRed() + (1.f - ftint) * 255.f;\r
+        float green = ftint * c.getGreen() + (1.f - ftint) * 255.f;\r
+        float blue = ftint * c.getBlue() + (1.f - ftint) * 255.f;\r
+\r
+        return new Color(Math.round(red), Math.round(green), Math.round(blue), c.getAlpha());\r
+    }\r
+    \r
+\r
+    protected Paint createLinearGradientPaint(GradientPaint fill, Graphics2D graphics) {\r
+        double angle = fill.getGradientAngle();\r
+        Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);\r
+\r
+        AffineTransform at = AffineTransform.getRotateInstance(\r
+            Math.toRadians(angle),\r
+            anchor.getX() + anchor.getWidth() / 2,\r
+            anchor.getY() + anchor.getHeight() / 2);\r
+\r
+        double diagonal = Math.sqrt(anchor.getHeight() * anchor.getHeight() + anchor.getWidth() * anchor.getWidth());\r
+        Point2D p1 = new Point2D.Double(anchor.getX() + anchor.getWidth() / 2 - diagonal / 2,\r
+                anchor.getY() + anchor.getHeight() / 2);\r
+        p1 = at.transform(p1, null);\r
+\r
+        Point2D p2 = new Point2D.Double(anchor.getX() + anchor.getWidth(), anchor.getY() + anchor.getHeight() / 2);\r
+        p2 = at.transform(p2, null);\r
+\r
+        snapToAnchor(p1, anchor);\r
+        snapToAnchor(p2, anchor);\r
+\r
+        float[] fractions = fill.getGradientFractions();\r
+        Color[] colors = new Color[fractions.length];\r
+        \r
+        int i = 0;\r
+        for (ColorStyle fc : fill.getGradientColors()) {\r
+            colors[i++] = applyColorTransform(fc);\r
+        }\r
+\r
+        AffineTransform grAt  = new AffineTransform();\r
+        if(fill.isRotatedWithShape()) {\r
+            double rotation = shape.getRotation();\r
+            if (rotation != 0.) {\r
+                double centerX = anchor.getX() + anchor.getWidth() / 2;\r
+                double centerY = anchor.getY() + anchor.getHeight() / 2;\r
+\r
+                grAt.translate(centerX, centerY);\r
+                grAt.rotate(Math.toRadians(-rotation));\r
+                grAt.translate(-centerX, -centerY);\r
+            }\r
+        }\r
+\r
+        return new LinearGradientPaint\r
+            (p1, p2, fractions, colors, CycleMethod.NO_CYCLE, ColorSpaceType.SRGB, grAt);\r
+    }\r
+\r
+    protected Paint createRadialGradientPaint(GradientPaint fill, Graphics2D graphics) {\r
+        Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);\r
+\r
+        Point2D pCenter = new Point2D.Double(anchor.getX() + anchor.getWidth()/2,\r
+                anchor.getY() + anchor.getHeight()/2);\r
+\r
+        float radius = (float)Math.max(anchor.getWidth(), anchor.getHeight());\r
+\r
+        float[] fractions = fill.getGradientFractions();\r
+        Color[] colors = new Color[fractions.length];\r
+\r
+        int i=0;\r
+        for (ColorStyle fc : fill.getGradientColors()) {\r
+            colors[i++] = applyColorTransform(fc);\r
+        }\r
+\r
+        return new RadialGradientPaint(pCenter, radius, fractions, colors);\r
+    }\r
+\r
+    protected Paint createPathGradientPaint(GradientPaint fill, Graphics2D graphics) {\r
+        // currently we ignore an eventually center setting\r
+        \r
+        float[] fractions = fill.getGradientFractions();\r
+        Color[] colors = new Color[fractions.length];\r
+\r
+        int i=0;\r
+        for (ColorStyle fc : fill.getGradientColors()) {\r
+            colors[i++] = applyColorTransform(fc);\r
+        }\r
+\r
+        return new PathGradientPaint(colors, fractions);\r
+    }\r
+    \r
+    protected void snapToAnchor(Point2D p, Rectangle2D anchor) {\r
+        if (p.getX() < anchor.getX()) {\r
+            p.setLocation(anchor.getX(), p.getY());\r
+        } else if (p.getX() > (anchor.getX() + anchor.getWidth())) {\r
+            p.setLocation(anchor.getX() + anchor.getWidth(), p.getY());\r
+        }\r
+\r
+        if (p.getY() < anchor.getY()) {\r
+            p.setLocation(p.getX(), anchor.getY());\r
+        } else if (p.getY() > (anchor.getY() + anchor.getHeight())) {\r
+            p.setLocation(p.getX(), anchor.getY() + anchor.getHeight());\r
+        }\r
+    }\r
+\r
+    public static class PathGradientPaint implements Paint {\r
+\r
+        // http://asserttrue.blogspot.de/2010/01/how-to-iimplement-custom-paint-in-50.html\r
+        protected final Color colors[];\r
+        protected final float fractions[];\r
+        protected final int capStyle;\r
+        protected final int joinStyle;\r
+        protected final int transparency;\r
+\r
+        \r
+        public PathGradientPaint(Color colors[], float fractions[]) {\r
+            this(colors,fractions,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);\r
+        }\r
+        \r
+        public PathGradientPaint(Color colors[], float fractions[], int capStyle, int joinStyle) {\r
+            this.colors = colors;\r
+            this.fractions = fractions;\r
+            this.capStyle = capStyle;\r
+            this.joinStyle = joinStyle;\r
+\r
+            // determine transparency\r
+            boolean opaque = true;\r
+            for (int i = 0; i < colors.length; i++){\r
+                opaque = opaque && (colors[i].getAlpha() == 0xff);\r
+            }\r
+            this.transparency = opaque ? OPAQUE : TRANSLUCENT;\r
+        }\r
+        \r
+        public PaintContext createContext(ColorModel cm,\r
+            Rectangle deviceBounds,\r
+            Rectangle2D userBounds,\r
+            AffineTransform transform,\r
+            RenderingHints hints) {\r
+            return new PathGradientContext(cm, deviceBounds, userBounds, transform, hints);\r
+        }\r
+        \r
+        public int getTransparency() {\r
+            return transparency;\r
+        }\r
+\r
+        class PathGradientContext implements PaintContext {\r
+            protected final Rectangle deviceBounds;\r
+            protected final Rectangle2D userBounds;\r
+            protected final AffineTransform xform;\r
+            protected final RenderingHints hints;\r
+\r
+            /**\r
+             * for POI: the shape will be only known when the subclasses determines the concrete implementation \r
+             * in the draw/-content method, so we need to postpone the setting/creation as long as possible\r
+             **/\r
+            protected final Shape shape;\r
+            protected final PaintContext pCtx;\r
+            protected final int gradientSteps;\r
+            WritableRaster raster;\r
+\r
+            public PathGradientContext(\r
+                  ColorModel cm\r
+                , Rectangle deviceBounds\r
+                , Rectangle2D userBounds\r
+                , AffineTransform xform\r
+                , RenderingHints hints\r
+            ) {\r
+                shape = (Shape)hints.get(Drawable.GRADIENT_SHAPE);\r
+                if (shape == null) {\r
+                    throw new IllegalPathStateException("PathGradientPaint needs a shape to be set via the rendering hint PathGradientPaint.GRADIANT_SHAPE.");\r
+                }\r
+\r
+                this.deviceBounds = deviceBounds;\r
+                this.userBounds = userBounds;\r
+                this.xform = xform;\r
+                this.hints = hints;\r
+\r
+                gradientSteps = getGradientSteps(shape);\r
+\r
+                Point2D start = new Point2D.Double(0, 0);\r
+                Point2D end = new Point2D.Double(gradientSteps, 0);\r
+                LinearGradientPaint gradientPaint = new LinearGradientPaint(start, end, fractions, colors, CycleMethod.NO_CYCLE, ColorSpaceType.SRGB, new AffineTransform());\r
+                \r
+                Rectangle bounds = new Rectangle(0, 0, gradientSteps, 1);\r
+                pCtx = gradientPaint.createContext(cm, bounds, bounds, new AffineTransform(), hints);\r
+            }\r
+\r
+            public void dispose() {}\r
+\r
+            public ColorModel getColorModel() {\r
+                return pCtx.getColorModel();\r
+            }\r
+\r
+            public Raster getRaster(int xOffset, int yOffset, int w, int h) {\r
+                ColorModel cm = getColorModel();\r
+                if (raster == null) createRaster();\r
+\r
+                // TODO: eventually use caching here\r
+                WritableRaster childRaster = cm.createCompatibleWritableRaster(w, h);\r
+                Rectangle2D childRect = new Rectangle2D.Double(xOffset, yOffset, w, h);\r
+                if (!childRect.intersects(deviceBounds)) {\r
+                    // usually doesn't happen ...\r
+                    return childRaster;\r
+                }\r
+                \r
+                Rectangle2D destRect = new Rectangle2D.Double();\r
+                Rectangle2D.intersect(childRect, deviceBounds, destRect);\r
+                int dx = (int)(destRect.getX()-deviceBounds.getX());\r
+                int dy = (int)(destRect.getY()-deviceBounds.getY());\r
+                int dw = (int)destRect.getWidth();\r
+                int dh = (int)destRect.getHeight();\r
+                Object data = raster.getDataElements(dx, dy, dw, dh, null);\r
+                dx = (int)(destRect.getX()-childRect.getX());\r
+                dy = (int)(destRect.getY()-childRect.getY());\r
+                childRaster.setDataElements(dx, dy, dw, dh, data);\r
+                \r
+                return childRaster;\r
+            }\r
+\r
+            protected int getGradientSteps(Shape shape) {\r
+                Rectangle rect = shape.getBounds();\r
+                int lower = 1;\r
+                int upper = (int)(Math.max(rect.getWidth(),rect.getHeight())/2.0);\r
+                while (lower < upper-1) {\r
+                    int mid = lower + (upper - lower) / 2;\r
+                    BasicStroke bs = new BasicStroke(mid, capStyle, joinStyle);\r
+                    Area area = new Area(bs.createStrokedShape(shape));\r
+                    if (area.isSingular()) {\r
+                        upper = mid;\r
+                    } else {\r
+                        lower = mid;\r
+                    }\r
+                }\r
+                return upper;\r
+            }\r
+            \r
+            \r
+            \r
+            protected void createRaster() {\r
+                ColorModel cm = getColorModel();\r
+                raster = cm.createCompatibleWritableRaster((int)deviceBounds.getWidth(), (int)deviceBounds.getHeight());\r
+                BufferedImage img = new BufferedImage(cm, raster, false, null);\r
+                Graphics2D graphics = img.createGraphics();\r
+                graphics.setRenderingHints(hints);\r
+                graphics.translate(-deviceBounds.getX(), -deviceBounds.getY());\r
+                graphics.transform(xform);\r
+\r
+                Raster img2 = pCtx.getRaster(0, 0, gradientSteps, 1);\r
+                int rgb[] = new int[cm.getNumComponents()];\r
+\r
+                for (int i = gradientSteps-1; i>=0; i--) {\r
+                    img2.getPixel(i, 0, rgb);\r
+                    Color c = new Color(rgb[0],rgb[1],rgb[2]);\r
+                    if (rgb.length == 4) {\r
+                        // it doesn't work to use just a color with transparency ...\r
+                        graphics.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC, rgb[3]/255.0f));                           \r
+                    }\r
+                    graphics.setStroke(new BasicStroke(i+1, capStyle, joinStyle));\r
+                    graphics.setColor(c);\r
+                    graphics.draw(shape);\r
+                }\r
+                \r
+                graphics.dispose();\r
+            }\r
+        }\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawShape.java
new file mode 100644 (file)
index 0000000..f2510a0
--- /dev/null
@@ -0,0 +1,109 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.geom.AffineTransform;\r
+import java.awt.geom.Rectangle2D;\r
+\r
+import org.apache.poi.sl.usermodel.PlaceableShape;\r
+import org.apache.poi.sl.usermodel.Shape;\r
+\r
+\r
+public class DrawShape<T extends Shape> implements Drawable {\r
+\r
+    protected final T shape;\r
+    \r
+    public DrawShape(T shape) {\r
+        this.shape = shape;\r
+    }\r
+    \r
+    /**\r
+     * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.\r
+     *\r
+     * @param graphics the graphics whos transform matrix will be modified\r
+     */\r
+    public void applyTransform(Graphics2D graphics) {\r
+        Rectangle2D anchor = shape.getAnchor();\r
+        AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);\r
+        if(tx != null) {\r
+            anchor = tx.createTransformedShape(anchor).getBounds2D();\r
+        }\r
+\r
+        // rotation\r
+        double rotation = shape.getRotation();\r
+        if (rotation != 0.) {\r
+            // PowerPoint rotates shapes relative to the geometric center\r
+            double centerX = anchor.getCenterX();\r
+            double centerY = anchor.getCenterY();\r
+\r
+            // normalize rotation\r
+            rotation = (360.+(rotation%360.))%360.;\r
+            int quadrant = (((int)rotation+45)/90)%4;\r
+            double scaleX = 1.0, scaleY = 1.0;\r
+\r
+            // scale to bounding box (bug #53176)\r
+            if (quadrant == 1 || quadrant == 3) {\r
+                // In quadrant 1 and 3, which is basically a shape in a more or less portrait orientation \r
+                // (45-135 degrees and 225-315 degrees), we need to first rotate the shape by a multiple \r
+                // of 90 degrees and then resize the bounding box to its original bbox. After that we can \r
+                // rotate the shape to the exact rotation amount.\r
+                // It's strange that you'll need to rotate the shape back and forth again, but you can\r
+                // think of it, as if you paint the shape on a canvas. First you rotate the canvas, which might\r
+                // be already (differently) scaled, so you can paint the shape in its default orientation\r
+                // and later on, turn it around again to compare it with its original size ...\r
+                AffineTransform txg = new AffineTransform(); // graphics coordinate space\r
+                AffineTransform txs = new AffineTransform(tx); // shape coordinate space\r
+                txg.translate(centerX, centerY);\r
+                txg.rotate(Math.toRadians(quadrant*90));\r
+                txg.translate(-centerX, -centerY);\r
+                txs.translate(centerX, centerY);\r
+                txs.rotate(Math.toRadians(-quadrant*90));\r
+                txs.translate(-centerX, -centerY);\r
+                txg.concatenate(txs);\r
+                Rectangle2D anchor2 = txg.createTransformedShape(shape.getAnchor()).getBounds2D();\r
+                scaleX = anchor.getWidth() == 0. ? 1.0 : anchor.getWidth() / anchor2.getWidth();\r
+                scaleY = anchor.getHeight() == 0. ? 1.0 : anchor.getHeight() / anchor2.getHeight();\r
+            }\r
+\r
+            // transformation is applied reversed ...\r
+            graphics.translate(centerX, centerY);\r
+            graphics.rotate(Math.toRadians(rotation-quadrant*90.));\r
+            graphics.scale(scaleX, scaleY);\r
+            graphics.rotate(Math.toRadians(quadrant*90));\r
+            graphics.translate(-centerX, -centerY);\r
+        }\r
+\r
+        //flip horizontal\r
+        if (shape.getFlipHorizontal()) {\r
+            graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());\r
+            graphics.scale(-1, 1);\r
+            graphics.translate(-anchor.getX(), -anchor.getY());\r
+        }\r
+\r
+        //flip vertical\r
+        if (shape.getFlipVertical()) {\r
+            graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());\r
+            graphics.scale(1, -1);\r
+            graphics.translate(-anchor.getX(), -anchor.getY());\r
+        }\r
+    }\r
+\r
+\r
+    public void draw(Graphics2D graphics) {\r
+    }\r
+\r
+    public void drawContent(Graphics2D context) {\r
+    }\r
+    \r
+    public static Rectangle2D getAnchor(Graphics2D graphics, PlaceableShape shape) {\r
+        Rectangle2D anchor = shape.getAnchor();\r
+        if(graphics == null)  {\r
+            return anchor;\r
+        }\r
+\r
+        AffineTransform tx = (AffineTransform)graphics.getRenderingHint(Drawable.GROUP_TRANSFORM);\r
+        if(tx != null) {\r
+            anchor = tx.createTransformedShape(anchor).getBounds2D();\r
+        }\r
+        return anchor;\r
+    }    \r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawSheet.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawSheet.java
new file mode 100644 (file)
index 0000000..7598d21
--- /dev/null
@@ -0,0 +1,72 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.geom.AffineTransform;\r
+\r
+import org.apache.poi.sl.usermodel.MasterSheet;\r
+import org.apache.poi.sl.usermodel.Shape;\r
+import org.apache.poi.sl.usermodel.Sheet;\r
+\r
+\r
+public class DrawSheet implements Drawable {\r
+\r
+    protected final Sheet sheet;\r
+    \r
+    public DrawSheet(Sheet sheet) {\r
+        this.sheet = sheet;\r
+    }\r
+    \r
+    public void applyTransform(Graphics2D context) {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+\r
+    public void draw(Graphics2D graphics) {\r
+        DrawFactory drawFact = DrawFactory.getInstance(graphics);\r
+        MasterSheet master = sheet.getMasterSheet();\r
+        \r
+        if(sheet.getFollowMasterGraphics() && master != null) {\r
+            Drawable drawer = drawFact.getDrawable(master);\r
+            drawer.draw(graphics);\r
+        }\r
+        \r
+        graphics.setRenderingHint(Drawable.GROUP_TRANSFORM, new AffineTransform());\r
+\r
+        for (Shape shape : sheet.getShapes()) {\r
+            if(!canDraw(shape)) continue;\r
+            \r
+            // remember the initial transform and restore it after we are done with drawing\r
+            AffineTransform at = graphics.getTransform();\r
+\r
+            // concrete implementations can make sense of this hint,\r
+            // for example PSGraphics2D or PDFGraphics2D would call gsave() / grestore\r
+            graphics.setRenderingHint(Drawable.GSAVE, true);\r
+\r
+            // apply rotation and flipping\r
+            Drawable drawer = drawFact.getDrawable(shape);\r
+            drawer.applyTransform(graphics);\r
+            // draw stuff\r
+            drawer.draw(graphics);\r
+\r
+            // restore the coordinate system\r
+            graphics.setTransform(at);\r
+\r
+            graphics.setRenderingHint(Drawable.GRESTORE, true);\r
+        }\r
+    }\r
+\r
+    public void drawContent(Graphics2D context) {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+\r
+    /**\r
+     * Checks if this <code>sheet</code> displays the specified shape.\r
+     *\r
+     * Subclasses can override it and skip certain shapes from drawings,\r
+     * for instance, slide masters and layouts don't display placeholders\r
+     */\r
+    protected boolean canDraw(Shape shape){\r
+        return true;\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawSimpleShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawSimpleShape.java
new file mode 100644 (file)
index 0000000..5bb6f34
--- /dev/null
@@ -0,0 +1,391 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.*;\r
+import java.awt.geom.*;\r
+import java.io.*;\r
+import java.nio.charset.Charset;\r
+import java.util.*;\r
+import java.util.List;\r
+\r
+import javax.xml.bind.*;\r
+import javax.xml.stream.*;\r
+import javax.xml.stream.EventFilter;\r
+import javax.xml.stream.events.StartElement;\r
+import javax.xml.stream.events.XMLEvent;\r
+\r
+import org.apache.poi.sl.draw.binding.CTCustomGeometry2D;\r
+import org.apache.poi.sl.draw.geom.*;\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.sl.usermodel.LineDecoration.DecorationSize;\r
+import org.apache.poi.sl.usermodel.StrokeStyle.LineDash;\r
+import org.apache.poi.util.Units;\r
+\r
+\r
+public class DrawSimpleShape<T extends SimpleShape> extends DrawShape<T> {\r
+\r
+    public DrawSimpleShape(T shape) {\r
+        super(shape);\r
+    }\r
+\r
+    @Override\r
+    public void draw(Graphics2D graphics) {\r
+//        RenderableShape rShape = new RenderableShape(this);\r
+//        rShape.render(graphics);\r
+\r
+        DrawPaint drawPaint = DrawFactory.getInstance(graphics).getPaint(shape);\r
+        Paint fill = drawPaint.getPaint(graphics, shape.getFillStyle().getPaint());\r
+        Paint line = drawPaint.getPaint(graphics, shape.getStrokeStyle().getPaint());\r
+        BasicStroke stroke = getStroke(); // the stroke applies both to the shadow and the shape\r
+        graphics.setStroke(stroke);\r
+\r
+        Collection<Outline> elems = computeOutlines(graphics);\r
+        \r
+        // first paint the shadow\r
+        drawShadow(graphics, elems, fill, line);\r
+        \r
+        // then fill the shape interior\r
+        if (fill != null) {\r
+            graphics.setPaint(fill);\r
+            for (Outline o : elems) {\r
+                if (o.getPath().isFilled()){\r
+                    java.awt.Shape s = o.getOutline();\r
+                    graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);\r
+                    graphics.fill(s);\r
+                }                \r
+            }\r
+        }\r
+        \r
+        // then draw any content within this shape (text, image, etc.)\r
+        drawContent(graphics);\r
+\r
+        // then stroke the shape outline\r
+        if(line != null) {\r
+            graphics.setPaint(line);\r
+            for(Outline o : elems){\r
+                if(o.getPath().isStroked()){\r
+                    java.awt.Shape s = o.getOutline();\r
+                    graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);\r
+                    graphics.draw(s);\r
+                }\r
+            }\r
+        }\r
+        \r
+        // draw line decorations\r
+        drawDecoration(graphics, line, stroke);\r
+    }\r
+\r
+    protected void drawDecoration(Graphics2D graphics, Paint line, BasicStroke stroke) {\r
+        if(line == null) return;\r
+        graphics.setPaint(line);\r
+        \r
+        List<Outline> lst = new ArrayList<Outline>();\r
+        LineDecoration deco = shape.getLineDecoration();\r
+        Outline head = getHeadDecoration(graphics, deco, stroke);\r
+        if (head != null) lst.add(head);\r
+        Outline tail = getTailDecoration(graphics, deco, stroke);\r
+        if (tail != null) lst.add(tail);\r
+        \r
+        \r
+        for(Outline o : lst){\r
+            java.awt.Shape s = o.getOutline();\r
+            Path p = o.getPath();\r
+            graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);\r
+            \r
+            if(p.isFilled()) graphics.fill(s);\r
+            if(p.isStroked()) graphics.draw(s);\r
+        }\r
+    }\r
+\r
+    protected Outline getTailDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {\r
+        DecorationSize tailLength = deco.getTailLength();\r
+        DecorationSize tailWidth = deco.getTailWidth();\r
+    \r
+        double lineWidth = Math.max(2.5, stroke.getLineWidth());\r
+    \r
+        Rectangle2D anchor = getAnchor(graphics, shape);\r
+        double x2 = anchor.getX() + anchor.getWidth(),\r
+                y2 = anchor.getY() + anchor.getHeight();\r
+    \r
+        double alpha = Math.atan(anchor.getHeight() / anchor.getWidth());\r
+    \r
+        AffineTransform at = new AffineTransform();\r
+        java.awt.Shape shape = null;\r
+        Path p = null;\r
+        Rectangle2D bounds;\r
+        double scaleY = Math.pow(2, tailWidth.ordinal());\r
+        double scaleX = Math.pow(2, tailLength.ordinal());\r
+        switch (deco.getTailShape()) {\r
+            case OVAL:\r
+                p = new Path();\r
+                shape = new Ellipse2D.Double(0, 0, lineWidth * scaleX, lineWidth * scaleY);\r
+                bounds = shape.getBounds2D();\r
+                at.translate(x2 - bounds.getWidth() / 2, y2 - bounds.getHeight() / 2);\r
+                at.rotate(alpha, bounds.getX() + bounds.getWidth() / 2, bounds.getY() + bounds.getHeight() / 2);\r
+                break;\r
+            case ARROW:\r
+                p = new Path();\r
+                GeneralPath arrow = new GeneralPath();\r
+                arrow.moveTo((float) (-lineWidth * 3), (float) (-lineWidth * 2));\r
+                arrow.lineTo(0, 0);\r
+                arrow.lineTo((float) (-lineWidth * 3), (float) (lineWidth * 2));\r
+                shape = arrow;\r
+                at.translate(x2, y2);\r
+                at.rotate(alpha);\r
+                break;\r
+            case TRIANGLE:\r
+                p = new Path();\r
+                scaleY = tailWidth.ordinal() + 1;\r
+                scaleX = tailLength.ordinal() + 1;\r
+                GeneralPath triangle = new GeneralPath();\r
+                triangle.moveTo((float) (-lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));\r
+                triangle.lineTo(0, 0);\r
+                triangle.lineTo((float) (-lineWidth * scaleX), (float) (lineWidth * scaleY / 2));\r
+                triangle.closePath();\r
+                shape = triangle;\r
+                at.translate(x2, y2);\r
+                at.rotate(alpha);\r
+                break;\r
+            default:\r
+                break;\r
+        }\r
+    \r
+        if (shape != null) {\r
+            shape = at.createTransformedShape(shape);\r
+        }\r
+        return shape == null ? null : new Outline(shape, p);\r
+    }\r
+    \r
+    Outline getHeadDecoration(Graphics2D graphics, LineDecoration deco, BasicStroke stroke) {\r
+        DecorationSize headLength = deco.getHeadLength();\r
+        DecorationSize headWidth = deco.getHeadWidth();\r
+    \r
+        double lineWidth = Math.max(2.5, stroke.getLineWidth());\r
+    \r
+        Rectangle2D anchor = getAnchor(graphics, shape);\r
+        double x1 = anchor.getX(),\r
+                y1 = anchor.getY();\r
+    \r
+        double alpha = Math.atan(anchor.getHeight() / anchor.getWidth());\r
+    \r
+        AffineTransform at = new AffineTransform();\r
+        java.awt.Shape shape = null;\r
+        Path p = null;\r
+        Rectangle2D bounds;\r
+        double scaleY = 1;\r
+        double scaleX = 1;\r
+        switch (deco.getHeadShape()) {\r
+            case OVAL:\r
+                p = new Path();\r
+                shape = new Ellipse2D.Double(0, 0, lineWidth * scaleX, lineWidth * scaleY);\r
+                bounds = shape.getBounds2D();\r
+                at.translate(x1 - bounds.getWidth() / 2, y1 - bounds.getHeight() / 2);\r
+                at.rotate(alpha, bounds.getX() + bounds.getWidth() / 2, bounds.getY() + bounds.getHeight() / 2);\r
+                break;\r
+            case STEALTH:\r
+            case ARROW:\r
+                p = new Path(false, true);\r
+                GeneralPath arrow = new GeneralPath();\r
+                arrow.moveTo((float) (lineWidth * 3 * scaleX), (float) (-lineWidth * scaleY * 2));\r
+                arrow.lineTo(0, 0);\r
+                arrow.lineTo((float) (lineWidth * 3 * scaleX), (float) (lineWidth * scaleY * 2));\r
+                shape = arrow;\r
+                at.translate(x1, y1);\r
+                at.rotate(alpha);\r
+                break;\r
+            case TRIANGLE:\r
+                p = new Path();\r
+                scaleY = headWidth.ordinal() + 1;\r
+                scaleX = headLength.ordinal() + 1;\r
+                GeneralPath triangle = new GeneralPath();\r
+                triangle.moveTo((float) (lineWidth * scaleX), (float) (-lineWidth * scaleY / 2));\r
+                triangle.lineTo(0, 0);\r
+                triangle.lineTo((float) (lineWidth * scaleX), (float) (lineWidth * scaleY / 2));\r
+                triangle.closePath();\r
+                shape = triangle;\r
+                at.translate(x1, y1);\r
+                at.rotate(alpha);\r
+                break;\r
+            default:\r
+                break;\r
+        }\r
+    \r
+        if (shape != null) {\r
+            shape = at.createTransformedShape(shape);\r
+        }\r
+        return shape == null ? null : new Outline(shape, p);\r
+    }\r
+    \r
+    public BasicStroke getStroke() {\r
+        StrokeStyle strokeStyle = shape.getStrokeStyle();\r
+        \r
+        float lineWidth = (float) strokeStyle.getLineWidth();\r
+        if (lineWidth == 0.0f) lineWidth = 0.25f; // Both PowerPoint and OOo draw zero-length lines as 0.25pt\r
+\r
+        LineDash lineDash = strokeStyle.getLineDash();\r
+        int dashPatI[] = lineDash.pattern;\r
+        float[] dashPatF = new float[dashPatI.length];\r
+        final float dash_phase = 0;\r
+        for (int i=0; i<dashPatI.length; i++) {\r
+            dashPatF[i] = dashPatI[i]*lineWidth;\r
+        }\r
+\r
+        int lineCap;\r
+        switch (strokeStyle.getLineCap()) {\r
+            case ROUND:\r
+                lineCap = BasicStroke.CAP_ROUND;\r
+                break;\r
+            case SQUARE:\r
+                lineCap = BasicStroke.CAP_SQUARE;\r
+                break;\r
+            default:\r
+            case FLAT:\r
+                lineCap = BasicStroke.CAP_BUTT;\r
+                break;\r
+        }\r
+\r
+        int lineJoin = BasicStroke.JOIN_ROUND;\r
+\r
+        return new BasicStroke(lineWidth, lineCap, lineJoin, Math.max(1, lineWidth), dashPatF, dash_phase);\r
+    }\r
+\r
+    protected void drawShadow(\r
+            Graphics2D graphics\r
+          , Collection<Outline> outlines\r
+          , Paint fill\r
+          , Paint line\r
+    ) {\r
+          Shadow shadow = shape.getShadow();\r
+          if (shadow == null || (fill == null && line == null)) return;\r
+\r
+          double shapeRotation = shape.getRotation();\r
+          if(shape.getFlipVertical()) {\r
+              shapeRotation += 180;\r
+          }\r
+          double angle = shadow.getAngle() - shapeRotation;\r
+          double dist = shadow.getDistance();\r
+          double dx = dist * Math.cos(Math.toRadians(angle));\r
+          double dy = dist * Math.sin(Math.toRadians(angle));\r
+          \r
+          graphics.translate(dx, dy);\r
+          \r
+          for(Outline o : outlines){\r
+              java.awt.Shape s = o.getOutline();\r
+              Path p = o.getPath();\r
+              graphics.setRenderingHint(Drawable.GRADIENT_SHAPE, s);\r
+              \r
+              if(fill != null && p.isFilled()){\r
+                  graphics.setPaint(fill);\r
+                  graphics.fill(s);\r
+              } else if (line != null && p.isStroked()) {\r
+                  graphics.setPaint(line);\r
+                  graphics.draw(s);\r
+              }\r
+          }\r
+\r
+          graphics.translate(-dx, -dy);\r
+      }\r
+      \r
+    protected static CustomGeometry getCustomGeometry(String name) {\r
+        return getCustomGeometry(name, null);\r
+    }\r
+    \r
+    protected static CustomGeometry getCustomGeometry(String name, Graphics2D graphics) {\r
+        @SuppressWarnings("unchecked")\r
+        Map<String, CustomGeometry> presets = (graphics == null)\r
+            ? null\r
+            : (Map<String, CustomGeometry>)graphics.getRenderingHint(Drawable.PRESET_GEOMETRY_CACHE);\r
+        \r
+        if (presets == null) {\r
+            presets = new HashMap<String,CustomGeometry>();\r
+            if (graphics != null) {\r
+                graphics.setRenderingHint(Drawable.PRESET_GEOMETRY_CACHE, presets);\r
+            }\r
+            \r
+            String packageName = "org.apache.poi.sl.draw.binding";\r
+            InputStream presetIS = Drawable.class.getResourceAsStream("presetShapeDefinitions.xml");\r
+            Reader xml = new InputStreamReader( presetIS, Charset.forName("UTF-8") );\r
+    \r
+            // StAX:\r
+            EventFilter startElementFilter = new EventFilter() {\r
+                @Override\r
+                public boolean accept(XMLEvent event) {\r
+                    return event.isStartElement();\r
+                }\r
+            };\r
+            \r
+            try {\r
+                XMLInputFactory staxFactory = XMLInputFactory.newInstance();\r
+                XMLEventReader staxReader = staxFactory.createXMLEventReader(xml);\r
+                XMLEventReader staxFiltRd = staxFactory.createFilteredReader(staxReader, startElementFilter);\r
+                // Ignore StartElement:\r
+                staxFiltRd.nextEvent();\r
+                // JAXB:\r
+                JAXBContext jaxbContext = JAXBContext.newInstance(packageName);\r
+                Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();\r
+        \r
+                while (staxFiltRd.peek() != null) {\r
+                    StartElement evRoot = (StartElement)staxFiltRd.peek();\r
+                    String cusName = evRoot.getName().getLocalPart();\r
+                    // XMLEvent ev = staxReader.nextEvent();\r
+                    JAXBElement<org.apache.poi.sl.draw.binding.CTCustomGeometry2D> el = unmarshaller.unmarshal(staxReader, CTCustomGeometry2D.class);\r
+                    CTCustomGeometry2D cusGeom = el.getValue();\r
+                    \r
+                    presets.put(cusName, new CustomGeometry(cusGeom));\r
+                }\r
+            } catch (Exception e) {\r
+                throw new RuntimeException("Unable to load preset geometries.", e);\r
+            }\r
+        }\r
+        \r
+        return presets.get(name);\r
+    }\r
+    \r
+    protected Collection<Outline> computeOutlines(Graphics2D graphics) {\r
+\r
+        List<Outline> lst = new ArrayList<Outline>();\r
+        CustomGeometry geom = shape.getGeometry();\r
+        if(geom == null) {\r
+            return lst;\r
+        }\r
+\r
+        Rectangle2D anchor = getAnchor(graphics, shape);\r
+        for (Path p : geom) {\r
+\r
+            double w = p.getW() == -1 ? anchor.getWidth() * Units.EMU_PER_POINT : p.getW();\r
+            double h = p.getH() == -1 ? anchor.getHeight() * Units.EMU_PER_POINT : p.getH();\r
+\r
+            // the guides in the shape definitions are all defined relative to each other,\r
+            // so we build the path starting from (0,0).\r
+            final Rectangle2D pathAnchor = new Rectangle2D.Double(0,0,w,h);\r
+\r
+            Context ctx = new Context(geom, pathAnchor, shape);\r
+\r
+            java.awt.Shape gp = p.getPath(ctx);\r
+\r
+            // translate the result to the canvas coordinates in points\r
+            AffineTransform at = new AffineTransform();\r
+            at.translate(anchor.getX(), anchor.getY());\r
+\r
+            double scaleX, scaleY;\r
+            if (p.getW() != -1) {\r
+                scaleX = anchor.getWidth() / p.getW();\r
+            } else {\r
+                scaleX = 1.0 / Units.EMU_PER_POINT;\r
+            }\r
+            if (p.getH() != -1) {\r
+                scaleY = anchor.getHeight() / p.getH();\r
+            } else {\r
+                scaleY = 1.0 / Units.EMU_PER_POINT;\r
+            }\r
+\r
+            at.scale(scaleX, scaleY);\r
+\r
+            java.awt.Shape canvasShape = at.createTransformedShape(gp);\r
+\r
+            lst.add(new Outline(canvasShape, p));\r
+        }\r
+\r
+        return lst;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextBox.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextBox.java
new file mode 100644 (file)
index 0000000..42f5316
--- /dev/null
@@ -0,0 +1,9 @@
+package org.apache.poi.sl.draw;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+\r
+public class DrawTextBox<T extends TextBox> extends DrawAutoShape<T> {\r
+    public DrawTextBox(T shape) {\r
+        super(shape);\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextFragment.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextFragment.java
new file mode 100644 (file)
index 0000000..c9bf1f4
--- /dev/null
@@ -0,0 +1,94 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.font.TextLayout;\r
+import java.text.*;\r
+\r
+import org.apache.poi.xslf.usermodel.XSLFRenderingHint;\r
+\r
+public class DrawTextFragment implements Drawable  {\r
+    final TextLayout layout;\r
+    final AttributedString str;\r
+    double x, y;\r
+    \r
+    public DrawTextFragment(TextLayout layout, AttributedString str) {\r
+        this.layout = layout;\r
+        this.str = str;\r
+    }\r
+\r
+    public void setPosition(double x, double y) {\r
+        // TODO: replace it, by applyTransform????\r
+        this.x = x;\r
+        this.y = y;\r
+    }\r
+\r
+    public void draw(Graphics2D graphics){\r
+        if(str == null) {\r
+            return;\r
+        }\r
+\r
+        double yBaseline = y + layout.getAscent();\r
+\r
+        Integer textMode = (Integer)graphics.getRenderingHint(XSLFRenderingHint.TEXT_RENDERING_MODE);\r
+        if(textMode != null && textMode == XSLFRenderingHint.TEXT_AS_SHAPES){\r
+            layout.draw(graphics, (float)x, (float)yBaseline);\r
+        } else {\r
+            graphics.drawString(str.getIterator(), (float)x, (float)yBaseline );\r
+        }\r
+    }\r
+\r
+    public void applyTransform(Graphics2D graphics) {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+\r
+    public void drawContent(Graphics2D graphics) {\r
+        // TODO Auto-generated method stub\r
+        \r
+    }\r
+    \r
+    public TextLayout getLayout() {\r
+        return layout;\r
+    }\r
+\r
+    public AttributedString getAttributedString() {\r
+        return str;\r
+    }\r
+    \r
+    /**\r
+     * @return full height of this text run which is sum of ascent, descent and leading\r
+     */\r
+    public float getHeight(){\r
+        double h = Math.ceil(layout.getAscent()) + Math.ceil(layout.getDescent()) + layout.getLeading();\r
+        return (float)h;\r
+    }\r
+\r
+    /**\r
+     *\r
+     * @return width if this text run\r
+     */\r
+    public float getWidth(){\r
+        return layout.getAdvance();\r
+    }\r
+\r
+    /**\r
+     *\r
+     * @return the string to be painted\r
+     */\r
+    public String getString(){\r
+        if (str == null) return "";\r
+\r
+        AttributedCharacterIterator it = str.getIterator();\r
+         StringBuilder buf = new StringBuilder();\r
+         for (char c = it.first(); c != CharacterIterator.DONE; c = it.next()) {\r
+             buf.append(c);\r
+         }\r
+        return buf.toString();\r
+    }\r
+\r
+    @Override\r
+    public String toString(){\r
+        return "[" + getClass().getSimpleName() + "] " + getString();\r
+    }\r
+    \r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextParagraph.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextParagraph.java
new file mode 100644 (file)
index 0000000..f116f1b
--- /dev/null
@@ -0,0 +1,381 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Color;\r
+import java.awt.Graphics2D;\r
+import java.awt.font.*;\r
+import java.awt.geom.Rectangle2D;\r
+import java.text.*;\r
+import java.text.AttributedCharacterIterator.Attribute;\r
+import java.util.*;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+import org.apache.poi.sl.usermodel.TextParagraph.BulletStyle;\r
+import org.apache.poi.sl.usermodel.TextRun.TextCap;\r
+import org.apache.poi.sl.usermodel.TextParagraph.TextAlign;\r
+\r
+public class DrawTextParagraph implements Drawable {\r
+    protected TextParagraph paragraph;\r
+    double x, y;\r
+    protected Insets2D insets = new Insets2D(0,0,0,0);\r
+    protected List<DrawTextFragment> lines = new ArrayList<DrawTextFragment>();\r
+    protected String rawText;\r
+    protected DrawTextFragment bullet;\r
+\r
+    /**\r
+     * the highest line in this paragraph. Used for line spacing.\r
+     */\r
+    protected double maxLineHeight;\r
+\r
+    public DrawTextParagraph(TextParagraph paragraph) {\r
+        this.paragraph = paragraph;\r
+    }\r
+\r
+    public Insets2D getInsets() {\r
+        return insets;\r
+    }\r
+\r
+    public void setInsets(Insets2D insets) {\r
+        this.insets.set(insets.top, insets.left, insets.bottom, insets.right);\r
+    }\r
+\r
+    public void setPosition(double x, double y) {\r
+        // TODO: replace it, by applyTransform????\r
+        this.x = x;\r
+        this.y = y;\r
+    }\r
+\r
+    public double getY() {\r
+        return y;\r
+    }\r
+    \r
+    public void draw(Graphics2D graphics){\r
+        if (lines.isEmpty()) return;\r
+        \r
+        double leftInset = insets.left;\r
+        double rightInset = insets.right;\r
+        double penY = y;\r
+\r
+        double leftMargin = paragraph.getLeftMargin();\r
+        boolean firstLine = true;\r
+        double indent = paragraph.getIndent();\r
+\r
+        //The vertical line spacing\r
+        double spacing = paragraph.getLineSpacing();\r
+        for(DrawTextFragment line : lines){\r
+            double penX = x + leftMargin;\r
+\r
+            if(firstLine) {\r
+                if (!isEmptyParagraph()) {\r
+                    bullet = getBullet(graphics, line.getAttributedString().getIterator());\r
+                }\r
+                \r
+                if(bullet != null){\r
+                    if (indent < 0) {\r
+                        // a negative value means "Hanging" indentation and\r
+                        // indicates the position of the actual bullet character.\r
+                        // (the bullet is shifted to right relative to the text)\r
+                        bullet.setPosition(penX + indent, penY);\r
+                    } else if(indent > 0){\r
+                        // a positive value means the "First Line" indentation:\r
+                        // the first line is indented and other lines start at the bullet ofset\r
+                        bullet.setPosition(penX, penY);\r
+                        penX += indent;\r
+                    } else {\r
+                        // a zero indent means that the bullet and text have the same offset\r
+                        bullet.setPosition(penX, penY);\r
+\r
+                        // don't let text overlay the bullet and advance by the bullet width\r
+                        penX += bullet.getLayout().getAdvance() + 1;\r
+                    }\r
+\r
+                    bullet.draw(graphics);\r
+                } else {\r
+                    penX += indent;\r
+                }\r
+            }\r
+\r
+            Rectangle2D anchor = DrawShape.getAnchor(graphics, paragraph.getParentShape());\r
+\r
+            switch (paragraph.getTextAlign()) {\r
+                case CENTER:\r
+                    penX += (anchor.getWidth() - leftMargin - line.getWidth() - leftInset - rightInset) / 2;\r
+                    break;\r
+                case RIGHT:\r
+                    penX += (anchor.getWidth() - line.getWidth() - leftInset - rightInset);\r
+                    break;\r
+                default:\r
+                    break;\r
+            }\r
+\r
+            line.setPosition(penX, penY);\r
+            line.draw(graphics);\r
+\r
+            if(spacing > 0) {\r
+                // If linespacing >= 0, then linespacing is a percentage of normal line height.\r
+                penY += spacing*0.01* line.getHeight();\r
+            } else {\r
+                // positive value means absolute spacing in points\r
+                penY += -spacing;\r
+            }\r
+\r
+            firstLine = false;\r
+        }\r
+\r
+        y = penY - y;\r
+    }\r
+    \r
+    public float getFirstLineHeight() {\r
+        return (lines.isEmpty()) ? 0 : lines.get(0).getHeight();\r
+    }\r
+\r
+    public float getLastLineHeight() {\r
+        return (lines.isEmpty()) ? 0 : lines.get(lines.size()-1).getHeight();\r
+    }\r
+\r
+    public boolean isEmptyParagraph() {\r
+        return (lines.isEmpty() || rawText.trim().isEmpty());\r
+    }\r
+    \r
+    public void applyTransform(Graphics2D graphics) {\r
+    }\r
+\r
+    public void drawContent(Graphics2D graphics) {\r
+    }\r
+\r
+    /**\r
+     * break text into lines, each representing a line of text that fits in the wrapping width\r
+     *\r
+     * @param graphics\r
+     */\r
+    protected void breakText(Graphics2D graphics){\r
+        lines.clear();\r
+\r
+        DrawFactory fact = DrawFactory.getInstance(graphics);\r
+        StringBuilder text = new StringBuilder();\r
+        AttributedString at = getAttributedString(graphics, text);\r
+        boolean emptyParagraph = ("".equals(text.toString().trim()));\r
+\r
+        AttributedCharacterIterator it = at.getIterator();\r
+        LineBreakMeasurer measurer = new LineBreakMeasurer(it, graphics.getFontRenderContext());\r
+        for (;;) {\r
+            int startIndex = measurer.getPosition();\r
+\r
+            double wrappingWidth = getWrappingWidth(lines.size() == 0, graphics) + 1; // add a pixel to compensate rounding errors\r
+            // shape width can be smaller that the sum of insets (this was proved by a test file)\r
+            if(wrappingWidth < 0) wrappingWidth = 1;\r
+\r
+            int nextBreak = text.indexOf("\n", startIndex + 1);\r
+            if(nextBreak == -1) nextBreak = it.getEndIndex();\r
+\r
+            TextLayout layout = measurer.nextLayout((float)wrappingWidth, nextBreak, true);\r
+            if (layout == null) {\r
+                 // layout can be null if the entire word at the current position\r
+                 // does not fit within the wrapping width. Try with requireNextWord=false.\r
+                 layout = measurer.nextLayout((float)wrappingWidth, nextBreak, false);\r
+            }\r
+\r
+            if(layout == null) {\r
+                // exit if can't break any more\r
+                break;\r
+            }\r
+\r
+            int endIndex = measurer.getPosition();\r
+            // skip over new line breaks (we paint 'clear' text runs not starting or ending with \n)\r
+            if(endIndex < it.getEndIndex() && text.charAt(endIndex) == '\n'){\r
+                measurer.setPosition(endIndex + 1);\r
+            }\r
+\r
+            TextAlign hAlign = paragraph.getTextAlign();\r
+            if(hAlign == TextAlign.JUSTIFY || hAlign == TextAlign.JUSTIFY_LOW) {\r
+                layout = layout.getJustifiedLayout((float)wrappingWidth);\r
+            }\r
+\r
+            AttributedString str = (emptyParagraph)\r
+                ? null // we will not paint empty paragraphs\r
+                : new AttributedString(it, startIndex, endIndex);\r
+            DrawTextFragment line = fact.getTextFragment(layout, str);\r
+            lines.add(line);\r
+\r
+            maxLineHeight = Math.max(maxLineHeight, line.getHeight());\r
+\r
+            if(endIndex == it.getEndIndex()) break;\r
+        }\r
+\r
+        rawText = text.toString();\r
+    }\r
+\r
+    protected DrawTextFragment getBullet(Graphics2D graphics, AttributedCharacterIterator firstLineAttr) {\r
+        BulletStyle bulletStyle = paragraph.getBulletStyle();\r
+        if (bulletStyle == null) return null;\r
+\r
+        String buCharacter = bulletStyle.getBulletCharacter();\r
+        if (buCharacter == null) return null;\r
+\r
+        String buFont = bulletStyle.getBulletFont();\r
+        if (buFont == null) buFont = paragraph.getDefaultFontFamily();\r
+        assert(buFont != null);\r
+\r
+        Color buColor = bulletStyle.getBulletFontColor();\r
+        if (buColor == null) buColor = (Color)firstLineAttr.getAttribute(TextAttribute.FOREGROUND);\r
+\r
+        float fontSize = (Float)firstLineAttr.getAttribute(TextAttribute.SIZE);\r
+        float buSz = (float)bulletStyle.getBulletFontSize();\r
+        if(buSz > 0) fontSize *= buSz* 0.01;\r
+        else fontSize = -buSz;\r
+\r
+        \r
+        AttributedString str = new AttributedString(buCharacter);\r
+        str.addAttribute(TextAttribute.FOREGROUND, buColor);\r
+        str.addAttribute(TextAttribute.FAMILY, buFont);\r
+        str.addAttribute(TextAttribute.SIZE, fontSize);\r
+\r
+        TextLayout layout = new TextLayout(str.getIterator(), graphics.getFontRenderContext());\r
+        DrawFactory fact = DrawFactory.getInstance(graphics);\r
+        return fact.getTextFragment(layout, str);\r
+    }\r
+\r
+    protected String getRenderableText(TextRun tr) {\r
+        StringBuilder buf = new StringBuilder();\r
+        TextCap cap = tr.getTextCap();\r
+        for (char c : tr.getText().toCharArray()) {\r
+            if(c == '\t') {\r
+                // TODO: finish support for tabs\r
+                buf.append("  ");\r
+                continue;\r
+            }\r
+\r
+            switch (cap) {\r
+                case ALL: c = Character.toUpperCase(c); break;\r
+                case SMALL: c = Character.toLowerCase(c); break;\r
+                case NONE: break;\r
+            }\r
+\r
+            buf.append(c);\r
+        }\r
+\r
+        return buf.toString();\r
+    }\r
+\r
+    /**\r
+     * Returns wrapping width to break lines in this paragraph\r
+     *\r
+     * @param firstLine whether the first line is breaking\r
+     *\r
+     * @return  wrapping width in points\r
+     */\r
+    protected double getWrappingWidth(boolean firstLine, Graphics2D graphics){\r
+        // internal margins for the text box\r
+\r
+        double leftInset = insets.left;\r
+        double rightInset = insets.right;\r
+\r
+        Rectangle2D anchor = DrawShape.getAnchor(graphics, paragraph.getParentShape());\r
+\r
+        double leftMargin = paragraph.getLeftMargin();\r
+        double indent = paragraph.getIndent();\r
+\r
+        double width;\r
+        TextShape ts = paragraph.getParentShape();\r
+        if (!ts.getWordWrap()) {\r
+            // if wordWrap == false then we return the advance to the right border of the sheet\r
+            width = ts.getSheet().getSlideShow().getPageSize().getWidth() - anchor.getX();\r
+        } else {\r
+            width = anchor.getWidth() -  leftInset - rightInset - leftMargin;\r
+            if (firstLine) {\r
+                if (bullet != null){\r
+                    if (indent > 0) width -= indent;\r
+                } else {\r
+                    if (indent > 0) width -= indent; // first line indentation\r
+                    else if (indent < 0) { // hanging indentation: the first line start at the left margin\r
+                        width += leftMargin;\r
+                    }\r
+                }\r
+            }\r
+        }\r
+\r
+        return width;\r
+    }\r
+\r
+    private static class AttributedStringData {\r
+        Attribute attribute;\r
+        Object value;\r
+        int beginIndex, endIndex;\r
+        AttributedStringData(Attribute attribute, Object value, int beginIndex, int endIndex) {\r
+            this.attribute = attribute;\r
+            this.value = value;\r
+            this.beginIndex = beginIndex;\r
+            this.endIndex = endIndex;\r
+        }\r
+    }\r
+\r
+    protected AttributedString getAttributedString(Graphics2D graphics, StringBuilder text){\r
+        List<AttributedStringData> attList = new ArrayList<AttributedStringData>();\r
+        if (text == null) text = new StringBuilder();\r
+\r
+        DrawFontManager fontHandler = (DrawFontManager)graphics.getRenderingHint(Drawable.FONT_HANDLER);\r
+\r
+        for (TextRun run : paragraph){\r
+            String runText = getRenderableText(run);\r
+            // skip empty runs\r
+            if (runText.isEmpty()) continue;\r
+\r
+            int beginIndex = text.length();\r
+            text.append(runText);\r
+            int endIndex = text.length();\r
+\r
+            attList.add(new AttributedStringData(TextAttribute.FOREGROUND, run.getFontColor(), beginIndex, endIndex));\r
+\r
+            // user can pass an custom object to convert fonts\r
+            String fontFamily = run.getFontFamily();\r
+            @SuppressWarnings("unchecked")\r
+            Map<String,String> fontMap = (Map<String,String>)graphics.getRenderingHint(Drawable.FONT_MAP);\r
+            if (fontMap != null && fontMap.containsKey(fontFamily)) {\r
+                fontFamily = fontMap.get(fontFamily);\r
+            }\r
+            if(fontHandler != null) {\r
+                fontFamily = fontHandler.getRendererableFont(fontFamily, run.getPitchAndFamily());\r
+            }\r
+            attList.add(new AttributedStringData(TextAttribute.FAMILY, fontFamily, beginIndex, endIndex));\r
+\r
+            float fontSz = (float)run.getFontSize();\r
+            attList.add(new AttributedStringData(TextAttribute.SIZE, fontSz, beginIndex, endIndex));\r
+\r
+            if(run.isBold()) {\r
+                attList.add(new AttributedStringData(TextAttribute.WEIGHT, TextAttribute.WEIGHT_BOLD, beginIndex, endIndex));\r
+            }\r
+            if(run.isItalic()) {\r
+                attList.add(new AttributedStringData(TextAttribute.POSTURE, TextAttribute.POSTURE_OBLIQUE, beginIndex, endIndex));\r
+            }\r
+            if(run.isUnderline()) {\r
+                attList.add(new AttributedStringData(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON, beginIndex, endIndex));\r
+                attList.add(new AttributedStringData(TextAttribute.INPUT_METHOD_UNDERLINE, TextAttribute.UNDERLINE_LOW_TWO_PIXEL, beginIndex, endIndex));\r
+            }\r
+            if(run.isStrikethrough()) {\r
+                attList.add(new AttributedStringData(TextAttribute.STRIKETHROUGH, TextAttribute.STRIKETHROUGH_ON, beginIndex, endIndex));\r
+            }\r
+            if(run.isSubscript()) {\r
+                attList.add(new AttributedStringData(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUB, beginIndex, endIndex));\r
+            }\r
+            if(run.isSuperscript()) {\r
+                attList.add(new AttributedStringData(TextAttribute.SUPERSCRIPT, TextAttribute.SUPERSCRIPT_SUPER, beginIndex, endIndex));\r
+            }\r
+        }\r
+\r
+        // ensure that the paragraph contains at least one character\r
+        // We need this trick to correctly measure text\r
+        if (text.length() == 0) {\r
+            float fontSz = (float)paragraph.getDefaultFontSize();\r
+            text.append(" ");\r
+            attList.add(new AttributedStringData(TextAttribute.SIZE, fontSz, 0, 1));\r
+        }\r
+\r
+        AttributedString string = new AttributedString(text.toString());\r
+        for (AttributedStringData asd : attList) {\r
+            string.addAttribute(asd.attribute, asd.value, asd.beginIndex, asd.endIndex);\r
+        }\r
+\r
+        return string;\r
+    }\r
+\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/DrawTextShape.java
new file mode 100644 (file)
index 0000000..c71c108
--- /dev/null
@@ -0,0 +1,140 @@
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.geom.AffineTransform;\r
+import java.awt.geom.Rectangle2D;\r
+import java.awt.image.BufferedImage;\r
+import java.util.Iterator;\r
+\r
+import org.apache.poi.sl.usermodel.*;\r
+\r
+public class DrawTextShape<T extends TextShape> extends DrawSimpleShape<T> {\r
+\r
+    public DrawTextShape(T shape) {\r
+        super(shape);\r
+    }\r
+\r
+    @Override\r
+    public void drawContent(Graphics2D graphics) {\r
+        Rectangle2D anchor = DrawShape.getAnchor(graphics, shape);\r
+        Insets2D insets = shape.getInsets();\r
+        double x = anchor.getX() + insets.left;\r
+        double y = anchor.getY();\r
+\r
+        // remember the initial transform\r
+        AffineTransform tx = graphics.getTransform();\r
+\r
+        // Transform of text in flipped shapes is special.\r
+        // At this point the flip and rotation transform is already applied\r
+        // (see XSLFShape#applyTransform ), but we need to restore it to avoid painting "upside down".\r
+        // See Bugzilla 54210.\r
+\r
+        if(shape.getFlipVertical()){\r
+            graphics.translate(anchor.getX(), anchor.getY() + anchor.getHeight());\r
+            graphics.scale(1, -1);\r
+            graphics.translate(-anchor.getX(), -anchor.getY());\r
+\r
+            // text in vertically flipped shapes is rotated by 180 degrees\r
+            double centerX = anchor.getX() + anchor.getWidth()/2;\r
+            double centerY = anchor.getY() + anchor.getHeight()/2;\r
+            graphics.translate(centerX, centerY);\r
+            graphics.rotate(Math.toRadians(180));\r
+            graphics.translate(-centerX, -centerY);\r
+        }\r
+\r
+        // Horizontal flipping applies only to shape outline and not to the text in the shape.\r
+        // Applying flip second time restores the original not-flipped transform\r
+        if(shape.getFlipHorizontal()){\r
+            graphics.translate(anchor.getX() + anchor.getWidth(), anchor.getY());\r
+            graphics.scale(-1, 1);\r
+            graphics.translate(-anchor.getX() , -anchor.getY());\r
+        }\r
+\r
+\r
+        // first dry-run to calculate the total height of the text\r
+        double textHeight = shape.getTextHeight();\r
+\r
+        switch (shape.getVerticalAlignment()){\r
+            case TOP:\r
+                y += insets.top;\r
+                break;\r
+            case BOTTOM:\r
+                y += anchor.getHeight() - textHeight - insets.bottom;\r
+                break;\r
+            default:\r
+            case MIDDLE:\r
+                double delta = anchor.getHeight() - textHeight - insets.top - insets.bottom;\r
+                y += insets.top + delta/2;\r
+                break;\r
+        }\r
+\r
+        drawParagraphs(graphics, x, y);\r
+\r
+        // restore the transform\r
+        graphics.setTransform(tx);\r
+    }\r
+\r
+    /**\r
+     * paint the paragraphs starting from top left (x,y)\r
+     *\r
+     * @return  the vertical advance, i.e. the cumulative space occupied by the text\r
+     */\r
+    public double drawParagraphs(Graphics2D graphics, double x, double y) {\r
+        DrawFactory fact = DrawFactory.getInstance(graphics);\r
+        Insets2D shapePadding = shape.getInsets();\r
+\r
+        double y0 = y;\r
+        Iterator<TextParagraph> paragraphs = shape.iterator();\r
+        \r
+        boolean isFirstLine = true;\r
+        while (paragraphs.hasNext()){\r
+            TextParagraph p = paragraphs.next();\r
+            DrawTextParagraph dp = fact.getDrawable(p);\r
+            dp.setInsets(shapePadding);\r
+            dp.breakText(graphics);\r
+\r
+            if (!isFirstLine) {\r
+                // the amount of vertical white space before the paragraph\r
+                double spaceBefore = p.getSpaceBefore();\r
+                if(spaceBefore > 0) {\r
+                    // positive value means percentage spacing of the height of the first line, e.g.\r
+                    // the higher the first line, the bigger the space before the paragraph\r
+                    y += spaceBefore*0.01*dp.getFirstLineHeight();\r
+                } else {\r
+                    // negative value means the absolute spacing in points\r
+                    y += -spaceBefore;\r
+                }\r
+                isFirstLine = false;\r
+            }\r
+            \r
+            dp.setPosition(x, y);\r
+            dp.draw(graphics);\r
+            y += dp.getY();\r
+\r
+            if (paragraphs.hasNext()) {\r
+                double spaceAfter = p.getSpaceAfter();\r
+                if(spaceAfter > 0) {\r
+                    // positive value means percentage spacing of the height of the last line, e.g.\r
+                    // the higher the last line, the bigger the space after the paragraph\r
+                    y += spaceAfter*0.01*dp.getLastLineHeight();\r
+                } else {\r
+                    // negative value means the absolute spacing in points\r
+                    y += -spaceAfter;\r
+                }\r
+            }\r
+        }\r
+        return y - y0;\r
+    }\r
+\r
+    /**\r
+     * Compute the cumulative height occupied by the text\r
+     */\r
+    protected double getTextHeight(){\r
+        // dry-run in a 1x1 image and return the vertical advance\r
+        BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_RGB);\r
+        Graphics2D graphics = img.createGraphics();\r
+        return drawParagraphs(graphics, 0, 0);\r
+    }\r
+\r
+    \r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/Drawable.java b/src/scratchpad/src/org/apache/poi/sl/draw/Drawable.java
new file mode 100644 (file)
index 0000000..8789082
--- /dev/null
@@ -0,0 +1,123 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.Graphics2D;\r
+import java.awt.RenderingHints;\r
+\r
+import org.apache.poi.util.Internal;\r
+\r
+\r
+public interface Drawable {\r
+    class DrawableHint extends RenderingHints.Key {\r
+        protected DrawableHint(int id) {\r
+            super(id);\r
+        }\r
+        \r
+        public boolean isCompatibleValue(Object val) {\r
+            return true;\r
+        }\r
+    }\r
+    \r
+    /**\r
+     * {@link DrawFactory} which will be used to draw objects into this graphics context\r
+     */\r
+    DrawableHint DRAW_FACTORY = new DrawableHint(1);\r
+\r
+    /**\r
+     * Key will be internally used to store affine transformation temporarily within group shapes\r
+     */\r
+    @Internal\r
+    DrawableHint GROUP_TRANSFORM = new DrawableHint(2);\r
+\r
+    /**\r
+     * Use a custom image renderer of an instance of {@link ImageRenderer}\r
+     */\r
+    DrawableHint IMAGE_RENDERER = new DrawableHint(3);\r
+\r
+    /**\r
+     *  how to render text:\r
+     *\r
+     *  {@link #TEXT_AS_CHARACTERS} (default) means to draw via\r
+     *   {@link java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, float, float)}.\r
+     *   This mode draws text as characters. Use it if the target graphics writes the actual\r
+     *   character codes instead of glyph outlines (PDFGraphics2D, SVGGraphics2D, etc.)\r
+     *\r
+     *   {@link #TEXT_AS_SHAPES} means to render via\r
+     *   {@link java.awt.font.TextLayout#draw(java.awt.Graphics2D, float, float)}.\r
+     *   This mode draws glyphs as shapes and provides some advanced capabilities such as\r
+     *   justification and font substitution. Use it if the target graphics is an image.\r
+     *\r
+     */\r
+    DrawableHint TEXT_RENDERING_MODE = new DrawableHint(4);\r
+\r
+    /**\r
+     * PathGradientPaint needs the shape to be set.\r
+     * It will be achieved through setting it in the rendering hints\r
+     */\r
+    DrawableHint GRADIENT_SHAPE = new DrawableHint(5);\r
+\r
+\r
+    /**\r
+     * Internal key for caching the preset geometries\r
+     */\r
+    DrawableHint PRESET_GEOMETRY_CACHE = new DrawableHint(6);\r
+    \r
+    /**\r
+     * draw text via {@link java.awt.Graphics2D#drawString(java.text.AttributedCharacterIterator, float, float)}\r
+     */\r
+    int TEXT_AS_CHARACTERS = 1;\r
+\r
+    /**\r
+     * draw text via {@link java.awt.font.TextLayout#draw(java.awt.Graphics2D, float, float)}\r
+     */\r
+    int TEXT_AS_SHAPES = 2;\r
+\r
+    /**\r
+     * Use this object to resolve unknown / missing fonts when rendering slides\r
+     */\r
+    DrawableHint FONT_HANDLER = new DrawableHint(7);\r
+    DrawableHint FONT_FALLBACK = new DrawableHint(8);\r
+    DrawableHint FONT_MAP = new DrawableHint(9);\r
+    \r
+    DrawableHint GSAVE = new DrawableHint(10);\r
+    DrawableHint GRESTORE = new DrawableHint(11);\r
+    \r
+    \r
+    \r
+    /**\r
+     * Apply 2-D transforms before drawing this shape. This includes rotation and flipping.\r
+     *\r
+     * @param graphics the graphics whos transform matrix will be modified\r
+     */\r
+    void applyTransform(Graphics2D graphics);\r
+    \r
+    /**\r
+     * Draw this shape into the supplied canvas\r
+     *\r
+     * @param graphics the graphics to draw into\r
+     */\r
+    void draw(Graphics2D graphics);\r
+    \r
+    /**\r
+     * draw any content within this shape (image, text, etc.).\r
+     *\r
+     * @param graphics the graphics to draw into\r
+     */\r
+    void drawContent(Graphics2D graphics);    \r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/ImageRenderer.java b/src/scratchpad/src/org/apache/poi/sl/draw/ImageRenderer.java
new file mode 100644 (file)
index 0000000..74ac997
--- /dev/null
@@ -0,0 +1,155 @@
+/*\r
+ *  ====================================================================\r
+ *    Licensed to the Apache Software Foundation (ASF) under one or more\r
+ *    contributor license agreements.  See the NOTICE file distributed with\r
+ *    this work for additional information regarding copyright ownership.\r
+ *    The ASF licenses this file to You under the Apache License, Version 2.0\r
+ *    (the "License"); you may not use this file except in compliance with\r
+ *    the License.  You may obtain a copy of the License at\r
+ *\r
+ *        http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *    Unless required by applicable law or agreed to in writing, software\r
+ *    distributed under the License is distributed on an "AS IS" BASIS,\r
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *    See the License for the specific language governing permissions and\r
+ *    limitations under the License.\r
+ * ====================================================================\r
+ */\r
+package org.apache.poi.sl.draw;\r
+\r
+import java.awt.*;\r
+import java.awt.geom.AffineTransform;\r
+import java.awt.geom.Rectangle2D;\r
+import java.awt.image.BufferedImage;\r
+import java.awt.image.RescaleOp;\r
+import java.io.IOException;\r
+import java.io.InputStream;\r
+\r
+import javax.imageio.ImageIO;\r
+\r
+/**\r
+ * For now this class renders only images supported by the javax.imageio.ImageIO\r
+ * framework. Subclasses can override this class to support other formats, for\r
+ * example, Use Apache batik to render WMF:\r
+ *\r
+ * <pre>\r
+ * <code>\r
+ * public class MyImageRendener extends ImageRendener {\r
+ *\r
+ *     public boolean drawImage(Graphics2D graphics,Rectangle2D anchor,Insets clip) {\r
+ *         // draw image\r
+ *     }\r
+ *\r
+ *     public void loadImage(InputStream data, String contentType) throws IOException {\r
+ *         if ("image/wmf".equals(contentType)) {\r
+ *             // use Apache Batik to handle WMF\r
+ *         } else {\r
+ *             super.loadImage(data,contentType);\r
+ *         }\r
+ *     }\r
+ * }\r
+ * </code>\r
+ * </pre>\r
+ *\r
+ * and then pass this class to your instance of java.awt.Graphics2D:\r
+ *\r
+ * <pre>\r
+ * <code>\r
+ * graphics.setRenderingHint(Drawable.IMAGE_RENDERER, new MyImageRendener());\r
+ * </code>\r
+ * </pre>\r
+ */\r
+public class ImageRenderer {\r
+    protected BufferedImage img;\r
+\r
+    /**\r
+     * Load and buffer the image\r
+     *\r
+     * @param data the raw image stream\r
+     * @param contentType the content type\r
+     */\r
+    public void loadImage(InputStream data, String contentType) throws IOException {\r
+        img = ImageIO.read(data);\r
+    }\r
+\r
+    /**\r
+     * @return the buffered image\r
+     */\r
+    public BufferedImage getImage() {\r
+        return img;\r
+    }\r
+\r
+    /**\r
+     * @return the dimension of the buffered image\r
+     */\r
+    public Dimension getDimension() {\r
+        return (img == null)\r
+            ? new Dimension(0,0)\r
+            : new Dimension(img.getWidth(),img.getHeight());\r
+    }\r
+\r
+    /**\r
+     * @param alpha the alpha [0..1] to be added to the image (possibly already containing an alpha channel)\r
+     */\r
+    public void setAlpha(double alpha) {\r
+        if (img == null) return;\r
+\r
+        Dimension dim = getDimension();\r
+        BufferedImage newImg = new BufferedImage((int)dim.getWidth(), (int)dim.getHeight(), BufferedImage.TYPE_INT_ARGB);\r
+        Graphics2D g = newImg.createGraphics();\r
+        RescaleOp op = new RescaleOp(new float[]{1.0f, 1.0f, 1.0f, (float)alpha}, new float[]{0,0,0,0}, null);\r
+        g.drawImage(img, op, 0, 0);\r
+        g.dispose();\r
+        \r
+        img = newImg;\r
+    }\r
+\r
+\r
+    /**\r
+     * Render picture data into the supplied graphics\r
+     *\r
+     * @return true if the picture data was successfully rendered\r
+     */\r
+    public boolean drawImage(\r
+        Graphics2D graphics,\r
+        Rectangle2D anchor) {\r
+        return drawImage(graphics, anchor, null);\r
+    }\r
+\r
+    /**\r
+     * Render picture data into the supplied graphics\r
+     *\r
+     * @return true if the picture data was successfully rendered\r
+     */\r
+    public boolean drawImage(\r
+        Graphics2D graphics,\r
+        Rectangle2D anchor,\r
+        Insets clip) {\r
+        if (img == null) return false;\r
+\r
+        boolean isClipped = true;\r
+        if (clip == null) {\r
+            isClipped = false;\r
+            clip = new Insets(0,0,0,0);\r
+        }\r
+\r
+        int iw = img.getWidth();\r
+        int ih = img.getHeight();\r
+\r
+        double cw = (100000-clip.left-clip.right) / 100000.0;\r
+        double ch = (100000-clip.top-clip.bottom) / 100000.0;\r
+        double sx = anchor.getWidth()/(iw*cw);\r
+        double sy = anchor.getHeight()/(ih*ch);\r
+        double tx = anchor.getX()-(iw*sx*clip.left/100000.0);\r
+        double ty = anchor.getY()-(ih*sy*clip.top/100000.0);\r
+        AffineTransform at = new AffineTransform(sx, 0, 0, sy, tx, ty) ;\r
+\r
+        Shape clipOld = graphics.getClip();\r
+        if (isClipped) graphics.clip(anchor.getBounds2D());\r
+        graphics.drawRenderedImage(img, at);\r
+        graphics.setClip(clipOld);\r
+\r
+        return true;\r
+    }\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjPoint2D.java
new file mode 100644 (file)
index 0000000..ff07ce7
--- /dev/null
@@ -0,0 +1,126 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_AdjPoint2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_AdjPoint2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_AdjPoint2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTAdjPoint2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "x", required = true)\r
+    protected String x;\r
+    @XmlAttribute(name = "y", required = true)\r
+    protected String y;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setX(String value) {\r
+        this.x = value;\r
+    }\r
+\r
+    public boolean isSetX() {\r
+        return (this.x!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setY(String value) {\r
+        this.y = value;\r
+    }\r
+\r
+    public boolean isSetY() {\r
+        return (this.y!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAdjustHandleList.java
new file mode 100644 (file)
index 0000000..ae1482e
--- /dev/null
@@ -0,0 +1,116 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_AdjustHandleList complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_AdjustHandleList">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element name="ahXY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_XYAdjustHandle"/>\r
+ *         &lt;element name="ahPolar" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PolarAdjustHandle"/>\r
+ *       &lt;/choice>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_AdjustHandleList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "ahXYOrAhPolar"\r
+})\r
+public class CTAdjustHandleList\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "ahXY", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTXYAdjustHandle.class),\r
+        @XmlElement(name = "ahPolar", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPolarAdjustHandle.class)\r
+    })\r
+    protected List<Object> ahXYOrAhPolar;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the ahXYOrAhPolar property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the ahXYOrAhPolar property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getAhXYOrAhPolar().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTXYAdjustHandle }\r
+     * {@link CTPolarAdjustHandle }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getAhXYOrAhPolar() {\r
+        if (ahXYOrAhPolar == null) {\r
+            ahXYOrAhPolar = new ArrayList<Object>();\r
+        }\r
+        return this.ahXYOrAhPolar;\r
+    }\r
+\r
+    public boolean isSetAhXYOrAhPolar() {\r
+        return ((this.ahXYOrAhPolar!= null)&&(!this.ahXYOrAhPolar.isEmpty()));\r
+    }\r
+\r
+    public void unsetAhXYOrAhPolar() {\r
+        this.ahXYOrAhPolar = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAngle.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTAngle.java
new file mode 100644 (file)
index 0000000..77f1387
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Angle complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Angle">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Angle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTAngle implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColor.java
new file mode 100644 (file)
index 0000000..c03c731
--- /dev/null
@@ -0,0 +1,254 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Color complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Color">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorChoice"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Color", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "scrgbClr",\r
+    "srgbClr",\r
+    "hslClr",\r
+    "sysClr",\r
+    "schemeClr",\r
+    "prstClr"\r
+})\r
+public class CTColor\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTScRgbColor scrgbClr;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTSRgbColor srgbClr;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTHslColor hslClr;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTSystemColor sysClr;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTSchemeColor schemeClr;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPresetColor prstClr;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the scrgbClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTScRgbColor }\r
+     *     \r
+     */\r
+    public CTScRgbColor getScrgbClr() {\r
+        return scrgbClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the scrgbClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTScRgbColor }\r
+     *     \r
+     */\r
+    public void setScrgbClr(CTScRgbColor value) {\r
+        this.scrgbClr = value;\r
+    }\r
+\r
+    public boolean isSetScrgbClr() {\r
+        return (this.scrgbClr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the srgbClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTSRgbColor }\r
+     *     \r
+     */\r
+    public CTSRgbColor getSrgbClr() {\r
+        return srgbClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the srgbClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTSRgbColor }\r
+     *     \r
+     */\r
+    public void setSrgbClr(CTSRgbColor value) {\r
+        this.srgbClr = value;\r
+    }\r
+\r
+    public boolean isSetSrgbClr() {\r
+        return (this.srgbClr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the hslClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTHslColor }\r
+     *     \r
+     */\r
+    public CTHslColor getHslClr() {\r
+        return hslClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the hslClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTHslColor }\r
+     *     \r
+     */\r
+    public void setHslClr(CTHslColor value) {\r
+        this.hslClr = value;\r
+    }\r
+\r
+    public boolean isSetHslClr() {\r
+        return (this.hslClr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sysClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTSystemColor }\r
+     *     \r
+     */\r
+    public CTSystemColor getSysClr() {\r
+        return sysClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sysClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTSystemColor }\r
+     *     \r
+     */\r
+    public void setSysClr(CTSystemColor value) {\r
+        this.sysClr = value;\r
+    }\r
+\r
+    public boolean isSetSysClr() {\r
+        return (this.sysClr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the schemeClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTSchemeColor }\r
+     *     \r
+     */\r
+    public CTSchemeColor getSchemeClr() {\r
+        return schemeClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the schemeClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTSchemeColor }\r
+     *     \r
+     */\r
+    public void setSchemeClr(CTSchemeColor value) {\r
+        this.schemeClr = value;\r
+    }\r
+\r
+    public boolean isSetSchemeClr() {\r
+        return (this.schemeClr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the prstClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPresetColor }\r
+     *     \r
+     */\r
+    public CTPresetColor getPrstClr() {\r
+        return prstClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the prstClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPresetColor }\r
+     *     \r
+     */\r
+    public void setPrstClr(CTPresetColor value) {\r
+        this.prstClr = value;\r
+    }\r
+\r
+    public boolean isSetPrstClr() {\r
+        return (this.prstClr!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColorMRU.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTColorMRU.java
new file mode 100644 (file)
index 0000000..2439cc1
--- /dev/null
@@ -0,0 +1,123 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_ColorMRU complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_ColorMRU">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorChoice" maxOccurs="10" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_ColorMRU", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorChoice"\r
+})\r
+public class CTColorMRU\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "scrgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTScRgbColor.class),\r
+        @XmlElement(name = "srgbClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSRgbColor.class),\r
+        @XmlElement(name = "hslClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTHslColor.class),\r
+        @XmlElement(name = "sysClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSystemColor.class),\r
+        @XmlElement(name = "schemeClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTSchemeColor.class),\r
+        @XmlElement(name = "prstClr", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPresetColor.class)\r
+    })\r
+    protected List<Object> egColorChoice;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorChoice property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorChoice property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorChoice().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTScRgbColor }\r
+     * {@link CTSRgbColor }\r
+     * {@link CTHslColor }\r
+     * {@link CTSystemColor }\r
+     * {@link CTSchemeColor }\r
+     * {@link CTPresetColor }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getEGColorChoice() {\r
+        if (egColorChoice == null) {\r
+            egColorChoice = new ArrayList<Object>();\r
+        }\r
+        return this.egColorChoice;\r
+    }\r
+\r
+    public boolean isSetEGColorChoice() {\r
+        return ((this.egColorChoice!= null)&&(!this.egColorChoice.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorChoice() {\r
+        this.egColorChoice = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTComplementTransform.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTComplementTransform.java
new file mode 100644 (file)
index 0000000..4919715
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_ComplementTransform complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_ComplementTransform">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_ComplementTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTComplementTransform implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnection.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnection.java
new file mode 100644 (file)
index 0000000..b2c88ae
--- /dev/null
@@ -0,0 +1,112 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlSchemaType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Connection complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Connection">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="id" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_DrawingElementId" />\r
+ *       &lt;attribute name="idx" use="required" type="{http://www.w3.org/2001/XMLSchema}unsignedInt" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Connection", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTConnection\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "id", required = true)\r
+    protected long id;\r
+    @XmlAttribute(name = "idx", required = true)\r
+    @XmlSchemaType(name = "unsignedInt")\r
+    protected long idx;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the id property.\r
+     * \r
+     */\r
+    public long getId() {\r
+        return id;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the id property.\r
+     * \r
+     */\r
+    public void setId(long value) {\r
+        this.id = value;\r
+    }\r
+\r
+    public boolean isSetId() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the idx property.\r
+     * \r
+     */\r
+    public long getIdx() {\r
+        return idx;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the idx property.\r
+     * \r
+     */\r
+    public void setIdx(long value) {\r
+        this.idx = value;\r
+    }\r
+\r
+    public boolean isSetIdx() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSite.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSite.java
new file mode 100644 (file)
index 0000000..c6189d1
--- /dev/null
@@ -0,0 +1,131 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_ConnectionSite complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_ConnectionSite">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="ang" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_ConnectionSite", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pos"\r
+})\r
+public class CTConnectionSite\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTAdjPoint2D pos;\r
+    @XmlAttribute(name = "ang", required = true)\r
+    protected String ang;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pos property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public CTAdjPoint2D getPos() {\r
+        return pos;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pos property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public void setPos(CTAdjPoint2D value) {\r
+        this.pos = value;\r
+    }\r
+\r
+    public boolean isSetPos() {\r
+        return (this.pos!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the ang property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getAng() {\r
+        return ang;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the ang property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setAng(String value) {\r
+        this.ang = value;\r
+    }\r
+\r
+    public boolean isSetAng() {\r
+        return (this.ang!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTConnectionSiteList.java
new file mode 100644 (file)
index 0000000..49e8123
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_ConnectionSiteList complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_ConnectionSiteList">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="cxn" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_ConnectionSite" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_ConnectionSiteList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "cxn"\r
+})\r
+public class CTConnectionSiteList\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected List<CTConnectionSite> cxn;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the cxn property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the cxn property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getCxn().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTConnectionSite }\r
+     * \r
+     * \r
+     */\r
+    public List<CTConnectionSite> getCxn() {\r
+        if (cxn == null) {\r
+            cxn = new ArrayList<CTConnectionSite>();\r
+        }\r
+        return this.cxn;\r
+    }\r
+\r
+    public boolean isSetCxn() {\r
+        return ((this.cxn!= null)&&(!this.cxn.isEmpty()));\r
+    }\r
+\r
+    public void unsetCxn() {\r
+        this.cxn = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTCustomGeometry2D.java
new file mode 100644 (file)
index 0000000..4e43d91
--- /dev/null
@@ -0,0 +1,259 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_CustomGeometry2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_CustomGeometry2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>\r
+ *         &lt;element name="gdLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>\r
+ *         &lt;element name="ahLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjustHandleList" minOccurs="0"/>\r
+ *         &lt;element name="cxnLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_ConnectionSiteList" minOccurs="0"/>\r
+ *         &lt;element name="rect" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomRect" minOccurs="0"/>\r
+ *         &lt;element name="pathLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DList"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_CustomGeometry2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "avLst",\r
+    "gdLst",\r
+    "ahLst",\r
+    "cxnLst",\r
+    "rect",\r
+    "pathLst"\r
+})\r
+public class CTCustomGeometry2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTGeomGuideList avLst;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTGeomGuideList gdLst;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTAdjustHandleList ahLst;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTConnectionSiteList cxnLst;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTGeomRect rect;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTPath2DList pathLst;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the avLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public CTGeomGuideList getAvLst() {\r
+        return avLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the avLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public void setAvLst(CTGeomGuideList value) {\r
+        this.avLst = value;\r
+    }\r
+\r
+    public boolean isSetAvLst() {\r
+        return (this.avLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gdLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public CTGeomGuideList getGdLst() {\r
+        return gdLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gdLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public void setGdLst(CTGeomGuideList value) {\r
+        this.gdLst = value;\r
+    }\r
+\r
+    public boolean isSetGdLst() {\r
+        return (this.gdLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the ahLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjustHandleList }\r
+     *     \r
+     */\r
+    public CTAdjustHandleList getAhLst() {\r
+        return ahLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the ahLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjustHandleList }\r
+     *     \r
+     */\r
+    public void setAhLst(CTAdjustHandleList value) {\r
+        this.ahLst = value;\r
+    }\r
+\r
+    public boolean isSetAhLst() {\r
+        return (this.ahLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the cxnLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTConnectionSiteList }\r
+     *     \r
+     */\r
+    public CTConnectionSiteList getCxnLst() {\r
+        return cxnLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the cxnLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTConnectionSiteList }\r
+     *     \r
+     */\r
+    public void setCxnLst(CTConnectionSiteList value) {\r
+        this.cxnLst = value;\r
+    }\r
+\r
+    public boolean isSetCxnLst() {\r
+        return (this.cxnLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the rect property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTGeomRect }\r
+     *     \r
+     */\r
+    public CTGeomRect getRect() {\r
+        return rect;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the rect property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTGeomRect }\r
+     *     \r
+     */\r
+    public void setRect(CTGeomRect value) {\r
+        this.rect = value;\r
+    }\r
+\r
+    public boolean isSetRect() {\r
+        return (this.rect!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the pathLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPath2DList }\r
+     *     \r
+     */\r
+    public CTPath2DList getPathLst() {\r
+        return pathLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pathLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPath2DList }\r
+     *     \r
+     */\r
+    public void setPathLst(CTPath2DList value) {\r
+        this.pathLst = value;\r
+    }\r
+\r
+    public boolean isSetPathLst() {\r
+        return (this.pathLst!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTEmbeddedWAVAudioFile.java
new file mode 100644 (file)
index 0000000..aaef46d
--- /dev/null
@@ -0,0 +1,169 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_EmbeddedWAVAudioFile complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_EmbeddedWAVAudioFile">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute ref="{http://schemas.openxmlformats.org/officeDocument/2006/relationships}embed use="required""/>\r
+ *       &lt;attribute name="name" type="{http://www.w3.org/2001/XMLSchema}string" default="" />\r
+ *       &lt;attribute name="builtIn" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_EmbeddedWAVAudioFile", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTEmbeddedWAVAudioFile\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "embed", namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships", required = true)\r
+    protected String embed;\r
+    @XmlAttribute(name = "name")\r
+    protected String name;\r
+    @XmlAttribute(name = "builtIn")\r
+    protected Boolean builtIn;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Embedded Audio File Relationship ID\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getEmbed() {\r
+        return embed;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the embed property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setEmbed(String value) {\r
+        this.embed = value;\r
+    }\r
+\r
+    public boolean isSetEmbed() {\r
+        return (this.embed!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        if (name == null) {\r
+            return "";\r
+        } else {\r
+            return name;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    public boolean isSetName() {\r
+        return (this.name!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the builtIn property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isBuiltIn() {\r
+        if (builtIn == null) {\r
+            return false;\r
+        } else {\r
+            return builtIn;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the builtIn property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setBuiltIn(boolean value) {\r
+        this.builtIn = value;\r
+    }\r
+\r
+    public boolean isSetBuiltIn() {\r
+        return (this.builtIn!= null);\r
+    }\r
+\r
+    public void unsetBuiltIn() {\r
+        this.builtIn = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTFixedPercentage.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTFixedPercentage.java
new file mode 100644 (file)
index 0000000..14bcd37
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_FixedPercentage complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_FixedPercentage">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_FixedPercentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_FixedPercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTFixedPercentage implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGammaTransform.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGammaTransform.java
new file mode 100644 (file)
index 0000000..84e7f3b
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GammaTransform complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GammaTransform">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GammaTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTGammaTransform implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuide.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuide.java
new file mode 100644 (file)
index 0000000..e0723d9
--- /dev/null
@@ -0,0 +1,129 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GeomGuide complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GeomGuide">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="name" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />\r
+ *       &lt;attribute name="fmla" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideFormula" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GeomGuide", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTGeomGuide\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "name", required = true)\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String name;\r
+    @XmlAttribute(name = "fmla", required = true)\r
+    protected String fmla;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the name property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getName() {\r
+        return name;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the name property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setName(String value) {\r
+        this.name = value;\r
+    }\r
+\r
+    public boolean isSetName() {\r
+        return (this.name!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fmla property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getFmla() {\r
+        return fmla;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fmla property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setFmla(String value) {\r
+        this.fmla = value;\r
+    }\r
+\r
+    public boolean isSetFmla() {\r
+        return (this.fmla!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuideList.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomGuideList.java
new file mode 100644 (file)
index 0000000..d5203d8
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GeomGuideList complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GeomGuideList">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="gd" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuide" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GeomGuideList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "gd"\r
+})\r
+public class CTGeomGuideList\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected List<CTGeomGuide> gd;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the gd property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the gd property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getGd().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTGeomGuide }\r
+     * \r
+     * \r
+     */\r
+    public List<CTGeomGuide> getGd() {\r
+        if (gd == null) {\r
+            gd = new ArrayList<CTGeomGuide>();\r
+        }\r
+        return this.gd;\r
+    }\r
+\r
+    public boolean isSetGd() {\r
+        return ((this.gd!= null)&&(!this.gd.isEmpty()));\r
+    }\r
+\r
+    public void unsetGd() {\r
+        this.gd = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomRect.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGeomRect.java
new file mode 100644 (file)
index 0000000..f0383f8
--- /dev/null
@@ -0,0 +1,188 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GeomRect complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GeomRect">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="l" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="t" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="r" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="b" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GeomRect", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTGeomRect\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "l", required = true)\r
+    protected String l;\r
+    @XmlAttribute(name = "t", required = true)\r
+    protected String t;\r
+    @XmlAttribute(name = "r", required = true)\r
+    protected String r;\r
+    @XmlAttribute(name = "b", required = true)\r
+    protected String b;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the l property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getL() {\r
+        return l;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the l property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setL(String value) {\r
+        this.l = value;\r
+    }\r
+\r
+    public boolean isSetL() {\r
+        return (this.l!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the t property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getT() {\r
+        return t;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the t property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setT(String value) {\r
+        this.t = value;\r
+    }\r
+\r
+    public boolean isSetT() {\r
+        return (this.t!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the r property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getR() {\r
+        return r;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the r property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setR(String value) {\r
+        this.r = value;\r
+    }\r
+\r
+    public boolean isSetR() {\r
+        return (this.r!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the b property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getB() {\r
+        return b;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the b property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setB(String value) {\r
+        this.b = value;\r
+    }\r
+\r
+    public boolean isSetB() {\r
+        return (this.b!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGrayscaleTransform.java
new file mode 100644 (file)
index 0000000..ef5ad88
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GrayscaleTransform complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GrayscaleTransform">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GrayscaleTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTGrayscaleTransform implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTGroupTransform2D.java
new file mode 100644 (file)
index 0000000..15386a2
--- /dev/null
@@ -0,0 +1,313 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_GroupTransform2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_GroupTransform2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="off" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>\r
+ *         &lt;element name="ext" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>\r
+ *         &lt;element name="chOff" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>\r
+ *         &lt;element name="chExt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="rot" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" default="0" />\r
+ *       &lt;attribute name="flipH" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="flipV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_GroupTransform2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "off",\r
+    "ext",\r
+    "chOff",\r
+    "chExt"\r
+})\r
+public class CTGroupTransform2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPoint2D off;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPositiveSize2D ext;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPoint2D chOff;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPositiveSize2D chExt;\r
+    @XmlAttribute(name = "rot")\r
+    protected Integer rot;\r
+    @XmlAttribute(name = "flipH")\r
+    protected Boolean flipH;\r
+    @XmlAttribute(name = "flipV")\r
+    protected Boolean flipV;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the off property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public CTPoint2D getOff() {\r
+        return off;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the off property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public void setOff(CTPoint2D value) {\r
+        this.off = value;\r
+    }\r
+\r
+    public boolean isSetOff() {\r
+        return (this.off!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the ext property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public CTPositiveSize2D getExt() {\r
+        return ext;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the ext property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public void setExt(CTPositiveSize2D value) {\r
+        this.ext = value;\r
+    }\r
+\r
+    public boolean isSetExt() {\r
+        return (this.ext!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the chOff property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public CTPoint2D getChOff() {\r
+        return chOff;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the chOff property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public void setChOff(CTPoint2D value) {\r
+        this.chOff = value;\r
+    }\r
+\r
+    public boolean isSetChOff() {\r
+        return (this.chOff!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the chExt property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public CTPositiveSize2D getChExt() {\r
+        return chExt;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the chExt property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public void setChExt(CTPositiveSize2D value) {\r
+        this.chExt = value;\r
+    }\r
+\r
+    public boolean isSetChExt() {\r
+        return (this.chExt!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the rot property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getRot() {\r
+        if (rot == null) {\r
+            return  0;\r
+        } else {\r
+            return rot;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the rot property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setRot(int value) {\r
+        this.rot = value;\r
+    }\r
+\r
+    public boolean isSetRot() {\r
+        return (this.rot!= null);\r
+    }\r
+\r
+    public void unsetRot() {\r
+        this.rot = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flipH property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isFlipH() {\r
+        if (flipH == null) {\r
+            return false;\r
+        } else {\r
+            return flipH;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flipH property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setFlipH(boolean value) {\r
+        this.flipH = value;\r
+    }\r
+\r
+    public boolean isSetFlipH() {\r
+        return (this.flipH!= null);\r
+    }\r
+\r
+    public void unsetFlipH() {\r
+        this.flipH = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flipV property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isFlipV() {\r
+        if (flipV == null) {\r
+            return false;\r
+        } else {\r
+            return flipV;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flipV property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setFlipV(boolean value) {\r
+        this.flipV = value;\r
+    }\r
+\r
+    public boolean isSetFlipV() {\r
+        return (this.flipV!= null);\r
+    }\r
+\r
+    public void unsetFlipV() {\r
+        this.flipV = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHslColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHslColor.java
new file mode 100644 (file)
index 0000000..534a9b3
--- /dev/null
@@ -0,0 +1,237 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_HslColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_HslColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="hue" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />\r
+ *       &lt;attribute name="sat" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *       &lt;attribute name="lum" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_HslColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTHslColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "hue", required = true)\r
+    protected int hue;\r
+    @XmlAttribute(name = "sat", required = true)\r
+    protected int sat;\r
+    @XmlAttribute(name = "lum", required = true)\r
+    protected int lum;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the hue property.\r
+     * \r
+     */\r
+    public int getHue() {\r
+        return hue;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the hue property.\r
+     * \r
+     */\r
+    public void setHue(int value) {\r
+        this.hue = value;\r
+    }\r
+\r
+    public boolean isSetHue() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sat property.\r
+     * \r
+     */\r
+    public int getSat() {\r
+        return sat;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sat property.\r
+     * \r
+     */\r
+    public void setSat(int value) {\r
+        this.sat = value;\r
+    }\r
+\r
+    public boolean isSetSat() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the lum property.\r
+     * \r
+     */\r
+    public int getLum() {\r
+        return lum;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the lum property.\r
+     * \r
+     */\r
+    public void setLum(int value) {\r
+        this.lum = value;\r
+    }\r
+\r
+    public boolean isSetLum() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHyperlink.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTHyperlink.java
new file mode 100644 (file)
index 0000000..571ff8b
--- /dev/null
@@ -0,0 +1,420 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Hyperlink complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Hyperlink">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="snd" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_EmbeddedWAVAudioFile" minOccurs="0"/>\r
+ *         &lt;element name="extLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_OfficeArtExtensionList" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute ref="{http://schemas.openxmlformats.org/officeDocument/2006/relationships}id"/>\r
+ *       &lt;attribute name="invalidUrl" type="{http://www.w3.org/2001/XMLSchema}string" default="" />\r
+ *       &lt;attribute name="action" type="{http://www.w3.org/2001/XMLSchema}string" default="" />\r
+ *       &lt;attribute name="tgtFrame" type="{http://www.w3.org/2001/XMLSchema}string" default="" />\r
+ *       &lt;attribute name="tooltip" type="{http://www.w3.org/2001/XMLSchema}string" default="" />\r
+ *       &lt;attribute name="history" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="highlightClick" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="endSnd" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Hyperlink", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "snd",\r
+    "extLst"\r
+})\r
+public class CTHyperlink\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTEmbeddedWAVAudioFile snd;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTOfficeArtExtensionList extLst;\r
+    @XmlAttribute(name = "id", namespace = "http://schemas.openxmlformats.org/officeDocument/2006/relationships")\r
+    protected String id;\r
+    @XmlAttribute(name = "invalidUrl")\r
+    protected String invalidUrl;\r
+    @XmlAttribute(name = "action")\r
+    protected String action;\r
+    @XmlAttribute(name = "tgtFrame")\r
+    protected String tgtFrame;\r
+    @XmlAttribute(name = "tooltip")\r
+    protected String tooltip;\r
+    @XmlAttribute(name = "history")\r
+    protected Boolean history;\r
+    @XmlAttribute(name = "highlightClick")\r
+    protected Boolean highlightClick;\r
+    @XmlAttribute(name = "endSnd")\r
+    protected Boolean endSnd;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the snd property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTEmbeddedWAVAudioFile }\r
+     *     \r
+     */\r
+    public CTEmbeddedWAVAudioFile getSnd() {\r
+        return snd;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the snd property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTEmbeddedWAVAudioFile }\r
+     *     \r
+     */\r
+    public void setSnd(CTEmbeddedWAVAudioFile value) {\r
+        this.snd = value;\r
+    }\r
+\r
+    public boolean isSetSnd() {\r
+        return (this.snd!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the extLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTOfficeArtExtensionList }\r
+     *     \r
+     */\r
+    public CTOfficeArtExtensionList getExtLst() {\r
+        return extLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the extLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTOfficeArtExtensionList }\r
+     *     \r
+     */\r
+    public void setExtLst(CTOfficeArtExtensionList value) {\r
+        this.extLst = value;\r
+    }\r
+\r
+    public boolean isSetExtLst() {\r
+        return (this.extLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Drawing Object Hyperlink Target\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getId() {\r
+        return id;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the id property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setId(String value) {\r
+        this.id = value;\r
+    }\r
+\r
+    public boolean isSetId() {\r
+        return (this.id!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the invalidUrl property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getInvalidUrl() {\r
+        if (invalidUrl == null) {\r
+            return "";\r
+        } else {\r
+            return invalidUrl;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the invalidUrl property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setInvalidUrl(String value) {\r
+        this.invalidUrl = value;\r
+    }\r
+\r
+    public boolean isSetInvalidUrl() {\r
+        return (this.invalidUrl!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the action property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getAction() {\r
+        if (action == null) {\r
+            return "";\r
+        } else {\r
+            return action;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the action property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setAction(String value) {\r
+        this.action = value;\r
+    }\r
+\r
+    public boolean isSetAction() {\r
+        return (this.action!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the tgtFrame property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTgtFrame() {\r
+        if (tgtFrame == null) {\r
+            return "";\r
+        } else {\r
+            return tgtFrame;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the tgtFrame property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTgtFrame(String value) {\r
+        this.tgtFrame = value;\r
+    }\r
+\r
+    public boolean isSetTgtFrame() {\r
+        return (this.tgtFrame!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the tooltip property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getTooltip() {\r
+        if (tooltip == null) {\r
+            return "";\r
+        } else {\r
+            return tooltip;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the tooltip property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setTooltip(String value) {\r
+        this.tooltip = value;\r
+    }\r
+\r
+    public boolean isSetTooltip() {\r
+        return (this.tooltip!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the history property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isHistory() {\r
+        if (history == null) {\r
+            return true;\r
+        } else {\r
+            return history;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the history property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setHistory(boolean value) {\r
+        this.history = value;\r
+    }\r
+\r
+    public boolean isSetHistory() {\r
+        return (this.history!= null);\r
+    }\r
+\r
+    public void unsetHistory() {\r
+        this.history = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the highlightClick property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isHighlightClick() {\r
+        if (highlightClick == null) {\r
+            return false;\r
+        } else {\r
+            return highlightClick;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the highlightClick property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setHighlightClick(boolean value) {\r
+        this.highlightClick = value;\r
+    }\r
+\r
+    public boolean isSetHighlightClick() {\r
+        return (this.highlightClick!= null);\r
+    }\r
+\r
+    public void unsetHighlightClick() {\r
+        this.highlightClick = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the endSnd property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isEndSnd() {\r
+        if (endSnd == null) {\r
+            return false;\r
+        } else {\r
+            return endSnd;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the endSnd property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setEndSnd(boolean value) {\r
+        this.endSnd = value;\r
+    }\r
+\r
+    public boolean isSetEndSnd() {\r
+        return (this.endSnd!= null);\r
+    }\r
+\r
+    public void unsetEndSnd() {\r
+        this.endSnd = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseGammaTransform.java
new file mode 100644 (file)
index 0000000..091d6e2
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_InverseGammaTransform complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_InverseGammaTransform">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_InverseGammaTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTInverseGammaTransform implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseTransform.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTInverseTransform.java
new file mode 100644 (file)
index 0000000..e1de7b8
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_InverseTransform complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_InverseTransform">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_InverseTransform", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTInverseTransform implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtension.java
new file mode 100644 (file)
index 0000000..db1831f
--- /dev/null
@@ -0,0 +1,139 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAnyElement;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlSchemaType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.w3c.dom.Element;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_OfficeArtExtension complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_OfficeArtExtension">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;any processContents='lax'/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="uri" type="{http://www.w3.org/2001/XMLSchema}token" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_OfficeArtExtension", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "any"\r
+})\r
+public class CTOfficeArtExtension\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAnyElement(lax = true)\r
+    protected Object any;\r
+    @XmlAttribute(name = "uri")\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    @XmlSchemaType(name = "token")\r
+    protected String uri;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the any property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Object }\r
+     *     {@link Element }\r
+     *     \r
+     */\r
+    public Object getAny() {\r
+        return any;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the any property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Object }\r
+     *     {@link Element }\r
+     *     \r
+     */\r
+    public void setAny(Object value) {\r
+        this.any = value;\r
+    }\r
+\r
+    public boolean isSetAny() {\r
+        return (this.any!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the uri property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getUri() {\r
+        return uri;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the uri property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setUri(String value) {\r
+        this.uri = value;\r
+    }\r
+\r
+    public boolean isSetUri() {\r
+        return (this.uri!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTOfficeArtExtensionList.java
new file mode 100644 (file)
index 0000000..fc80691
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_OfficeArtExtensionList complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_OfficeArtExtensionList">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_OfficeArtExtensionList"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_OfficeArtExtensionList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "ext"\r
+})\r
+public class CTOfficeArtExtensionList\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected List<CTOfficeArtExtension> ext;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the ext property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the ext property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getExt().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTOfficeArtExtension }\r
+     * \r
+     * \r
+     */\r
+    public List<CTOfficeArtExtension> getExt() {\r
+        if (ext == null) {\r
+            ext = new ArrayList<CTOfficeArtExtension>();\r
+        }\r
+        return this.ext;\r
+    }\r
+\r
+    public boolean isSetExt() {\r
+        return ((this.ext!= null)&&(!this.ext.isEmpty()));\r
+    }\r
+\r
+    public void unsetExt() {\r
+        this.ext = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2D.java
new file mode 100644 (file)
index 0000000..bcba3c8
--- /dev/null
@@ -0,0 +1,320 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlElements;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;choice maxOccurs="unbounded" minOccurs="0">\r
+ *         &lt;element name="close" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DClose"/>\r
+ *         &lt;element name="moveTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DMoveTo"/>\r
+ *         &lt;element name="lnTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DLineTo"/>\r
+ *         &lt;element name="arcTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DArcTo"/>\r
+ *         &lt;element name="quadBezTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DQuadBezierTo"/>\r
+ *         &lt;element name="cubicBezTo" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2DCubicBezierTo"/>\r
+ *       &lt;/choice>\r
+ *       &lt;attribute name="w" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" default="0" />\r
+ *       &lt;attribute name="h" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" default="0" />\r
+ *       &lt;attribute name="fill" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PathFillMode" default="norm" />\r
+ *       &lt;attribute name="stroke" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *       &lt;attribute name="extrusionOk" type="{http://www.w3.org/2001/XMLSchema}boolean" default="true" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "closeOrMoveToOrLnTo"\r
+})\r
+public class CTPath2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElements({\r
+        @XmlElement(name = "close", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DClose.class),\r
+        @XmlElement(name = "moveTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DMoveTo.class),\r
+        @XmlElement(name = "lnTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DLineTo.class),\r
+        @XmlElement(name = "arcTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DArcTo.class),\r
+        @XmlElement(name = "quadBezTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DQuadBezierTo.class),\r
+        @XmlElement(name = "cubicBezTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = CTPath2DCubicBezierTo.class)\r
+    })\r
+    protected List<Object> closeOrMoveToOrLnTo;\r
+    @XmlAttribute(name = "w")\r
+    protected Long w;\r
+    @XmlAttribute(name = "h")\r
+    protected Long h;\r
+    @XmlAttribute(name = "fill")\r
+    protected STPathFillMode fill;\r
+    @XmlAttribute(name = "stroke")\r
+    protected Boolean stroke;\r
+    @XmlAttribute(name = "extrusionOk")\r
+    protected Boolean extrusionOk;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the closeOrMoveToOrLnTo property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the closeOrMoveToOrLnTo property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getCloseOrMoveToOrLnTo().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTPath2DClose }\r
+     * {@link CTPath2DMoveTo }\r
+     * {@link CTPath2DLineTo }\r
+     * {@link CTPath2DArcTo }\r
+     * {@link CTPath2DQuadBezierTo }\r
+     * {@link CTPath2DCubicBezierTo }\r
+     * \r
+     * \r
+     */\r
+    public List<Object> getCloseOrMoveToOrLnTo() {\r
+        if (closeOrMoveToOrLnTo == null) {\r
+            closeOrMoveToOrLnTo = new ArrayList<Object>();\r
+        }\r
+        return this.closeOrMoveToOrLnTo;\r
+    }\r
+\r
+    public boolean isSetCloseOrMoveToOrLnTo() {\r
+        return ((this.closeOrMoveToOrLnTo!= null)&&(!this.closeOrMoveToOrLnTo.isEmpty()));\r
+    }\r
+\r
+    public void unsetCloseOrMoveToOrLnTo() {\r
+        this.closeOrMoveToOrLnTo = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the w property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Long }\r
+     *     \r
+     */\r
+    public long getW() {\r
+        if (w == null) {\r
+            return  0L;\r
+        } else {\r
+            return w;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the w property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Long }\r
+     *     \r
+     */\r
+    public void setW(long value) {\r
+        this.w = value;\r
+    }\r
+\r
+    public boolean isSetW() {\r
+        return (this.w!= null);\r
+    }\r
+\r
+    public void unsetW() {\r
+        this.w = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the h property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Long }\r
+     *     \r
+     */\r
+    public long getH() {\r
+        if (h == null) {\r
+            return  0L;\r
+        } else {\r
+            return h;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the h property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Long }\r
+     *     \r
+     */\r
+    public void setH(long value) {\r
+        this.h = value;\r
+    }\r
+\r
+    public boolean isSetH() {\r
+        return (this.h!= null);\r
+    }\r
+\r
+    public void unsetH() {\r
+        this.h = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the fill property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link STPathFillMode }\r
+     *     \r
+     */\r
+    public STPathFillMode getFill() {\r
+        if (fill == null) {\r
+            return STPathFillMode.NORM;\r
+        } else {\r
+            return fill;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the fill property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link STPathFillMode }\r
+     *     \r
+     */\r
+    public void setFill(STPathFillMode value) {\r
+        this.fill = value;\r
+    }\r
+\r
+    public boolean isSetFill() {\r
+        return (this.fill!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the stroke property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isStroke() {\r
+        if (stroke == null) {\r
+            return true;\r
+        } else {\r
+            return stroke;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the stroke property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setStroke(boolean value) {\r
+        this.stroke = value;\r
+    }\r
+\r
+    public boolean isSetStroke() {\r
+        return (this.stroke!= null);\r
+    }\r
+\r
+    public void unsetStroke() {\r
+        this.stroke = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the extrusionOk property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isExtrusionOk() {\r
+        if (extrusionOk == null) {\r
+            return true;\r
+        } else {\r
+            return extrusionOk;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the extrusionOk property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setExtrusionOk(boolean value) {\r
+        this.extrusionOk = value;\r
+    }\r
+\r
+    public boolean isSetExtrusionOk() {\r
+        return (this.extrusionOk!= null);\r
+    }\r
+\r
+    public void unsetExtrusionOk() {\r
+        this.extrusionOk = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DArcTo.java
new file mode 100644 (file)
index 0000000..225d870
--- /dev/null
@@ -0,0 +1,187 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DArcTo complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DArcTo">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="wR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="hR" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="stAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />\r
+ *       &lt;attribute name="swAng" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DArcTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPath2DArcTo implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "wR", required = true)\r
+    protected String wr;\r
+    @XmlAttribute(name = "hR", required = true)\r
+    protected String hr;\r
+    @XmlAttribute(name = "stAng", required = true)\r
+    protected String stAng;\r
+    @XmlAttribute(name = "swAng", required = true)\r
+    protected String swAng;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the wr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getWR() {\r
+        return wr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the wr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setWR(String value) {\r
+        this.wr = value;\r
+    }\r
+\r
+    public boolean isSetWR() {\r
+        return (this.wr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the hr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getHR() {\r
+        return hr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the hr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setHR(String value) {\r
+        this.hr = value;\r
+    }\r
+\r
+    public boolean isSetHR() {\r
+        return (this.hr!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the stAng property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getStAng() {\r
+        return stAng;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the stAng property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setStAng(String value) {\r
+        this.stAng = value;\r
+    }\r
+\r
+    public boolean isSetStAng() {\r
+        return (this.stAng!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the swAng property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getSwAng() {\r
+        return swAng;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the swAng property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setSwAng(String value) {\r
+        this.swAng = value;\r
+    }\r
+\r
+    public boolean isSetSwAng() {\r
+        return (this.swAng!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DClose.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DClose.java
new file mode 100644 (file)
index 0000000..f8f2514
--- /dev/null
@@ -0,0 +1,62 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DClose complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DClose">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DClose", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPath2DClose implements Locatable\r
+{\r
+\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DCubicBezierTo.java
new file mode 100644 (file)
index 0000000..0f27b05
--- /dev/null
@@ -0,0 +1,109 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DCubicBezierTo complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DCubicBezierTo">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D" maxOccurs="3" minOccurs="3"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DCubicBezierTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pt"\r
+})\r
+public class CTPath2DCubicBezierTo implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected List<CTAdjPoint2D> pt;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pt property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the pt property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getPt().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTAdjPoint2D }\r
+     * \r
+     * \r
+     */\r
+    public List<CTAdjPoint2D> getPt() {\r
+        if (pt == null) {\r
+            pt = new ArrayList<CTAdjPoint2D>();\r
+        }\r
+        return this.pt;\r
+    }\r
+\r
+    public boolean isSetPt() {\r
+        return ((this.pt!= null)&&(!this.pt.isEmpty()));\r
+    }\r
+\r
+    public void unsetPt() {\r
+        this.pt = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DLineTo.java
new file mode 100644 (file)
index 0000000..0cfeb7c
--- /dev/null
@@ -0,0 +1,98 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DLineTo complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DLineTo">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DLineTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pt"\r
+})\r
+public class CTPath2DLineTo implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTAdjPoint2D pt;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pt property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public CTAdjPoint2D getPt() {\r
+        return pt;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pt property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public void setPt(CTAdjPoint2D value) {\r
+        this.pt = value;\r
+    }\r
+\r
+    public boolean isSetPt() {\r
+        return (this.pt!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DList.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DList.java
new file mode 100644 (file)
index 0000000..c190710
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DList complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DList">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="path" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Path2D" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DList", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "path"\r
+})\r
+public class CTPath2DList\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected List<CTPath2D> path;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the path property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the path property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getPath().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTPath2D }\r
+     * \r
+     * \r
+     */\r
+    public List<CTPath2D> getPath() {\r
+        if (path == null) {\r
+            path = new ArrayList<CTPath2D>();\r
+        }\r
+        return this.path;\r
+    }\r
+\r
+    public boolean isSetPath() {\r
+        return ((this.path!= null)&&(!this.path.isEmpty()));\r
+    }\r
+\r
+    public void unsetPath() {\r
+        this.path = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DMoveTo.java
new file mode 100644 (file)
index 0000000..6554a29
--- /dev/null
@@ -0,0 +1,98 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DMoveTo complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DMoveTo">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DMoveTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pt"\r
+})\r
+public class CTPath2DMoveTo implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTAdjPoint2D pt;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pt property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public CTAdjPoint2D getPt() {\r
+        return pt;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pt property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public void setPt(CTAdjPoint2D value) {\r
+        this.pt = value;\r
+    }\r
+\r
+    public boolean isSetPt() {\r
+        return (this.pt!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPath2DQuadBezierTo.java
new file mode 100644 (file)
index 0000000..4db3737
--- /dev/null
@@ -0,0 +1,109 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Path2DQuadBezierTo complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Path2DQuadBezierTo">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pt" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D" maxOccurs="2" minOccurs="2"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Path2DQuadBezierTo", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pt"\r
+})\r
+public class CTPath2DQuadBezierTo implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected List<CTAdjPoint2D> pt;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pt property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the pt property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getPt().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link CTAdjPoint2D }\r
+     * \r
+     * \r
+     */\r
+    public List<CTAdjPoint2D> getPt() {\r
+        if (pt == null) {\r
+            pt = new ArrayList<CTAdjPoint2D>();\r
+        }\r
+        return this.pt;\r
+    }\r
+\r
+    public boolean isSetPt() {\r
+        return ((this.pt!= null)&&(!this.pt.isEmpty()));\r
+    }\r
+\r
+    public void unsetPt() {\r
+        this.pt = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPercentage.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPercentage.java
new file mode 100644 (file)
index 0000000..1c07c22
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Percentage complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Percentage">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Percentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPercentage implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint2D.java
new file mode 100644 (file)
index 0000000..a178b26
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Point2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Point2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *       &lt;attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Point2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPoint2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "x", required = true)\r
+    protected long x;\r
+    @XmlAttribute(name = "y", required = true)\r
+    protected long y;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     */\r
+    public long getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     */\r
+    public void setX(long value) {\r
+        this.x = value;\r
+    }\r
+\r
+    public boolean isSetX() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     */\r
+    public long getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     */\r
+    public void setY(long value) {\r
+        this.y = value;\r
+    }\r
+\r
+    public boolean isSetY() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint3D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPoint3D.java
new file mode 100644 (file)
index 0000000..641ad46
--- /dev/null
@@ -0,0 +1,133 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Point3D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Point3D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="x" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *       &lt;attribute name="y" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *       &lt;attribute name="z" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Point3D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPoint3D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "x", required = true)\r
+    protected long x;\r
+    @XmlAttribute(name = "y", required = true)\r
+    protected long y;\r
+    @XmlAttribute(name = "z", required = true)\r
+    protected long z;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the x property.\r
+     * \r
+     */\r
+    public long getX() {\r
+        return x;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the x property.\r
+     * \r
+     */\r
+    public void setX(long value) {\r
+        this.x = value;\r
+    }\r
+\r
+    public boolean isSetX() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the y property.\r
+     * \r
+     */\r
+    public long getY() {\r
+        return y;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the y property.\r
+     * \r
+     */\r
+    public void setY(long value) {\r
+        this.y = value;\r
+    }\r
+\r
+    public boolean isSetY() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the z property.\r
+     * \r
+     */\r
+    public long getZ() {\r
+        return z;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the z property.\r
+     * \r
+     */\r
+    public void setZ(long value) {\r
+        this.z = value;\r
+    }\r
+\r
+    public boolean isSetZ() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPolarAdjustHandle.java
new file mode 100644 (file)
index 0000000..2c3f9b9
--- /dev/null
@@ -0,0 +1,289 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PolarAdjustHandle complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PolarAdjustHandle">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="gdRefR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />\r
+ *       &lt;attribute name="minR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="maxR" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="gdRefAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />\r
+ *       &lt;attribute name="minAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />\r
+ *       &lt;attribute name="maxAng" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjAngle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PolarAdjustHandle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pos"\r
+})\r
+public class CTPolarAdjustHandle implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTAdjPoint2D pos;\r
+    @XmlAttribute(name = "gdRefR")\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String gdRefR;\r
+    @XmlAttribute(name = "minR")\r
+    protected String minR;\r
+    @XmlAttribute(name = "maxR")\r
+    protected String maxR;\r
+    @XmlAttribute(name = "gdRefAng")\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String gdRefAng;\r
+    @XmlAttribute(name = "minAng")\r
+    protected String minAng;\r
+    @XmlAttribute(name = "maxAng")\r
+    protected String maxAng;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pos property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public CTAdjPoint2D getPos() {\r
+        return pos;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pos property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public void setPos(CTAdjPoint2D value) {\r
+        this.pos = value;\r
+    }\r
+\r
+    public boolean isSetPos() {\r
+        return (this.pos!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gdRefR property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getGdRefR() {\r
+        return gdRefR;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gdRefR property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setGdRefR(String value) {\r
+        this.gdRefR = value;\r
+    }\r
+\r
+    public boolean isSetGdRefR() {\r
+        return (this.gdRefR!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the minR property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMinR() {\r
+        return minR;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the minR property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMinR(String value) {\r
+        this.minR = value;\r
+    }\r
+\r
+    public boolean isSetMinR() {\r
+        return (this.minR!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the maxR property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMaxR() {\r
+        return maxR;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the maxR property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMaxR(String value) {\r
+        this.maxR = value;\r
+    }\r
+\r
+    public boolean isSetMaxR() {\r
+        return (this.maxR!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gdRefAng property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getGdRefAng() {\r
+        return gdRefAng;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gdRefAng property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setGdRefAng(String value) {\r
+        this.gdRefAng = value;\r
+    }\r
+\r
+    public boolean isSetGdRefAng() {\r
+        return (this.gdRefAng!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the minAng property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMinAng() {\r
+        return minAng;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the minAng property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMinAng(String value) {\r
+        this.minAng = value;\r
+    }\r
+\r
+    public boolean isSetMinAng() {\r
+        return (this.minAng!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the maxAng property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMaxAng() {\r
+        return maxAng;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the maxAng property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMaxAng(String value) {\r
+        this.maxAng = value;\r
+    }\r
+\r
+    public boolean isSetMaxAng() {\r
+        return (this.maxAng!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedAngle.java
new file mode 100644 (file)
index 0000000..c544044
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PositiveFixedAngle complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PositiveFixedAngle">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PositiveFixedAngle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPositiveFixedAngle implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveFixedPercentage.java
new file mode 100644 (file)
index 0000000..475ae74
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PositiveFixedPercentage complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PositiveFixedPercentage">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedPercentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PositiveFixedPercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPositiveFixedPercentage implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositivePercentage.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositivePercentage.java
new file mode 100644 (file)
index 0000000..9d7b8b9
--- /dev/null
@@ -0,0 +1,86 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PositivePercentage complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PositivePercentage">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositivePercentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PositivePercentage", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPositivePercentage implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected int val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     */\r
+    public int getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     */\r
+    public void setVal(int value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPositiveSize2D.java
new file mode 100644 (file)
index 0000000..f070ab7
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PositiveSize2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PositiveSize2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="cx" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" />\r
+ *       &lt;attribute name="cy" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveCoordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PositiveSize2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTPositiveSize2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "cx", required = true)\r
+    protected long cx;\r
+    @XmlAttribute(name = "cy", required = true)\r
+    protected long cy;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the cx property.\r
+     * \r
+     */\r
+    public long getCx() {\r
+        return cx;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the cx property.\r
+     * \r
+     */\r
+    public void setCx(long value) {\r
+        this.cx = value;\r
+    }\r
+\r
+    public boolean isSetCx() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the cy property.\r
+     * \r
+     */\r
+    public long getCy() {\r
+        return cy;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the cy property.\r
+     * \r
+     */\r
+    public void setCy(long value) {\r
+        this.cy = value;\r
+    }\r
+\r
+    public boolean isSetCy() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetColor.java
new file mode 100644 (file)
index 0000000..5c8d53e
--- /dev/null
@@ -0,0 +1,199 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PresetColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PresetColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="val" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PresetColorVal" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PresetColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTPresetColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "val")\r
+    protected STPresetColorVal val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link STPresetColorVal }\r
+     *     \r
+     */\r
+    public STPresetColorVal getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link STPresetColorVal }\r
+     *     \r
+     */\r
+    public void setVal(STPresetColorVal value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return (this.val!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetGeometry2D.java
new file mode 100644 (file)
index 0000000..0989d29
--- /dev/null
@@ -0,0 +1,131 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PresetGeometry2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PresetGeometry2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="prst" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_ShapeType" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PresetGeometry2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "avLst"\r
+})\r
+public class CTPresetGeometry2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTGeomGuideList avLst;\r
+    @XmlAttribute(name = "prst", required = true)\r
+    protected STShapeType prst;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the avLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public CTGeomGuideList getAvLst() {\r
+        return avLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the avLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public void setAvLst(CTGeomGuideList value) {\r
+        this.avLst = value;\r
+    }\r
+\r
+    public boolean isSetAvLst() {\r
+        return (this.avLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the prst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link STShapeType }\r
+     *     \r
+     */\r
+    public STShapeType getPrst() {\r
+        return prst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the prst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link STShapeType }\r
+     *     \r
+     */\r
+    public void setPrst(STShapeType value) {\r
+        this.prst = value;\r
+    }\r
+\r
+    public boolean isSetPrst() {\r
+        return (this.prst!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetTextShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTPresetTextShape.java
new file mode 100644 (file)
index 0000000..77d5e3f
--- /dev/null
@@ -0,0 +1,131 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_PresetTextShape complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_PresetTextShape">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="avLst" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_GeomGuideList" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="prst" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_TextShapeType" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_PresetTextShape", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "avLst"\r
+})\r
+public class CTPresetTextShape\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTGeomGuideList avLst;\r
+    @XmlAttribute(name = "prst", required = true)\r
+    protected STTextShapeType prst;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the avLst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public CTGeomGuideList getAvLst() {\r
+        return avLst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the avLst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTGeomGuideList }\r
+     *     \r
+     */\r
+    public void setAvLst(CTGeomGuideList value) {\r
+        this.avLst = value;\r
+    }\r
+\r
+    public boolean isSetAvLst() {\r
+        return (this.avLst!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the prst property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link STTextShapeType }\r
+     *     \r
+     */\r
+    public STTextShapeType getPrst() {\r
+        return prst;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the prst property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link STTextShapeType }\r
+     *     \r
+     */\r
+    public void setPrst(STTextShapeType value) {\r
+        this.prst = value;\r
+    }\r
+\r
+    public boolean isSetPrst() {\r
+        return (this.prst!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRatio.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRatio.java
new file mode 100644 (file)
index 0000000..3ea12eb
--- /dev/null
@@ -0,0 +1,110 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Ratio complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Ratio">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="n" use="required" type="{http://www.w3.org/2001/XMLSchema}long" />\r
+ *       &lt;attribute name="d" use="required" type="{http://www.w3.org/2001/XMLSchema}long" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Ratio", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTRatio\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "n", required = true)\r
+    protected long n;\r
+    @XmlAttribute(name = "d", required = true)\r
+    protected long d;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the n property.\r
+     * \r
+     */\r
+    public long getN() {\r
+        return n;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the n property.\r
+     * \r
+     */\r
+    public void setN(long value) {\r
+        this.n = value;\r
+    }\r
+\r
+    public boolean isSetN() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the d property.\r
+     * \r
+     */\r
+    public long getD() {\r
+        return d;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the d property.\r
+     * \r
+     */\r
+    public void setD(long value) {\r
+        this.d = value;\r
+    }\r
+\r
+    public boolean isSetD() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRelativeRect.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTRelativeRect.java
new file mode 100644 (file)
index 0000000..7d46b57
--- /dev/null
@@ -0,0 +1,220 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_RelativeRect complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_RelativeRect">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="l" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />\r
+ *       &lt;attribute name="t" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />\r
+ *       &lt;attribute name="r" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />\r
+ *       &lt;attribute name="b" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" default="0" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_RelativeRect", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTRelativeRect\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "l")\r
+    protected Integer l;\r
+    @XmlAttribute(name = "t")\r
+    protected Integer t;\r
+    @XmlAttribute(name = "r")\r
+    protected Integer r;\r
+    @XmlAttribute(name = "b")\r
+    protected Integer b;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the l property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getL() {\r
+        if (l == null) {\r
+            return  0;\r
+        } else {\r
+            return l;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the l property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setL(int value) {\r
+        this.l = value;\r
+    }\r
+\r
+    public boolean isSetL() {\r
+        return (this.l!= null);\r
+    }\r
+\r
+    public void unsetL() {\r
+        this.l = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the t property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getT() {\r
+        if (t == null) {\r
+            return  0;\r
+        } else {\r
+            return t;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the t property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setT(int value) {\r
+        this.t = value;\r
+    }\r
+\r
+    public boolean isSetT() {\r
+        return (this.t!= null);\r
+    }\r
+\r
+    public void unsetT() {\r
+        this.t = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the r property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getR() {\r
+        if (r == null) {\r
+            return  0;\r
+        } else {\r
+            return r;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the r property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setR(int value) {\r
+        this.r = value;\r
+    }\r
+\r
+    public boolean isSetR() {\r
+        return (this.r!= null);\r
+    }\r
+\r
+    public void unsetR() {\r
+        this.r = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the b property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getB() {\r
+        if (b == null) {\r
+            return  0;\r
+        } else {\r
+            return b;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the b property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setB(int value) {\r
+        this.b = value;\r
+    }\r
+\r
+    public boolean isSetB() {\r
+        return (this.b!= null);\r
+    }\r
+\r
+    public void unsetB() {\r
+        this.b = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSRgbColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSRgbColor.java
new file mode 100644 (file)
index 0000000..d74a352
--- /dev/null
@@ -0,0 +1,202 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.HexBinaryAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_SRgbColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_SRgbColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_HexBinary3" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_SRgbColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTSRgbColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "val", required = true)\r
+    @XmlJavaTypeAdapter(HexBinaryAdapter.class)\r
+    protected byte[] val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public byte[] getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setVal(byte[] value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return (this.val!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScRgbColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScRgbColor.java
new file mode 100644 (file)
index 0000000..80d88cc
--- /dev/null
@@ -0,0 +1,237 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_ScRgbColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_ScRgbColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="r" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *       &lt;attribute name="g" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *       &lt;attribute name="b" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Percentage" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_ScRgbColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTScRgbColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "r", required = true)\r
+    protected int r;\r
+    @XmlAttribute(name = "g", required = true)\r
+    protected int g;\r
+    @XmlAttribute(name = "b", required = true)\r
+    protected int b;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the r property.\r
+     * \r
+     */\r
+    public int getR() {\r
+        return r;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the r property.\r
+     * \r
+     */\r
+    public void setR(int value) {\r
+        this.r = value;\r
+    }\r
+\r
+    public boolean isSetR() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the g property.\r
+     * \r
+     */\r
+    public int getG() {\r
+        return g;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the g property.\r
+     * \r
+     */\r
+    public void setG(int value) {\r
+        this.g = value;\r
+    }\r
+\r
+    public boolean isSetG() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the b property.\r
+     * \r
+     */\r
+    public int getB() {\r
+        return b;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the b property.\r
+     * \r
+     */\r
+    public void setB(int value) {\r
+        this.b = value;\r
+    }\r
+\r
+    public boolean isSetB() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScale2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTScale2D.java
new file mode 100644 (file)
index 0000000..0f00fd8
--- /dev/null
@@ -0,0 +1,131 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Scale2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Scale2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="sx" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Ratio"/>\r
+ *         &lt;element name="sy" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Ratio"/>\r
+ *       &lt;/sequence>\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Scale2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "sx",\r
+    "sy"\r
+})\r
+public class CTScale2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTRatio sx;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTRatio sy;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the sx property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTRatio }\r
+     *     \r
+     */\r
+    public CTRatio getSx() {\r
+        return sx;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sx property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTRatio }\r
+     *     \r
+     */\r
+    public void setSx(CTRatio value) {\r
+        this.sx = value;\r
+    }\r
+\r
+    public boolean isSetSx() {\r
+        return (this.sx!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the sy property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTRatio }\r
+     *     \r
+     */\r
+    public CTRatio getSy() {\r
+        return sy;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the sy property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTRatio }\r
+     *     \r
+     */\r
+    public void setSy(CTRatio value) {\r
+        this.sy = value;\r
+    }\r
+\r
+    public boolean isSetSy() {\r
+        return (this.sy!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSchemeColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSchemeColor.java
new file mode 100644 (file)
index 0000000..078e579
--- /dev/null
@@ -0,0 +1,199 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_SchemeColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_SchemeColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_SchemeColorVal" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_SchemeColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTSchemeColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "val", required = true)\r
+    protected STSchemeColorVal val;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link STSchemeColorVal }\r
+     *     \r
+     */\r
+    public STSchemeColorVal getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link STSchemeColorVal }\r
+     *     \r
+     */\r
+    public void setVal(STSchemeColorVal value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return (this.val!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSphereCoords.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSphereCoords.java
new file mode 100644 (file)
index 0000000..4ea5857
--- /dev/null
@@ -0,0 +1,133 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_SphereCoords complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_SphereCoords">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="lat" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />\r
+ *       &lt;attribute name="lon" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />\r
+ *       &lt;attribute name="rev" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_PositiveFixedAngle" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_SphereCoords", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTSphereCoords\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "lat", required = true)\r
+    protected int lat;\r
+    @XmlAttribute(name = "lon", required = true)\r
+    protected int lon;\r
+    @XmlAttribute(name = "rev", required = true)\r
+    protected int rev;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the lat property.\r
+     * \r
+     */\r
+    public int getLat() {\r
+        return lat;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the lat property.\r
+     * \r
+     */\r
+    public void setLat(int value) {\r
+        this.lat = value;\r
+    }\r
+\r
+    public boolean isSetLat() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the lon property.\r
+     * \r
+     */\r
+    public int getLon() {\r
+        return lon;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the lon property.\r
+     * \r
+     */\r
+    public void setLon(int value) {\r
+        this.lon = value;\r
+    }\r
+\r
+    public boolean isSetLon() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the rev property.\r
+     * \r
+     */\r
+    public int getRev() {\r
+        return rev;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the rev property.\r
+     * \r
+     */\r
+    public void setRev(int value) {\r
+        this.rev = value;\r
+    }\r
+\r
+    public boolean isSetRev() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSystemColor.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTSystemColor.java
new file mode 100644 (file)
index 0000000..f91a719
--- /dev/null
@@ -0,0 +1,235 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElementRef;\r
+import javax.xml.bind.annotation.XmlElementRefs;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;\r
+import javax.xml.bind.annotation.adapters.HexBinaryAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_SystemColor complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_SystemColor">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;group ref="{http://schemas.openxmlformats.org/drawingml/2006/main}EG_ColorTransform" maxOccurs="unbounded" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="val" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_SystemColorVal" />\r
+ *       &lt;attribute name="lastClr" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_HexBinary3" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_SystemColor", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "egColorTransform"\r
+})\r
+public class CTSystemColor implements Locatable\r
+{\r
+\r
+    @XmlElementRefs({\r
+        @XmlElementRef(name = "alpha", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "tint", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "sat", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "shade", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lum", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "blueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "inv", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "gray", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "comp", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "satMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "redMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "lumMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hueMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "invGamma", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "red", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "hue", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "green", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "alphaMod", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false),\r
+        @XmlElementRef(name = "greenOff", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", type = JAXBElement.class, required = false)\r
+    })\r
+    protected List<JAXBElement<?>> egColorTransform;\r
+    @XmlAttribute(name = "val", required = true)\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String val;\r
+    @XmlAttribute(name = "lastClr")\r
+    @XmlJavaTypeAdapter(HexBinaryAdapter.class)\r
+    protected byte[] lastClr;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * This accessor method returns a reference to the live list,\r
+     * not a snapshot. Therefore any modification you make to the\r
+     * returned list will be present inside the JAXB object.\r
+     * This is why there is not a <CODE>set</CODE> method for the egColorTransform property.\r
+     * \r
+     * <p>\r
+     * For example, to add a new item, do as follows:\r
+     * <pre>\r
+     *    getEGColorTransform().add(newItem);\r
+     * </pre>\r
+     * \r
+     * \r
+     * <p>\r
+     * Objects of the following type(s) are allowed in the list\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}\r
+     * {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}\r
+     * \r
+     * \r
+     */\r
+    public List<JAXBElement<?>> getEGColorTransform() {\r
+        if (egColorTransform == null) {\r
+            egColorTransform = new ArrayList<JAXBElement<?>>();\r
+        }\r
+        return this.egColorTransform;\r
+    }\r
+\r
+    public boolean isSetEGColorTransform() {\r
+        return ((this.egColorTransform!= null)&&(!this.egColorTransform.isEmpty()));\r
+    }\r
+\r
+    public void unsetEGColorTransform() {\r
+        this.egColorTransform = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the val property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getVal() {\r
+        return val;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the val property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setVal(String value) {\r
+        this.val = value;\r
+    }\r
+\r
+    public boolean isSetVal() {\r
+        return (this.val!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the lastClr property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public byte[] getLastClr() {\r
+        return lastClr;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the lastClr property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setLastClr(byte[] value) {\r
+        this.lastClr = value;\r
+    }\r
+\r
+    public boolean isSetLastClr() {\r
+        return (this.lastClr!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTTransform2D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTTransform2D.java
new file mode 100644 (file)
index 0000000..2ba4704
--- /dev/null
@@ -0,0 +1,249 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Transform2D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Transform2D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="off" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_Point2D" minOccurs="0"/>\r
+ *         &lt;element name="ext" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_PositiveSize2D" minOccurs="0"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="rot" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Angle" default="0" />\r
+ *       &lt;attribute name="flipH" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *       &lt;attribute name="flipV" type="{http://www.w3.org/2001/XMLSchema}boolean" default="false" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Transform2D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "off",\r
+    "ext"\r
+})\r
+public class CTTransform2D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPoint2D off;\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+    protected CTPositiveSize2D ext;\r
+    @XmlAttribute(name = "rot")\r
+    protected Integer rot;\r
+    @XmlAttribute(name = "flipH")\r
+    protected Boolean flipH;\r
+    @XmlAttribute(name = "flipV")\r
+    protected Boolean flipV;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the off property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public CTPoint2D getOff() {\r
+        return off;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the off property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPoint2D }\r
+     *     \r
+     */\r
+    public void setOff(CTPoint2D value) {\r
+        this.off = value;\r
+    }\r
+\r
+    public boolean isSetOff() {\r
+        return (this.off!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the ext property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public CTPositiveSize2D getExt() {\r
+        return ext;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the ext property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTPositiveSize2D }\r
+     *     \r
+     */\r
+    public void setExt(CTPositiveSize2D value) {\r
+        this.ext = value;\r
+    }\r
+\r
+    public boolean isSetExt() {\r
+        return (this.ext!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the rot property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public int getRot() {\r
+        if (rot == null) {\r
+            return  0;\r
+        } else {\r
+            return rot;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the rot property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Integer }\r
+     *     \r
+     */\r
+    public void setRot(int value) {\r
+        this.rot = value;\r
+    }\r
+\r
+    public boolean isSetRot() {\r
+        return (this.rot!= null);\r
+    }\r
+\r
+    public void unsetRot() {\r
+        this.rot = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flipH property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isFlipH() {\r
+        if (flipH == null) {\r
+            return false;\r
+        } else {\r
+            return flipH;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flipH property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setFlipH(boolean value) {\r
+        this.flipH = value;\r
+    }\r
+\r
+    public boolean isSetFlipH() {\r
+        return (this.flipH!= null);\r
+    }\r
+\r
+    public void unsetFlipH() {\r
+        this.flipH = null;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the flipV property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public boolean isFlipV() {\r
+        if (flipV == null) {\r
+            return false;\r
+        } else {\r
+            return flipV;\r
+        }\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the flipV property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link Boolean }\r
+     *     \r
+     */\r
+    public void setFlipV(boolean value) {\r
+        this.flipV = value;\r
+    }\r
+\r
+    public boolean isSetFlipV() {\r
+        return (this.flipV!= null);\r
+    }\r
+\r
+    public void unsetFlipV() {\r
+        this.flipV = null;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTVector3D.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTVector3D.java
new file mode 100644 (file)
index 0000000..53f4b8e
--- /dev/null
@@ -0,0 +1,133 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_Vector3D complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_Vector3D">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;attribute name="dx" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *       &lt;attribute name="dy" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *       &lt;attribute name="dz" use="required" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_Coordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_Vector3D", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+public class CTVector3D\r
+    implements Locatable\r
+{\r
+\r
+    @XmlAttribute(name = "dx", required = true)\r
+    protected long dx;\r
+    @XmlAttribute(name = "dy", required = true)\r
+    protected long dy;\r
+    @XmlAttribute(name = "dz", required = true)\r
+    protected long dz;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the dx property.\r
+     * \r
+     */\r
+    public long getDx() {\r
+        return dx;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the dx property.\r
+     * \r
+     */\r
+    public void setDx(long value) {\r
+        this.dx = value;\r
+    }\r
+\r
+    public boolean isSetDx() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the dy property.\r
+     * \r
+     */\r
+    public long getDy() {\r
+        return dy;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the dy property.\r
+     * \r
+     */\r
+    public void setDy(long value) {\r
+        this.dy = value;\r
+    }\r
+\r
+    public boolean isSetDy() {\r
+        return true;\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the dz property.\r
+     * \r
+     */\r
+    public long getDz() {\r
+        return dz;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the dz property.\r
+     * \r
+     */\r
+    public void setDz(long value) {\r
+        this.dz = value;\r
+    }\r
+\r
+    public boolean isSetDz() {\r
+        return true;\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/CTXYAdjustHandle.java
new file mode 100644 (file)
index 0000000..e316f77
--- /dev/null
@@ -0,0 +1,289 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlAccessType;\r
+import javax.xml.bind.annotation.XmlAccessorType;\r
+import javax.xml.bind.annotation.XmlAttribute;\r
+import javax.xml.bind.annotation.XmlElement;\r
+import javax.xml.bind.annotation.XmlTransient;\r
+import javax.xml.bind.annotation.XmlType;\r
+import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;\r
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;\r
+import com.sun.xml.internal.bind.Locatable;\r
+import com.sun.xml.internal.bind.annotation.XmlLocation;\r
+import org.xml.sax.Locator;\r
+\r
+\r
+/**\r
+ * <p>Java class for CT_XYAdjustHandle complex type.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * \r
+ * <pre>\r
+ * &lt;complexType name="CT_XYAdjustHandle">\r
+ *   &lt;complexContent>\r
+ *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType">\r
+ *       &lt;sequence>\r
+ *         &lt;element name="pos" type="{http://schemas.openxmlformats.org/drawingml/2006/main}CT_AdjPoint2D"/>\r
+ *       &lt;/sequence>\r
+ *       &lt;attribute name="gdRefX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />\r
+ *       &lt;attribute name="minX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="maxX" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="gdRefY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_GeomGuideName" />\r
+ *       &lt;attribute name="minY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *       &lt;attribute name="maxY" type="{http://schemas.openxmlformats.org/drawingml/2006/main}ST_AdjCoordinate" />\r
+ *     &lt;/restriction>\r
+ *   &lt;/complexContent>\r
+ * &lt;/complexType>\r
+ * </pre>\r
+ * \r
+ * \r
+ */\r
+@XmlAccessorType(XmlAccessType.FIELD)\r
+@XmlType(name = "CT_XYAdjustHandle", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", propOrder = {\r
+    "pos"\r
+})\r
+public class CTXYAdjustHandle implements Locatable\r
+{\r
+\r
+    @XmlElement(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", required = true)\r
+    protected CTAdjPoint2D pos;\r
+    @XmlAttribute(name = "gdRefX")\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String gdRefX;\r
+    @XmlAttribute(name = "minX")\r
+    protected String minX;\r
+    @XmlAttribute(name = "maxX")\r
+    protected String maxX;\r
+    @XmlAttribute(name = "gdRefY")\r
+    @XmlJavaTypeAdapter(CollapsedStringAdapter.class)\r
+    protected String gdRefY;\r
+    @XmlAttribute(name = "minY")\r
+    protected String minY;\r
+    @XmlAttribute(name = "maxY")\r
+    protected String maxY;\r
+    @XmlLocation\r
+    @XmlTransient\r
+    protected Locator locator;\r
+\r
+    /**\r
+     * Gets the value of the pos property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public CTAdjPoint2D getPos() {\r
+        return pos;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the pos property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link CTAdjPoint2D }\r
+     *     \r
+     */\r
+    public void setPos(CTAdjPoint2D value) {\r
+        this.pos = value;\r
+    }\r
+\r
+    public boolean isSetPos() {\r
+        return (this.pos!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gdRefX property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getGdRefX() {\r
+        return gdRefX;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gdRefX property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setGdRefX(String value) {\r
+        this.gdRefX = value;\r
+    }\r
+\r
+    public boolean isSetGdRefX() {\r
+        return (this.gdRefX!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the minX property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMinX() {\r
+        return minX;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the minX property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMinX(String value) {\r
+        this.minX = value;\r
+    }\r
+\r
+    public boolean isSetMinX() {\r
+        return (this.minX!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the maxX property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMaxX() {\r
+        return maxX;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the maxX property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMaxX(String value) {\r
+        this.maxX = value;\r
+    }\r
+\r
+    public boolean isSetMaxX() {\r
+        return (this.maxX!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the gdRefY property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getGdRefY() {\r
+        return gdRefY;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the gdRefY property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setGdRefY(String value) {\r
+        this.gdRefY = value;\r
+    }\r
+\r
+    public boolean isSetGdRefY() {\r
+        return (this.gdRefY!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the minY property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMinY() {\r
+        return minY;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the minY property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMinY(String value) {\r
+        this.minY = value;\r
+    }\r
+\r
+    public boolean isSetMinY() {\r
+        return (this.minY!= null);\r
+    }\r
+\r
+    /**\r
+     * Gets the value of the maxY property.\r
+     * \r
+     * @return\r
+     *     possible object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public String getMaxY() {\r
+        return maxY;\r
+    }\r
+\r
+    /**\r
+     * Sets the value of the maxY property.\r
+     * \r
+     * @param value\r
+     *     allowed object is\r
+     *     {@link String }\r
+     *     \r
+     */\r
+    public void setMaxY(String value) {\r
+        this.maxY = value;\r
+    }\r
+\r
+    public boolean isSetMaxY() {\r
+        return (this.maxY!= null);\r
+    }\r
+\r
+    public Locator sourceLocation() {\r
+        return locator;\r
+    }\r
+\r
+    public void setSourceLocation(Locator newLocator) {\r
+        locator = newLocator;\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/ObjectFactory.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/ObjectFactory.java
new file mode 100644 (file)
index 0000000..d5c0d65
--- /dev/null
@@ -0,0 +1,2023 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.JAXBElement;\r
+import javax.xml.bind.annotation.XmlElementDecl;\r
+import javax.xml.bind.annotation.XmlRegistry;\r
+import javax.xml.namespace.QName;\r
+\r
+\r
+/**\r
+ * This object contains factory methods for each \r
+ * Java content interface and Java element interface \r
+ * generated in the org.apache.poi.sl.draw.binding package. \r
+ * <p>An ObjectFactory allows you to programatically \r
+ * construct new instances of the Java representation \r
+ * for XML content. The Java representation of XML \r
+ * content can consist of schema derived interfaces \r
+ * and classes representing the binding of schema \r
+ * type definitions, element declarations and model \r
+ * groups.  Factory methods for each of these are \r
+ * provided in this class.\r
+ * \r
+ */\r
+@XmlRegistry\r
+public class ObjectFactory {\r
+\r
+    private final static QName _CTHslColorAlpha_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alpha");\r
+    private final static QName _CTHslColorLum_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lum");\r
+    private final static QName _CTHslColorGamma_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "gamma");\r
+    private final static QName _CTHslColorInvGamma_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "invGamma");\r
+    private final static QName _CTHslColorAlphaMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alphaMod");\r
+    private final static QName _CTHslColorRedOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "redOff");\r
+    private final static QName _CTHslColorAlphaOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "alphaOff");\r
+    private final static QName _CTHslColorGreenOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "greenOff");\r
+    private final static QName _CTHslColorHue_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hue");\r
+    private final static QName _CTHslColorRedMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "redMod");\r
+    private final static QName _CTHslColorSatOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "satOff");\r
+    private final static QName _CTHslColorGreenMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "greenMod");\r
+    private final static QName _CTHslColorSat_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "sat");\r
+    private final static QName _CTHslColorBlue_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blue");\r
+    private final static QName _CTHslColorRed_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "red");\r
+    private final static QName _CTHslColorSatMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "satMod");\r
+    private final static QName _CTHslColorBlueMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blueMod");\r
+    private final static QName _CTHslColorHueOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hueOff");\r
+    private final static QName _CTHslColorShade_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "shade");\r
+    private final static QName _CTHslColorLumMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lumMod");\r
+    private final static QName _CTHslColorInv_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "inv");\r
+    private final static QName _CTHslColorLumOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "lumOff");\r
+    private final static QName _CTHslColorTint_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "tint");\r
+    private final static QName _CTHslColorGreen_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "green");\r
+    private final static QName _CTHslColorComp_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "comp");\r
+    private final static QName _CTHslColorBlueOff_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "blueOff");\r
+    private final static QName _CTHslColorHueMod_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "hueMod");\r
+    private final static QName _CTHslColorGray_QNAME = new QName("http://schemas.openxmlformats.org/drawingml/2006/main", "gray");\r
+\r
+    /**\r
+     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: org.apache.poi.sl.draw.binding\r
+     * \r
+     */\r
+    public ObjectFactory() {\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DQuadBezierTo }\r
+     * \r
+     */\r
+    public CTPath2DQuadBezierTo createCTPath2DQuadBezierTo() {\r
+        return new CTPath2DQuadBezierTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTCustomGeometry2D }\r
+     * \r
+     */\r
+    public CTCustomGeometry2D createCTCustomGeometry2D() {\r
+        return new CTCustomGeometry2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPolarAdjustHandle }\r
+     * \r
+     */\r
+    public CTPolarAdjustHandle createCTPolarAdjustHandle() {\r
+        return new CTPolarAdjustHandle();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DClose }\r
+     * \r
+     */\r
+    public CTPath2DClose createCTPath2DClose() {\r
+        return new CTPath2DClose();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPoint2D }\r
+     * \r
+     */\r
+    public CTPoint2D createCTPoint2D() {\r
+        return new CTPoint2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTInverseTransform }\r
+     * \r
+     */\r
+    public CTInverseTransform createCTInverseTransform() {\r
+        return new CTInverseTransform();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPercentage }\r
+     * \r
+     */\r
+    public CTPercentage createCTPercentage() {\r
+        return new CTPercentage();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTSystemColor }\r
+     * \r
+     */\r
+    public CTSystemColor createCTSystemColor() {\r
+        return new CTSystemColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTConnectionSite }\r
+     * \r
+     */\r
+    public CTConnectionSite createCTConnectionSite() {\r
+        return new CTConnectionSite();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTColor }\r
+     * \r
+     */\r
+    public CTColor createCTColor() {\r
+        return new CTColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPositiveFixedAngle }\r
+     * \r
+     */\r
+    public CTPositiveFixedAngle createCTPositiveFixedAngle() {\r
+        return new CTPositiveFixedAngle();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTFixedPercentage }\r
+     * \r
+     */\r
+    public CTFixedPercentage createCTFixedPercentage() {\r
+        return new CTFixedPercentage();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTHslColor }\r
+     * \r
+     */\r
+    public CTHslColor createCTHslColor() {\r
+        return new CTHslColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTConnection }\r
+     * \r
+     */\r
+    public CTConnection createCTConnection() {\r
+        return new CTConnection();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DLineTo }\r
+     * \r
+     */\r
+    public CTPath2DLineTo createCTPath2DLineTo() {\r
+        return new CTPath2DLineTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTTransform2D }\r
+     * \r
+     */\r
+    public CTTransform2D createCTTransform2D() {\r
+        return new CTTransform2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPositivePercentage }\r
+     * \r
+     */\r
+    public CTPositivePercentage createCTPositivePercentage() {\r
+        return new CTPositivePercentage();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTVector3D }\r
+     * \r
+     */\r
+    public CTVector3D createCTVector3D() {\r
+        return new CTVector3D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTSphereCoords }\r
+     * \r
+     */\r
+    public CTSphereCoords createCTSphereCoords() {\r
+        return new CTSphereCoords();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2D }\r
+     * \r
+     */\r
+    public CTPath2D createCTPath2D() {\r
+        return new CTPath2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGroupTransform2D }\r
+     * \r
+     */\r
+    public CTGroupTransform2D createCTGroupTransform2D() {\r
+        return new CTGroupTransform2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGrayscaleTransform }\r
+     * \r
+     */\r
+    public CTGrayscaleTransform createCTGrayscaleTransform() {\r
+        return new CTGrayscaleTransform();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTRatio }\r
+     * \r
+     */\r
+    public CTRatio createCTRatio() {\r
+        return new CTRatio();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTSRgbColor }\r
+     * \r
+     */\r
+    public CTSRgbColor createCTSRgbColor() {\r
+        return new CTSRgbColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGeomGuideList }\r
+     * \r
+     */\r
+    public CTGeomGuideList createCTGeomGuideList() {\r
+        return new CTGeomGuideList();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTComplementTransform }\r
+     * \r
+     */\r
+    public CTComplementTransform createCTComplementTransform() {\r
+        return new CTComplementTransform();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DCubicBezierTo }\r
+     * \r
+     */\r
+    public CTPath2DCubicBezierTo createCTPath2DCubicBezierTo() {\r
+        return new CTPath2DCubicBezierTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTXYAdjustHandle }\r
+     * \r
+     */\r
+    public CTXYAdjustHandle createCTXYAdjustHandle() {\r
+        return new CTXYAdjustHandle();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPresetColor }\r
+     * \r
+     */\r
+    public CTPresetColor createCTPresetColor() {\r
+        return new CTPresetColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTOfficeArtExtension }\r
+     * \r
+     */\r
+    public CTOfficeArtExtension createCTOfficeArtExtension() {\r
+        return new CTOfficeArtExtension();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTSchemeColor }\r
+     * \r
+     */\r
+    public CTSchemeColor createCTSchemeColor() {\r
+        return new CTSchemeColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTConnectionSiteList }\r
+     * \r
+     */\r
+    public CTConnectionSiteList createCTConnectionSiteList() {\r
+        return new CTConnectionSiteList();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DArcTo }\r
+     * \r
+     */\r
+    public CTPath2DArcTo createCTPath2DArcTo() {\r
+        return new CTPath2DArcTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DList }\r
+     * \r
+     */\r
+    public CTPath2DList createCTPath2DList() {\r
+        return new CTPath2DList();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTAngle }\r
+     * \r
+     */\r
+    public CTAngle createCTAngle() {\r
+        return new CTAngle();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTScale2D }\r
+     * \r
+     */\r
+    public CTScale2D createCTScale2D() {\r
+        return new CTScale2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPositiveSize2D }\r
+     * \r
+     */\r
+    public CTPositiveSize2D createCTPositiveSize2D() {\r
+        return new CTPositiveSize2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTOfficeArtExtensionList }\r
+     * \r
+     */\r
+    public CTOfficeArtExtensionList createCTOfficeArtExtensionList() {\r
+        return new CTOfficeArtExtensionList();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTHyperlink }\r
+     * \r
+     */\r
+    public CTHyperlink createCTHyperlink() {\r
+        return new CTHyperlink();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPoint3D }\r
+     * \r
+     */\r
+    public CTPoint3D createCTPoint3D() {\r
+        return new CTPoint3D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTInverseGammaTransform }\r
+     * \r
+     */\r
+    public CTInverseGammaTransform createCTInverseGammaTransform() {\r
+        return new CTInverseGammaTransform();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPositiveFixedPercentage }\r
+     * \r
+     */\r
+    public CTPositiveFixedPercentage createCTPositiveFixedPercentage() {\r
+        return new CTPositiveFixedPercentage();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGeomRect }\r
+     * \r
+     */\r
+    public CTGeomRect createCTGeomRect() {\r
+        return new CTGeomRect();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPresetTextShape }\r
+     * \r
+     */\r
+    public CTPresetTextShape createCTPresetTextShape() {\r
+        return new CTPresetTextShape();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTColorMRU }\r
+     * \r
+     */\r
+    public CTColorMRU createCTColorMRU() {\r
+        return new CTColorMRU();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPath2DMoveTo }\r
+     * \r
+     */\r
+    public CTPath2DMoveTo createCTPath2DMoveTo() {\r
+        return new CTPath2DMoveTo();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTEmbeddedWAVAudioFile }\r
+     * \r
+     */\r
+    public CTEmbeddedWAVAudioFile createCTEmbeddedWAVAudioFile() {\r
+        return new CTEmbeddedWAVAudioFile();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTScRgbColor }\r
+     * \r
+     */\r
+    public CTScRgbColor createCTScRgbColor() {\r
+        return new CTScRgbColor();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTPresetGeometry2D }\r
+     * \r
+     */\r
+    public CTPresetGeometry2D createCTPresetGeometry2D() {\r
+        return new CTPresetGeometry2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGeomGuide }\r
+     * \r
+     */\r
+    public CTGeomGuide createCTGeomGuide() {\r
+        return new CTGeomGuide();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTRelativeRect }\r
+     * \r
+     */\r
+    public CTRelativeRect createCTRelativeRect() {\r
+        return new CTRelativeRect();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTAdjustHandleList }\r
+     * \r
+     */\r
+    public CTAdjustHandleList createCTAdjustHandleList() {\r
+        return new CTAdjustHandleList();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTAdjPoint2D }\r
+     * \r
+     */\r
+    public CTAdjPoint2D createCTAdjPoint2D() {\r
+        return new CTAdjPoint2D();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link CTGammaTransform }\r
+     * \r
+     */\r
+    public CTGammaTransform createCTGammaTransform() {\r
+        return new CTGammaTransform();\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTHslColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTHslColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTHslColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTHslColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTHslColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTHslColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTHslColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTHslColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTAngle> createCTHslColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTHslColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTHslColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTHslColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTHslColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTHslColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTHslColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTHslColor.class)\r
+    public JAXBElement<CTPercentage> createCTHslColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTHslColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTHslColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTHslColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTHslColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTHslColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTSRgbColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTSRgbColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSRgbColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTSRgbColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTSRgbColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTAngle> createCTSRgbColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTSRgbColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSRgbColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTSRgbColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTSRgbColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSRgbColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTSRgbColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTSRgbColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTSRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSystemColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTSystemColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTSystemColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTSystemColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTSystemColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSystemColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTSystemColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTSystemColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTAngle> createCTSystemColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSystemColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTSystemColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTSystemColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSystemColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTSystemColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTSystemColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPercentage> createCTSystemColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTSystemColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSystemColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTSystemColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTSystemColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTSystemColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTSchemeColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTSchemeColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSchemeColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTSchemeColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTSchemeColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTAngle> createCTSchemeColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTSchemeColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTSchemeColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTSchemeColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPercentage> createCTSchemeColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTSchemeColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTSchemeColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTSchemeColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTSchemeColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTScRgbColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTScRgbColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTScRgbColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTScRgbColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTScRgbColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTScRgbColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTAngle> createCTScRgbColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTScRgbColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTScRgbColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTScRgbColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTScRgbColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPercentage> createCTScRgbColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTScRgbColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTScRgbColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTScRgbColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTScRgbColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alpha", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTPresetColorAlpha(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorAlpha_QNAME, CTPositiveFixedPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lum", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorLum(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLum_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gamma", scope = CTPresetColor.class)\r
+    public JAXBElement<CTGammaTransform> createCTPresetColorGamma(CTGammaTransform value) {\r
+        return new JAXBElement<CTGammaTransform>(_CTHslColorGamma_QNAME, CTGammaTransform.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseGammaTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "invGamma", scope = CTPresetColor.class)\r
+    public JAXBElement<CTInverseGammaTransform> createCTPresetColorInvGamma(CTInverseGammaTransform value) {\r
+        return new JAXBElement<CTInverseGammaTransform>(_CTHslColorInvGamma_QNAME, CTInverseGammaTransform.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTPresetColorAlphaMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorAlphaMod_QNAME, CTPositivePercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorRedOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedOff_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "alphaOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTFixedPercentage> createCTPresetColorAlphaOff(CTFixedPercentage value) {\r
+        return new JAXBElement<CTFixedPercentage>(_CTHslColorAlphaOff_QNAME, CTFixedPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorGreenOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenOff_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hue", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositiveFixedAngle> createCTPresetColorHue(CTPositiveFixedAngle value) {\r
+        return new JAXBElement<CTPositiveFixedAngle>(_CTHslColorHue_QNAME, CTPositiveFixedAngle.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "redMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorRedMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRedMod_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorSatOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatOff_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "greenMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorGreenMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreenMod_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "sat", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorSat(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSat_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blue", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorBlue(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlue_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "red", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorRed(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorRed_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "satMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorSatMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorSatMod_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorBlueMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueMod_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTAngle }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTAngle> createCTPresetColorHueOff(CTAngle value) {\r
+        return new JAXBElement<CTAngle>(_CTHslColorHueOff_QNAME, CTAngle.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "shade", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTPresetColorShade(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorShade_QNAME, CTPositiveFixedPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorLumMod(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumMod_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTInverseTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "inv", scope = CTPresetColor.class)\r
+    public JAXBElement<CTInverseTransform> createCTPresetColorInv(CTInverseTransform value) {\r
+        return new JAXBElement<CTInverseTransform>(_CTHslColorInv_QNAME, CTInverseTransform.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "lumOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorLumOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorLumOff_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositiveFixedPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "tint", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositiveFixedPercentage> createCTPresetColorTint(CTPositiveFixedPercentage value) {\r
+        return new JAXBElement<CTPositiveFixedPercentage>(_CTHslColorTint_QNAME, CTPositiveFixedPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "green", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorGreen(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorGreen_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTComplementTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "comp", scope = CTPresetColor.class)\r
+    public JAXBElement<CTComplementTransform> createCTPresetColorComp(CTComplementTransform value) {\r
+        return new JAXBElement<CTComplementTransform>(_CTHslColorComp_QNAME, CTComplementTransform.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "blueOff", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPercentage> createCTPresetColorBlueOff(CTPercentage value) {\r
+        return new JAXBElement<CTPercentage>(_CTHslColorBlueOff_QNAME, CTPercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTPositivePercentage }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "hueMod", scope = CTPresetColor.class)\r
+    public JAXBElement<CTPositivePercentage> createCTPresetColorHueMod(CTPositivePercentage value) {\r
+        return new JAXBElement<CTPositivePercentage>(_CTHslColorHueMod_QNAME, CTPositivePercentage.class, CTPresetColor.class, value);\r
+    }\r
+\r
+    /**\r
+     * Create an instance of {@link JAXBElement }{@code <}{@link CTGrayscaleTransform }{@code >}}\r
+     * \r
+     */\r
+    @XmlElementDecl(namespace = "http://schemas.openxmlformats.org/drawingml/2006/main", name = "gray", scope = CTPresetColor.class)\r
+    public JAXBElement<CTGrayscaleTransform> createCTPresetColorGray(CTGrayscaleTransform value) {\r
+        return new JAXBElement<CTGrayscaleTransform>(_CTHslColorGray_QNAME, CTGrayscaleTransform.class, CTPresetColor.class, value);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STBlackWhiteMode.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STBlackWhiteMode.java
new file mode 100644 (file)
index 0000000..27262d6
--- /dev/null
@@ -0,0 +1,149 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_BlackWhiteMode.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_BlackWhiteMode">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="clr"/>\r
+ *     &lt;enumeration value="auto"/>\r
+ *     &lt;enumeration value="gray"/>\r
+ *     &lt;enumeration value="ltGray"/>\r
+ *     &lt;enumeration value="invGray"/>\r
+ *     &lt;enumeration value="grayWhite"/>\r
+ *     &lt;enumeration value="blackGray"/>\r
+ *     &lt;enumeration value="blackWhite"/>\r
+ *     &lt;enumeration value="black"/>\r
+ *     &lt;enumeration value="white"/>\r
+ *     &lt;enumeration value="hidden"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_BlackWhiteMode", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STBlackWhiteMode {\r
+\r
+\r
+    /**\r
+     * Color\r
+     * \r
+     */\r
+    @XmlEnumValue("clr")\r
+    CLR("clr"),\r
+\r
+    /**\r
+     * Automatic\r
+     * \r
+     */\r
+    @XmlEnumValue("auto")\r
+    AUTO("auto"),\r
+\r
+    /**\r
+     * Gray\r
+     * \r
+     */\r
+    @XmlEnumValue("gray")\r
+    GRAY("gray"),\r
+\r
+    /**\r
+     * Light Gray\r
+     * \r
+     */\r
+    @XmlEnumValue("ltGray")\r
+    LT_GRAY("ltGray"),\r
+\r
+    /**\r
+     * Inverse Gray\r
+     * \r
+     */\r
+    @XmlEnumValue("invGray")\r
+    INV_GRAY("invGray"),\r
+\r
+    /**\r
+     * Gray and White\r
+     * \r
+     */\r
+    @XmlEnumValue("grayWhite")\r
+    GRAY_WHITE("grayWhite"),\r
+\r
+    /**\r
+     * Black and Gray\r
+     * \r
+     */\r
+    @XmlEnumValue("blackGray")\r
+    BLACK_GRAY("blackGray"),\r
+\r
+    /**\r
+     * Black and White\r
+     * \r
+     */\r
+    @XmlEnumValue("blackWhite")\r
+    BLACK_WHITE("blackWhite"),\r
+\r
+    /**\r
+     * Black\r
+     * \r
+     */\r
+    @XmlEnumValue("black")\r
+    BLACK("black"),\r
+\r
+    /**\r
+     * White\r
+     * \r
+     */\r
+    @XmlEnumValue("white")\r
+    WHITE("white"),\r
+\r
+    /**\r
+     * Hidden\r
+     * \r
+     */\r
+    @XmlEnumValue("hidden")\r
+    HIDDEN("hidden");\r
+    private final String value;\r
+\r
+    STBlackWhiteMode(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STBlackWhiteMode fromValue(String v) {\r
+        for (STBlackWhiteMode c: STBlackWhiteMode.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPathFillMode.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPathFillMode.java
new file mode 100644 (file)
index 0000000..8a26458
--- /dev/null
@@ -0,0 +1,109 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_PathFillMode.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_PathFillMode">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="none"/>\r
+ *     &lt;enumeration value="norm"/>\r
+ *     &lt;enumeration value="lighten"/>\r
+ *     &lt;enumeration value="lightenLess"/>\r
+ *     &lt;enumeration value="darken"/>\r
+ *     &lt;enumeration value="darkenLess"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_PathFillMode", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STPathFillMode {\r
+\r
+\r
+    /**\r
+     * No Path Fill\r
+     * \r
+     */\r
+    @XmlEnumValue("none")\r
+    NONE("none"),\r
+\r
+    /**\r
+     * Normal Path Fill\r
+     * \r
+     */\r
+    @XmlEnumValue("norm")\r
+    NORM("norm"),\r
+\r
+    /**\r
+     * Lighten Path Fill\r
+     * \r
+     */\r
+    @XmlEnumValue("lighten")\r
+    LIGHTEN("lighten"),\r
+\r
+    /**\r
+     * Lighten Path Fill Less\r
+     * \r
+     */\r
+    @XmlEnumValue("lightenLess")\r
+    LIGHTEN_LESS("lightenLess"),\r
+\r
+    /**\r
+     * Darken Path Fill\r
+     * \r
+     */\r
+    @XmlEnumValue("darken")\r
+    DARKEN("darken"),\r
+\r
+    /**\r
+     * Darken Path Fill Less\r
+     * \r
+     */\r
+    @XmlEnumValue("darkenLess")\r
+    DARKEN_LESS("darkenLess");\r
+    private final String value;\r
+\r
+    STPathFillMode(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STPathFillMode fromValue(String v) {\r
+        for (STPathFillMode c: STPathFillMode.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPresetColorVal.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STPresetColorVal.java
new file mode 100644 (file)
index 0000000..7450ac6
--- /dev/null
@@ -0,0 +1,1181 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_PresetColorVal.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_PresetColorVal">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="aliceBlue"/>\r
+ *     &lt;enumeration value="antiqueWhite"/>\r
+ *     &lt;enumeration value="aqua"/>\r
+ *     &lt;enumeration value="aquamarine"/>\r
+ *     &lt;enumeration value="azure"/>\r
+ *     &lt;enumeration value="beige"/>\r
+ *     &lt;enumeration value="bisque"/>\r
+ *     &lt;enumeration value="black"/>\r
+ *     &lt;enumeration value="blanchedAlmond"/>\r
+ *     &lt;enumeration value="blue"/>\r
+ *     &lt;enumeration value="blueViolet"/>\r
+ *     &lt;enumeration value="brown"/>\r
+ *     &lt;enumeration value="burlyWood"/>\r
+ *     &lt;enumeration value="cadetBlue"/>\r
+ *     &lt;enumeration value="chartreuse"/>\r
+ *     &lt;enumeration value="chocolate"/>\r
+ *     &lt;enumeration value="coral"/>\r
+ *     &lt;enumeration value="cornflowerBlue"/>\r
+ *     &lt;enumeration value="cornsilk"/>\r
+ *     &lt;enumeration value="crimson"/>\r
+ *     &lt;enumeration value="cyan"/>\r
+ *     &lt;enumeration value="dkBlue"/>\r
+ *     &lt;enumeration value="dkCyan"/>\r
+ *     &lt;enumeration value="dkGoldenrod"/>\r
+ *     &lt;enumeration value="dkGray"/>\r
+ *     &lt;enumeration value="dkGreen"/>\r
+ *     &lt;enumeration value="dkKhaki"/>\r
+ *     &lt;enumeration value="dkMagenta"/>\r
+ *     &lt;enumeration value="dkOliveGreen"/>\r
+ *     &lt;enumeration value="dkOrange"/>\r
+ *     &lt;enumeration value="dkOrchid"/>\r
+ *     &lt;enumeration value="dkRed"/>\r
+ *     &lt;enumeration value="dkSalmon"/>\r
+ *     &lt;enumeration value="dkSeaGreen"/>\r
+ *     &lt;enumeration value="dkSlateBlue"/>\r
+ *     &lt;enumeration value="dkSlateGray"/>\r
+ *     &lt;enumeration value="dkTurquoise"/>\r
+ *     &lt;enumeration value="dkViolet"/>\r
+ *     &lt;enumeration value="deepPink"/>\r
+ *     &lt;enumeration value="deepSkyBlue"/>\r
+ *     &lt;enumeration value="dimGray"/>\r
+ *     &lt;enumeration value="dodgerBlue"/>\r
+ *     &lt;enumeration value="firebrick"/>\r
+ *     &lt;enumeration value="floralWhite"/>\r
+ *     &lt;enumeration value="forestGreen"/>\r
+ *     &lt;enumeration value="fuchsia"/>\r
+ *     &lt;enumeration value="gainsboro"/>\r
+ *     &lt;enumeration value="ghostWhite"/>\r
+ *     &lt;enumeration value="gold"/>\r
+ *     &lt;enumeration value="goldenrod"/>\r
+ *     &lt;enumeration value="gray"/>\r
+ *     &lt;enumeration value="green"/>\r
+ *     &lt;enumeration value="greenYellow"/>\r
+ *     &lt;enumeration value="honeydew"/>\r
+ *     &lt;enumeration value="hotPink"/>\r
+ *     &lt;enumeration value="indianRed"/>\r
+ *     &lt;enumeration value="indigo"/>\r
+ *     &lt;enumeration value="ivory"/>\r
+ *     &lt;enumeration value="khaki"/>\r
+ *     &lt;enumeration value="lavender"/>\r
+ *     &lt;enumeration value="lavenderBlush"/>\r
+ *     &lt;enumeration value="lawnGreen"/>\r
+ *     &lt;enumeration value="lemonChiffon"/>\r
+ *     &lt;enumeration value="ltBlue"/>\r
+ *     &lt;enumeration value="ltCoral"/>\r
+ *     &lt;enumeration value="ltCyan"/>\r
+ *     &lt;enumeration value="ltGoldenrodYellow"/>\r
+ *     &lt;enumeration value="ltGray"/>\r
+ *     &lt;enumeration value="ltGreen"/>\r
+ *     &lt;enumeration value="ltPink"/>\r
+ *     &lt;enumeration value="ltSalmon"/>\r
+ *     &lt;enumeration value="ltSeaGreen"/>\r
+ *     &lt;enumeration value="ltSkyBlue"/>\r
+ *     &lt;enumeration value="ltSlateGray"/>\r
+ *     &lt;enumeration value="ltSteelBlue"/>\r
+ *     &lt;enumeration value="ltYellow"/>\r
+ *     &lt;enumeration value="lime"/>\r
+ *     &lt;enumeration value="limeGreen"/>\r
+ *     &lt;enumeration value="linen"/>\r
+ *     &lt;enumeration value="magenta"/>\r
+ *     &lt;enumeration value="maroon"/>\r
+ *     &lt;enumeration value="medAquamarine"/>\r
+ *     &lt;enumeration value="medBlue"/>\r
+ *     &lt;enumeration value="medOrchid"/>\r
+ *     &lt;enumeration value="medPurple"/>\r
+ *     &lt;enumeration value="medSeaGreen"/>\r
+ *     &lt;enumeration value="medSlateBlue"/>\r
+ *     &lt;enumeration value="medSpringGreen"/>\r
+ *     &lt;enumeration value="medTurquoise"/>\r
+ *     &lt;enumeration value="medVioletRed"/>\r
+ *     &lt;enumeration value="midnightBlue"/>\r
+ *     &lt;enumeration value="mintCream"/>\r
+ *     &lt;enumeration value="mistyRose"/>\r
+ *     &lt;enumeration value="moccasin"/>\r
+ *     &lt;enumeration value="navajoWhite"/>\r
+ *     &lt;enumeration value="navy"/>\r
+ *     &lt;enumeration value="oldLace"/>\r
+ *     &lt;enumeration value="olive"/>\r
+ *     &lt;enumeration value="oliveDrab"/>\r
+ *     &lt;enumeration value="orange"/>\r
+ *     &lt;enumeration value="orangeRed"/>\r
+ *     &lt;enumeration value="orchid"/>\r
+ *     &lt;enumeration value="paleGoldenrod"/>\r
+ *     &lt;enumeration value="paleGreen"/>\r
+ *     &lt;enumeration value="paleTurquoise"/>\r
+ *     &lt;enumeration value="paleVioletRed"/>\r
+ *     &lt;enumeration value="papayaWhip"/>\r
+ *     &lt;enumeration value="peachPuff"/>\r
+ *     &lt;enumeration value="peru"/>\r
+ *     &lt;enumeration value="pink"/>\r
+ *     &lt;enumeration value="plum"/>\r
+ *     &lt;enumeration value="powderBlue"/>\r
+ *     &lt;enumeration value="purple"/>\r
+ *     &lt;enumeration value="red"/>\r
+ *     &lt;enumeration value="rosyBrown"/>\r
+ *     &lt;enumeration value="royalBlue"/>\r
+ *     &lt;enumeration value="saddleBrown"/>\r
+ *     &lt;enumeration value="salmon"/>\r
+ *     &lt;enumeration value="sandyBrown"/>\r
+ *     &lt;enumeration value="seaGreen"/>\r
+ *     &lt;enumeration value="seaShell"/>\r
+ *     &lt;enumeration value="sienna"/>\r
+ *     &lt;enumeration value="silver"/>\r
+ *     &lt;enumeration value="skyBlue"/>\r
+ *     &lt;enumeration value="slateBlue"/>\r
+ *     &lt;enumeration value="slateGray"/>\r
+ *     &lt;enumeration value="snow"/>\r
+ *     &lt;enumeration value="springGreen"/>\r
+ *     &lt;enumeration value="steelBlue"/>\r
+ *     &lt;enumeration value="tan"/>\r
+ *     &lt;enumeration value="teal"/>\r
+ *     &lt;enumeration value="thistle"/>\r
+ *     &lt;enumeration value="tomato"/>\r
+ *     &lt;enumeration value="turquoise"/>\r
+ *     &lt;enumeration value="violet"/>\r
+ *     &lt;enumeration value="wheat"/>\r
+ *     &lt;enumeration value="white"/>\r
+ *     &lt;enumeration value="whiteSmoke"/>\r
+ *     &lt;enumeration value="yellow"/>\r
+ *     &lt;enumeration value="yellowGreen"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_PresetColorVal", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STPresetColorVal {\r
+\r
+\r
+    /**\r
+     * Alice Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("aliceBlue")\r
+    ALICE_BLUE("aliceBlue"),\r
+\r
+    /**\r
+     * Antique White Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("antiqueWhite")\r
+    ANTIQUE_WHITE("antiqueWhite"),\r
+\r
+    /**\r
+     * Aqua Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("aqua")\r
+    AQUA("aqua"),\r
+\r
+    /**\r
+     * Aquamarine Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("aquamarine")\r
+    AQUAMARINE("aquamarine"),\r
+\r
+    /**\r
+     * Azure Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("azure")\r
+    AZURE("azure"),\r
+\r
+    /**\r
+     * Beige Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("beige")\r
+    BEIGE("beige"),\r
+\r
+    /**\r
+     * Bisque Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("bisque")\r
+    BISQUE("bisque"),\r
+\r
+    /**\r
+     * Black Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("black")\r
+    BLACK("black"),\r
+\r
+    /**\r
+     * Blanched Almond Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("blanchedAlmond")\r
+    BLANCHED_ALMOND("blanchedAlmond"),\r
+\r
+    /**\r
+     * Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("blue")\r
+    BLUE("blue"),\r
+\r
+    /**\r
+     * Blue Violet Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("blueViolet")\r
+    BLUE_VIOLET("blueViolet"),\r
+\r
+    /**\r
+     * Brown Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("brown")\r
+    BROWN("brown"),\r
+\r
+    /**\r
+     * Burly Wood Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("burlyWood")\r
+    BURLY_WOOD("burlyWood"),\r
+\r
+    /**\r
+     * Cadet Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("cadetBlue")\r
+    CADET_BLUE("cadetBlue"),\r
+\r
+    /**\r
+     * Chartreuse Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("chartreuse")\r
+    CHARTREUSE("chartreuse"),\r
+\r
+    /**\r
+     * Chocolate Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("chocolate")\r
+    CHOCOLATE("chocolate"),\r
+\r
+    /**\r
+     * Coral Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("coral")\r
+    CORAL("coral"),\r
+\r
+    /**\r
+     * Cornflower Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("cornflowerBlue")\r
+    CORNFLOWER_BLUE("cornflowerBlue"),\r
+\r
+    /**\r
+     * Cornsilk Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("cornsilk")\r
+    CORNSILK("cornsilk"),\r
+\r
+    /**\r
+     * Crimson Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("crimson")\r
+    CRIMSON("crimson"),\r
+\r
+    /**\r
+     * Cyan Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("cyan")\r
+    CYAN("cyan"),\r
+\r
+    /**\r
+     * Dark Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkBlue")\r
+    DK_BLUE("dkBlue"),\r
+\r
+    /**\r
+     * Dark Cyan Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkCyan")\r
+    DK_CYAN("dkCyan"),\r
+\r
+    /**\r
+     * Dark Goldenrod Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkGoldenrod")\r
+    DK_GOLDENROD("dkGoldenrod"),\r
+\r
+    /**\r
+     * Dark Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkGray")\r
+    DK_GRAY("dkGray"),\r
+\r
+    /**\r
+     * Dark Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkGreen")\r
+    DK_GREEN("dkGreen"),\r
+\r
+    /**\r
+     * Dark Khaki Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkKhaki")\r
+    DK_KHAKI("dkKhaki"),\r
+\r
+    /**\r
+     * Dark Magenta Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkMagenta")\r
+    DK_MAGENTA("dkMagenta"),\r
+\r
+    /**\r
+     * Dark Olive Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkOliveGreen")\r
+    DK_OLIVE_GREEN("dkOliveGreen"),\r
+\r
+    /**\r
+     * Dark Orange Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkOrange")\r
+    DK_ORANGE("dkOrange"),\r
+\r
+    /**\r
+     * Dark Orchid Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkOrchid")\r
+    DK_ORCHID("dkOrchid"),\r
+\r
+    /**\r
+     * Dark Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkRed")\r
+    DK_RED("dkRed"),\r
+\r
+    /**\r
+     * Dark Salmon Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkSalmon")\r
+    DK_SALMON("dkSalmon"),\r
+\r
+    /**\r
+     * Dark Sea Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkSeaGreen")\r
+    DK_SEA_GREEN("dkSeaGreen"),\r
+\r
+    /**\r
+     * Dark Slate Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkSlateBlue")\r
+    DK_SLATE_BLUE("dkSlateBlue"),\r
+\r
+    /**\r
+     * Dark Slate Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkSlateGray")\r
+    DK_SLATE_GRAY("dkSlateGray"),\r
+\r
+    /**\r
+     * Dark Turquoise Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkTurquoise")\r
+    DK_TURQUOISE("dkTurquoise"),\r
+\r
+    /**\r
+     * Dark Violet Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dkViolet")\r
+    DK_VIOLET("dkViolet"),\r
+\r
+    /**\r
+     * Deep Pink Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("deepPink")\r
+    DEEP_PINK("deepPink"),\r
+\r
+    /**\r
+     * Deep Sky Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("deepSkyBlue")\r
+    DEEP_SKY_BLUE("deepSkyBlue"),\r
+\r
+    /**\r
+     * Dim Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dimGray")\r
+    DIM_GRAY("dimGray"),\r
+\r
+    /**\r
+     * Dodger Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("dodgerBlue")\r
+    DODGER_BLUE("dodgerBlue"),\r
+\r
+    /**\r
+     * Firebrick Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("firebrick")\r
+    FIREBRICK("firebrick"),\r
+\r
+    /**\r
+     * Floral White Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("floralWhite")\r
+    FLORAL_WHITE("floralWhite"),\r
+\r
+    /**\r
+     * Forest Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("forestGreen")\r
+    FOREST_GREEN("forestGreen"),\r
+\r
+    /**\r
+     * Fuchsia Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("fuchsia")\r
+    FUCHSIA("fuchsia"),\r
+\r
+    /**\r
+     * Gainsboro Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("gainsboro")\r
+    GAINSBORO("gainsboro"),\r
+\r
+    /**\r
+     * Ghost White Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ghostWhite")\r
+    GHOST_WHITE("ghostWhite"),\r
+\r
+    /**\r
+     * Gold Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("gold")\r
+    GOLD("gold"),\r
+\r
+    /**\r
+     * Goldenrod Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("goldenrod")\r
+    GOLDENROD("goldenrod"),\r
+\r
+    /**\r
+     * Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("gray")\r
+    GRAY("gray"),\r
+\r
+    /**\r
+     * Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("green")\r
+    GREEN("green"),\r
+\r
+    /**\r
+     * Green Yellow Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("greenYellow")\r
+    GREEN_YELLOW("greenYellow"),\r
+\r
+    /**\r
+     * Honeydew Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("honeydew")\r
+    HONEYDEW("honeydew"),\r
+\r
+    /**\r
+     * Hot Pink Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("hotPink")\r
+    HOT_PINK("hotPink"),\r
+\r
+    /**\r
+     * Indian Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("indianRed")\r
+    INDIAN_RED("indianRed"),\r
+\r
+    /**\r
+     * Indigo Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("indigo")\r
+    INDIGO("indigo"),\r
+\r
+    /**\r
+     * Ivory Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ivory")\r
+    IVORY("ivory"),\r
+\r
+    /**\r
+     * Khaki Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("khaki")\r
+    KHAKI("khaki"),\r
+\r
+    /**\r
+     * Lavender Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("lavender")\r
+    LAVENDER("lavender"),\r
+\r
+    /**\r
+     * Lavender Blush Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("lavenderBlush")\r
+    LAVENDER_BLUSH("lavenderBlush"),\r
+\r
+    /**\r
+     * Lawn Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("lawnGreen")\r
+    LAWN_GREEN("lawnGreen"),\r
+\r
+    /**\r
+     * Lemon Chiffon Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("lemonChiffon")\r
+    LEMON_CHIFFON("lemonChiffon"),\r
+\r
+    /**\r
+     * Light Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltBlue")\r
+    LT_BLUE("ltBlue"),\r
+\r
+    /**\r
+     * Light Coral Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltCoral")\r
+    LT_CORAL("ltCoral"),\r
+\r
+    /**\r
+     * Light Cyan Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltCyan")\r
+    LT_CYAN("ltCyan"),\r
+\r
+    /**\r
+     * Light Goldenrod Yellow Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltGoldenrodYellow")\r
+    LT_GOLDENROD_YELLOW("ltGoldenrodYellow"),\r
+\r
+    /**\r
+     * Light Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltGray")\r
+    LT_GRAY("ltGray"),\r
+\r
+    /**\r
+     * Light Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltGreen")\r
+    LT_GREEN("ltGreen"),\r
+\r
+    /**\r
+     * Light Pink Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltPink")\r
+    LT_PINK("ltPink"),\r
+\r
+    /**\r
+     * Light Salmon Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltSalmon")\r
+    LT_SALMON("ltSalmon"),\r
+\r
+    /**\r
+     * Light Sea Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltSeaGreen")\r
+    LT_SEA_GREEN("ltSeaGreen"),\r
+\r
+    /**\r
+     * Light Sky Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltSkyBlue")\r
+    LT_SKY_BLUE("ltSkyBlue"),\r
+\r
+    /**\r
+     * Light Slate Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltSlateGray")\r
+    LT_SLATE_GRAY("ltSlateGray"),\r
+\r
+    /**\r
+     * Light Steel Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltSteelBlue")\r
+    LT_STEEL_BLUE("ltSteelBlue"),\r
+\r
+    /**\r
+     * Light Yellow Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("ltYellow")\r
+    LT_YELLOW("ltYellow"),\r
+\r
+    /**\r
+     * Lime Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("lime")\r
+    LIME("lime"),\r
+\r
+    /**\r
+     * Lime Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("limeGreen")\r
+    LIME_GREEN("limeGreen"),\r
+\r
+    /**\r
+     * Linen Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("linen")\r
+    LINEN("linen"),\r
+\r
+    /**\r
+     * Magenta Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("magenta")\r
+    MAGENTA("magenta"),\r
+\r
+    /**\r
+     * Maroon Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("maroon")\r
+    MAROON("maroon"),\r
+\r
+    /**\r
+     * Medium Aquamarine Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medAquamarine")\r
+    MED_AQUAMARINE("medAquamarine"),\r
+\r
+    /**\r
+     * Medium Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medBlue")\r
+    MED_BLUE("medBlue"),\r
+\r
+    /**\r
+     * Medium Orchid Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medOrchid")\r
+    MED_ORCHID("medOrchid"),\r
+\r
+    /**\r
+     * Medium Purple Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medPurple")\r
+    MED_PURPLE("medPurple"),\r
+\r
+    /**\r
+     * Medium Sea Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medSeaGreen")\r
+    MED_SEA_GREEN("medSeaGreen"),\r
+\r
+    /**\r
+     * Medium Slate Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medSlateBlue")\r
+    MED_SLATE_BLUE("medSlateBlue"),\r
+\r
+    /**\r
+     * Medium Spring Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medSpringGreen")\r
+    MED_SPRING_GREEN("medSpringGreen"),\r
+\r
+    /**\r
+     * Medium Turquoise Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medTurquoise")\r
+    MED_TURQUOISE("medTurquoise"),\r
+\r
+    /**\r
+     * Medium Violet Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("medVioletRed")\r
+    MED_VIOLET_RED("medVioletRed"),\r
+\r
+    /**\r
+     * Midnight Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("midnightBlue")\r
+    MIDNIGHT_BLUE("midnightBlue"),\r
+\r
+    /**\r
+     * Mint Cream Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("mintCream")\r
+    MINT_CREAM("mintCream"),\r
+\r
+    /**\r
+     * Misty Rose Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("mistyRose")\r
+    MISTY_ROSE("mistyRose"),\r
+\r
+    /**\r
+     * Moccasin Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("moccasin")\r
+    MOCCASIN("moccasin"),\r
+\r
+    /**\r
+     * Navajo White Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("navajoWhite")\r
+    NAVAJO_WHITE("navajoWhite"),\r
+\r
+    /**\r
+     * Navy Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("navy")\r
+    NAVY("navy"),\r
+\r
+    /**\r
+     * Old Lace Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("oldLace")\r
+    OLD_LACE("oldLace"),\r
+\r
+    /**\r
+     * Olive Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("olive")\r
+    OLIVE("olive"),\r
+\r
+    /**\r
+     * Olive Drab Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("oliveDrab")\r
+    OLIVE_DRAB("oliveDrab"),\r
+\r
+    /**\r
+     * Orange Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("orange")\r
+    ORANGE("orange"),\r
+\r
+    /**\r
+     * Orange Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("orangeRed")\r
+    ORANGE_RED("orangeRed"),\r
+\r
+    /**\r
+     * Orchid Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("orchid")\r
+    ORCHID("orchid"),\r
+\r
+    /**\r
+     * Pale Goldenrod Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("paleGoldenrod")\r
+    PALE_GOLDENROD("paleGoldenrod"),\r
+\r
+    /**\r
+     * Pale Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("paleGreen")\r
+    PALE_GREEN("paleGreen"),\r
+\r
+    /**\r
+     * Pale Turquoise Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("paleTurquoise")\r
+    PALE_TURQUOISE("paleTurquoise"),\r
+\r
+    /**\r
+     * Pale Violet Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("paleVioletRed")\r
+    PALE_VIOLET_RED("paleVioletRed"),\r
+\r
+    /**\r
+     * Papaya Whip Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("papayaWhip")\r
+    PAPAYA_WHIP("papayaWhip"),\r
+\r
+    /**\r
+     * Peach Puff Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("peachPuff")\r
+    PEACH_PUFF("peachPuff"),\r
+\r
+    /**\r
+     * Peru Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("peru")\r
+    PERU("peru"),\r
+\r
+    /**\r
+     * Pink Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("pink")\r
+    PINK("pink"),\r
+\r
+    /**\r
+     * Plum Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("plum")\r
+    PLUM("plum"),\r
+\r
+    /**\r
+     * Powder Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("powderBlue")\r
+    POWDER_BLUE("powderBlue"),\r
+\r
+    /**\r
+     * Purple Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("purple")\r
+    PURPLE("purple"),\r
+\r
+    /**\r
+     * Red Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("red")\r
+    RED("red"),\r
+\r
+    /**\r
+     * Rosy Brown Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("rosyBrown")\r
+    ROSY_BROWN("rosyBrown"),\r
+\r
+    /**\r
+     * Royal Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("royalBlue")\r
+    ROYAL_BLUE("royalBlue"),\r
+\r
+    /**\r
+     * Saddle Brown Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("saddleBrown")\r
+    SADDLE_BROWN("saddleBrown"),\r
+\r
+    /**\r
+     * Salmon Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("salmon")\r
+    SALMON("salmon"),\r
+\r
+    /**\r
+     * Sandy Brown Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("sandyBrown")\r
+    SANDY_BROWN("sandyBrown"),\r
+\r
+    /**\r
+     * Sea Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("seaGreen")\r
+    SEA_GREEN("seaGreen"),\r
+\r
+    /**\r
+     * Sea Shell Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("seaShell")\r
+    SEA_SHELL("seaShell"),\r
+\r
+    /**\r
+     * Sienna Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("sienna")\r
+    SIENNA("sienna"),\r
+\r
+    /**\r
+     * Silver Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("silver")\r
+    SILVER("silver"),\r
+\r
+    /**\r
+     * Sky Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("skyBlue")\r
+    SKY_BLUE("skyBlue"),\r
+\r
+    /**\r
+     * Slate Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("slateBlue")\r
+    SLATE_BLUE("slateBlue"),\r
+\r
+    /**\r
+     * Slate Gray Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("slateGray")\r
+    SLATE_GRAY("slateGray"),\r
+\r
+    /**\r
+     * Snow Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("snow")\r
+    SNOW("snow"),\r
+\r
+    /**\r
+     * Spring Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("springGreen")\r
+    SPRING_GREEN("springGreen"),\r
+\r
+    /**\r
+     * Steel Blue Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("steelBlue")\r
+    STEEL_BLUE("steelBlue"),\r
+\r
+    /**\r
+     * Tan Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("tan")\r
+    TAN("tan"),\r
+\r
+    /**\r
+     * Teal Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("teal")\r
+    TEAL("teal"),\r
+\r
+    /**\r
+     * Thistle Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("thistle")\r
+    THISTLE("thistle"),\r
+\r
+    /**\r
+     * Tomato Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("tomato")\r
+    TOMATO("tomato"),\r
+\r
+    /**\r
+     * Turquoise Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("turquoise")\r
+    TURQUOISE("turquoise"),\r
+\r
+    /**\r
+     * Violet Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("violet")\r
+    VIOLET("violet"),\r
+\r
+    /**\r
+     * Wheat Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("wheat")\r
+    WHEAT("wheat"),\r
+\r
+    /**\r
+     * White Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("white")\r
+    WHITE("white"),\r
+\r
+    /**\r
+     * White Smoke Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("whiteSmoke")\r
+    WHITE_SMOKE("whiteSmoke"),\r
+\r
+    /**\r
+     * Yellow Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("yellow")\r
+    YELLOW("yellow"),\r
+\r
+    /**\r
+     * Yellow Green Preset Color\r
+     * \r
+     */\r
+    @XmlEnumValue("yellowGreen")\r
+    YELLOW_GREEN("yellowGreen");\r
+    private final String value;\r
+\r
+    STPresetColorVal(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STPresetColorVal fromValue(String v) {\r
+        for (STPresetColorVal c: STPresetColorVal.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STRectAlignment.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STRectAlignment.java
new file mode 100644 (file)
index 0000000..688a166
--- /dev/null
@@ -0,0 +1,133 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_RectAlignment.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_RectAlignment">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="tl"/>\r
+ *     &lt;enumeration value="t"/>\r
+ *     &lt;enumeration value="tr"/>\r
+ *     &lt;enumeration value="l"/>\r
+ *     &lt;enumeration value="ctr"/>\r
+ *     &lt;enumeration value="r"/>\r
+ *     &lt;enumeration value="bl"/>\r
+ *     &lt;enumeration value="b"/>\r
+ *     &lt;enumeration value="br"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_RectAlignment", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STRectAlignment {\r
+\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Top Left )\r
+     * \r
+     */\r
+    @XmlEnumValue("tl")\r
+    TL("tl"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Top )\r
+     * \r
+     */\r
+    @XmlEnumValue("t")\r
+    T("t"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Top Right )\r
+     * \r
+     */\r
+    @XmlEnumValue("tr")\r
+    TR("tr"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Left )\r
+     * \r
+     */\r
+    @XmlEnumValue("l")\r
+    L("l"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Center )\r
+     * \r
+     */\r
+    @XmlEnumValue("ctr")\r
+    CTR("ctr"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Right )\r
+     * \r
+     */\r
+    @XmlEnumValue("r")\r
+    R("r"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Bottom Left )\r
+     * \r
+     */\r
+    @XmlEnumValue("bl")\r
+    BL("bl"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Bottom )\r
+     * \r
+     */\r
+    @XmlEnumValue("b")\r
+    B("b"),\r
+\r
+    /**\r
+     * Rectangle Alignment Enum ( Bottom Right )\r
+     * \r
+     */\r
+    @XmlEnumValue("br")\r
+    BR("br");\r
+    private final String value;\r
+\r
+    STRectAlignment(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STRectAlignment fromValue(String v) {\r
+        for (STRectAlignment c: STRectAlignment.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STSchemeColorVal.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STSchemeColorVal.java
new file mode 100644 (file)
index 0000000..84b8807
--- /dev/null
@@ -0,0 +1,197 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_SchemeColorVal.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_SchemeColorVal">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="bg1"/>\r
+ *     &lt;enumeration value="tx1"/>\r
+ *     &lt;enumeration value="bg2"/>\r
+ *     &lt;enumeration value="tx2"/>\r
+ *     &lt;enumeration value="accent1"/>\r
+ *     &lt;enumeration value="accent2"/>\r
+ *     &lt;enumeration value="accent3"/>\r
+ *     &lt;enumeration value="accent4"/>\r
+ *     &lt;enumeration value="accent5"/>\r
+ *     &lt;enumeration value="accent6"/>\r
+ *     &lt;enumeration value="hlink"/>\r
+ *     &lt;enumeration value="folHlink"/>\r
+ *     &lt;enumeration value="phClr"/>\r
+ *     &lt;enumeration value="dk1"/>\r
+ *     &lt;enumeration value="lt1"/>\r
+ *     &lt;enumeration value="dk2"/>\r
+ *     &lt;enumeration value="lt2"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_SchemeColorVal", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STSchemeColorVal {\r
+\r
+\r
+    /**\r
+     * Background Color 1\r
+     * \r
+     */\r
+    @XmlEnumValue("bg1")\r
+    BG_1("bg1"),\r
+\r
+    /**\r
+     * Text Color 1\r
+     * \r
+     */\r
+    @XmlEnumValue("tx1")\r
+    TX_1("tx1"),\r
+\r
+    /**\r
+     * Background Color 2\r
+     * \r
+     */\r
+    @XmlEnumValue("bg2")\r
+    BG_2("bg2"),\r
+\r
+    /**\r
+     * Text Color 2\r
+     * \r
+     */\r
+    @XmlEnumValue("tx2")\r
+    TX_2("tx2"),\r
+\r
+    /**\r
+     * Accent Color 1\r
+     * \r
+     */\r
+    @XmlEnumValue("accent1")\r
+    ACCENT_1("accent1"),\r
+\r
+    /**\r
+     * Accent Color 2\r
+     * \r
+     */\r
+    @XmlEnumValue("accent2")\r
+    ACCENT_2("accent2"),\r
+\r
+    /**\r
+     * Accent Color 3\r
+     * \r
+     */\r
+    @XmlEnumValue("accent3")\r
+    ACCENT_3("accent3"),\r
+\r
+    /**\r
+     * Accent Color 4\r
+     * \r
+     */\r
+    @XmlEnumValue("accent4")\r
+    ACCENT_4("accent4"),\r
+\r
+    /**\r
+     * Accent Color 5\r
+     * \r
+     */\r
+    @XmlEnumValue("accent5")\r
+    ACCENT_5("accent5"),\r
+\r
+    /**\r
+     * Accent Color 6\r
+     * \r
+     */\r
+    @XmlEnumValue("accent6")\r
+    ACCENT_6("accent6"),\r
+\r
+    /**\r
+     * Hyperlink Color\r
+     * \r
+     */\r
+    @XmlEnumValue("hlink")\r
+    HLINK("hlink"),\r
+\r
+    /**\r
+     * Followed Hyperlink Color\r
+     * \r
+     */\r
+    @XmlEnumValue("folHlink")\r
+    FOL_HLINK("folHlink"),\r
+\r
+    /**\r
+     * Style Color\r
+     * \r
+     */\r
+    @XmlEnumValue("phClr")\r
+    PH_CLR("phClr"),\r
+\r
+    /**\r
+     * Dark Color 1\r
+     * \r
+     */\r
+    @XmlEnumValue("dk1")\r
+    DK_1("dk1"),\r
+\r
+    /**\r
+     * Light Color 1\r
+     * \r
+     */\r
+    @XmlEnumValue("lt1")\r
+    LT_1("lt1"),\r
+\r
+    /**\r
+     * Dark Color 2\r
+     * \r
+     */\r
+    @XmlEnumValue("dk2")\r
+    DK_2("dk2"),\r
+\r
+    /**\r
+     * Light Color 2\r
+     * \r
+     */\r
+    @XmlEnumValue("lt2")\r
+    LT_2("lt2");\r
+    private final String value;\r
+\r
+    STSchemeColorVal(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STSchemeColorVal fromValue(String v) {\r
+        for (STSchemeColorVal c: STSchemeColorVal.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STShapeType.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STShapeType.java
new file mode 100644 (file)
index 0000000..559b0a1
--- /dev/null
@@ -0,0 +1,1557 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_ShapeType.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_ShapeType">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="line"/>\r
+ *     &lt;enumeration value="lineInv"/>\r
+ *     &lt;enumeration value="triangle"/>\r
+ *     &lt;enumeration value="rtTriangle"/>\r
+ *     &lt;enumeration value="rect"/>\r
+ *     &lt;enumeration value="diamond"/>\r
+ *     &lt;enumeration value="parallelogram"/>\r
+ *     &lt;enumeration value="trapezoid"/>\r
+ *     &lt;enumeration value="nonIsoscelesTrapezoid"/>\r
+ *     &lt;enumeration value="pentagon"/>\r
+ *     &lt;enumeration value="hexagon"/>\r
+ *     &lt;enumeration value="heptagon"/>\r
+ *     &lt;enumeration value="octagon"/>\r
+ *     &lt;enumeration value="decagon"/>\r
+ *     &lt;enumeration value="dodecagon"/>\r
+ *     &lt;enumeration value="star4"/>\r
+ *     &lt;enumeration value="star5"/>\r
+ *     &lt;enumeration value="star6"/>\r
+ *     &lt;enumeration value="star7"/>\r
+ *     &lt;enumeration value="star8"/>\r
+ *     &lt;enumeration value="star10"/>\r
+ *     &lt;enumeration value="star12"/>\r
+ *     &lt;enumeration value="star16"/>\r
+ *     &lt;enumeration value="star24"/>\r
+ *     &lt;enumeration value="star32"/>\r
+ *     &lt;enumeration value="roundRect"/>\r
+ *     &lt;enumeration value="round1Rect"/>\r
+ *     &lt;enumeration value="round2SameRect"/>\r
+ *     &lt;enumeration value="round2DiagRect"/>\r
+ *     &lt;enumeration value="snipRoundRect"/>\r
+ *     &lt;enumeration value="snip1Rect"/>\r
+ *     &lt;enumeration value="snip2SameRect"/>\r
+ *     &lt;enumeration value="snip2DiagRect"/>\r
+ *     &lt;enumeration value="plaque"/>\r
+ *     &lt;enumeration value="ellipse"/>\r
+ *     &lt;enumeration value="teardrop"/>\r
+ *     &lt;enumeration value="homePlate"/>\r
+ *     &lt;enumeration value="chevron"/>\r
+ *     &lt;enumeration value="pieWedge"/>\r
+ *     &lt;enumeration value="pie"/>\r
+ *     &lt;enumeration value="blockArc"/>\r
+ *     &lt;enumeration value="donut"/>\r
+ *     &lt;enumeration value="noSmoking"/>\r
+ *     &lt;enumeration value="rightArrow"/>\r
+ *     &lt;enumeration value="leftArrow"/>\r
+ *     &lt;enumeration value="upArrow"/>\r
+ *     &lt;enumeration value="downArrow"/>\r
+ *     &lt;enumeration value="stripedRightArrow"/>\r
+ *     &lt;enumeration value="notchedRightArrow"/>\r
+ *     &lt;enumeration value="bentUpArrow"/>\r
+ *     &lt;enumeration value="leftRightArrow"/>\r
+ *     &lt;enumeration value="upDownArrow"/>\r
+ *     &lt;enumeration value="leftUpArrow"/>\r
+ *     &lt;enumeration value="leftRightUpArrow"/>\r
+ *     &lt;enumeration value="quadArrow"/>\r
+ *     &lt;enumeration value="leftArrowCallout"/>\r
+ *     &lt;enumeration value="rightArrowCallout"/>\r
+ *     &lt;enumeration value="upArrowCallout"/>\r
+ *     &lt;enumeration value="downArrowCallout"/>\r
+ *     &lt;enumeration value="leftRightArrowCallout"/>\r
+ *     &lt;enumeration value="upDownArrowCallout"/>\r
+ *     &lt;enumeration value="quadArrowCallout"/>\r
+ *     &lt;enumeration value="bentArrow"/>\r
+ *     &lt;enumeration value="uturnArrow"/>\r
+ *     &lt;enumeration value="circularArrow"/>\r
+ *     &lt;enumeration value="leftCircularArrow"/>\r
+ *     &lt;enumeration value="leftRightCircularArrow"/>\r
+ *     &lt;enumeration value="curvedRightArrow"/>\r
+ *     &lt;enumeration value="curvedLeftArrow"/>\r
+ *     &lt;enumeration value="curvedUpArrow"/>\r
+ *     &lt;enumeration value="curvedDownArrow"/>\r
+ *     &lt;enumeration value="swooshArrow"/>\r
+ *     &lt;enumeration value="cube"/>\r
+ *     &lt;enumeration value="can"/>\r
+ *     &lt;enumeration value="lightningBolt"/>\r
+ *     &lt;enumeration value="heart"/>\r
+ *     &lt;enumeration value="sun"/>\r
+ *     &lt;enumeration value="moon"/>\r
+ *     &lt;enumeration value="smileyFace"/>\r
+ *     &lt;enumeration value="irregularSeal1"/>\r
+ *     &lt;enumeration value="irregularSeal2"/>\r
+ *     &lt;enumeration value="foldedCorner"/>\r
+ *     &lt;enumeration value="bevel"/>\r
+ *     &lt;enumeration value="frame"/>\r
+ *     &lt;enumeration value="halfFrame"/>\r
+ *     &lt;enumeration value="corner"/>\r
+ *     &lt;enumeration value="diagStripe"/>\r
+ *     &lt;enumeration value="chord"/>\r
+ *     &lt;enumeration value="arc"/>\r
+ *     &lt;enumeration value="leftBracket"/>\r
+ *     &lt;enumeration value="rightBracket"/>\r
+ *     &lt;enumeration value="leftBrace"/>\r
+ *     &lt;enumeration value="rightBrace"/>\r
+ *     &lt;enumeration value="bracketPair"/>\r
+ *     &lt;enumeration value="bracePair"/>\r
+ *     &lt;enumeration value="straightConnector1"/>\r
+ *     &lt;enumeration value="bentConnector2"/>\r
+ *     &lt;enumeration value="bentConnector3"/>\r
+ *     &lt;enumeration value="bentConnector4"/>\r
+ *     &lt;enumeration value="bentConnector5"/>\r
+ *     &lt;enumeration value="curvedConnector2"/>\r
+ *     &lt;enumeration value="curvedConnector3"/>\r
+ *     &lt;enumeration value="curvedConnector4"/>\r
+ *     &lt;enumeration value="curvedConnector5"/>\r
+ *     &lt;enumeration value="callout1"/>\r
+ *     &lt;enumeration value="callout2"/>\r
+ *     &lt;enumeration value="callout3"/>\r
+ *     &lt;enumeration value="accentCallout1"/>\r
+ *     &lt;enumeration value="accentCallout2"/>\r
+ *     &lt;enumeration value="accentCallout3"/>\r
+ *     &lt;enumeration value="borderCallout1"/>\r
+ *     &lt;enumeration value="borderCallout2"/>\r
+ *     &lt;enumeration value="borderCallout3"/>\r
+ *     &lt;enumeration value="accentBorderCallout1"/>\r
+ *     &lt;enumeration value="accentBorderCallout2"/>\r
+ *     &lt;enumeration value="accentBorderCallout3"/>\r
+ *     &lt;enumeration value="wedgeRectCallout"/>\r
+ *     &lt;enumeration value="wedgeRoundRectCallout"/>\r
+ *     &lt;enumeration value="wedgeEllipseCallout"/>\r
+ *     &lt;enumeration value="cloudCallout"/>\r
+ *     &lt;enumeration value="cloud"/>\r
+ *     &lt;enumeration value="ribbon"/>\r
+ *     &lt;enumeration value="ribbon2"/>\r
+ *     &lt;enumeration value="ellipseRibbon"/>\r
+ *     &lt;enumeration value="ellipseRibbon2"/>\r
+ *     &lt;enumeration value="leftRightRibbon"/>\r
+ *     &lt;enumeration value="verticalScroll"/>\r
+ *     &lt;enumeration value="horizontalScroll"/>\r
+ *     &lt;enumeration value="wave"/>\r
+ *     &lt;enumeration value="doubleWave"/>\r
+ *     &lt;enumeration value="plus"/>\r
+ *     &lt;enumeration value="flowChartProcess"/>\r
+ *     &lt;enumeration value="flowChartDecision"/>\r
+ *     &lt;enumeration value="flowChartInputOutput"/>\r
+ *     &lt;enumeration value="flowChartPredefinedProcess"/>\r
+ *     &lt;enumeration value="flowChartInternalStorage"/>\r
+ *     &lt;enumeration value="flowChartDocument"/>\r
+ *     &lt;enumeration value="flowChartMultidocument"/>\r
+ *     &lt;enumeration value="flowChartTerminator"/>\r
+ *     &lt;enumeration value="flowChartPreparation"/>\r
+ *     &lt;enumeration value="flowChartManualInput"/>\r
+ *     &lt;enumeration value="flowChartManualOperation"/>\r
+ *     &lt;enumeration value="flowChartConnector"/>\r
+ *     &lt;enumeration value="flowChartPunchedCard"/>\r
+ *     &lt;enumeration value="flowChartPunchedTape"/>\r
+ *     &lt;enumeration value="flowChartSummingJunction"/>\r
+ *     &lt;enumeration value="flowChartOr"/>\r
+ *     &lt;enumeration value="flowChartCollate"/>\r
+ *     &lt;enumeration value="flowChartSort"/>\r
+ *     &lt;enumeration value="flowChartExtract"/>\r
+ *     &lt;enumeration value="flowChartMerge"/>\r
+ *     &lt;enumeration value="flowChartOfflineStorage"/>\r
+ *     &lt;enumeration value="flowChartOnlineStorage"/>\r
+ *     &lt;enumeration value="flowChartMagneticTape"/>\r
+ *     &lt;enumeration value="flowChartMagneticDisk"/>\r
+ *     &lt;enumeration value="flowChartMagneticDrum"/>\r
+ *     &lt;enumeration value="flowChartDisplay"/>\r
+ *     &lt;enumeration value="flowChartDelay"/>\r
+ *     &lt;enumeration value="flowChartAlternateProcess"/>\r
+ *     &lt;enumeration value="flowChartOffpageConnector"/>\r
+ *     &lt;enumeration value="actionButtonBlank"/>\r
+ *     &lt;enumeration value="actionButtonHome"/>\r
+ *     &lt;enumeration value="actionButtonHelp"/>\r
+ *     &lt;enumeration value="actionButtonInformation"/>\r
+ *     &lt;enumeration value="actionButtonForwardNext"/>\r
+ *     &lt;enumeration value="actionButtonBackPrevious"/>\r
+ *     &lt;enumeration value="actionButtonEnd"/>\r
+ *     &lt;enumeration value="actionButtonBeginning"/>\r
+ *     &lt;enumeration value="actionButtonReturn"/>\r
+ *     &lt;enumeration value="actionButtonDocument"/>\r
+ *     &lt;enumeration value="actionButtonSound"/>\r
+ *     &lt;enumeration value="actionButtonMovie"/>\r
+ *     &lt;enumeration value="gear6"/>\r
+ *     &lt;enumeration value="gear9"/>\r
+ *     &lt;enumeration value="funnel"/>\r
+ *     &lt;enumeration value="mathPlus"/>\r
+ *     &lt;enumeration value="mathMinus"/>\r
+ *     &lt;enumeration value="mathMultiply"/>\r
+ *     &lt;enumeration value="mathDivide"/>\r
+ *     &lt;enumeration value="mathEqual"/>\r
+ *     &lt;enumeration value="mathNotEqual"/>\r
+ *     &lt;enumeration value="cornerTabs"/>\r
+ *     &lt;enumeration value="squareTabs"/>\r
+ *     &lt;enumeration value="plaqueTabs"/>\r
+ *     &lt;enumeration value="chartX"/>\r
+ *     &lt;enumeration value="chartStar"/>\r
+ *     &lt;enumeration value="chartPlus"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_ShapeType", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STShapeType {\r
+\r
+\r
+    /**\r
+     * Line Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("line")\r
+    LINE("line"),\r
+\r
+    /**\r
+     * Line Inverse Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("lineInv")\r
+    LINE_INV("lineInv"),\r
+\r
+    /**\r
+     * Triangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("triangle")\r
+    TRIANGLE("triangle"),\r
+\r
+    /**\r
+     * Right Triangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rtTriangle")\r
+    RT_TRIANGLE("rtTriangle"),\r
+\r
+    /**\r
+     * Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rect")\r
+    RECT("rect"),\r
+\r
+    /**\r
+     * Diamond Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("diamond")\r
+    DIAMOND("diamond"),\r
+\r
+    /**\r
+     * Parallelogram Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("parallelogram")\r
+    PARALLELOGRAM("parallelogram"),\r
+\r
+    /**\r
+     * Trapezoid Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("trapezoid")\r
+    TRAPEZOID("trapezoid"),\r
+\r
+    /**\r
+     * Non-Isosceles Trapezoid Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("nonIsoscelesTrapezoid")\r
+    NON_ISOSCELES_TRAPEZOID("nonIsoscelesTrapezoid"),\r
+\r
+    /**\r
+     * Pentagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("pentagon")\r
+    PENTAGON("pentagon"),\r
+\r
+    /**\r
+     * Hexagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("hexagon")\r
+    HEXAGON("hexagon"),\r
+\r
+    /**\r
+     * Heptagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("heptagon")\r
+    HEPTAGON("heptagon"),\r
+\r
+    /**\r
+     * Octagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("octagon")\r
+    OCTAGON("octagon"),\r
+\r
+    /**\r
+     * Decagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("decagon")\r
+    DECAGON("decagon"),\r
+\r
+    /**\r
+     * Dodecagon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("dodecagon")\r
+    DODECAGON("dodecagon"),\r
+\r
+    /**\r
+     * Four Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star4")\r
+    STAR_4("star4"),\r
+\r
+    /**\r
+     * Five Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star5")\r
+    STAR_5("star5"),\r
+\r
+    /**\r
+     * Six Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star6")\r
+    STAR_6("star6"),\r
+\r
+    /**\r
+     * Seven Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star7")\r
+    STAR_7("star7"),\r
+\r
+    /**\r
+     * Eight Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star8")\r
+    STAR_8("star8"),\r
+\r
+    /**\r
+     * Ten Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star10")\r
+    STAR_10("star10"),\r
+\r
+    /**\r
+     * Twelve Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star12")\r
+    STAR_12("star12"),\r
+\r
+    /**\r
+     * Sixteen Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star16")\r
+    STAR_16("star16"),\r
+\r
+    /**\r
+     * Twenty Four Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star24")\r
+    STAR_24("star24"),\r
+\r
+    /**\r
+     * Thirty Two Pointed Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("star32")\r
+    STAR_32("star32"),\r
+\r
+    /**\r
+     * Round Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("roundRect")\r
+    ROUND_RECT("roundRect"),\r
+\r
+    /**\r
+     * One Round Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("round1Rect")\r
+    ROUND_1_RECT("round1Rect"),\r
+\r
+    /**\r
+     * Two Same-side Round Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("round2SameRect")\r
+    ROUND_2_SAME_RECT("round2SameRect"),\r
+\r
+    /**\r
+     * Two Diagonal Round Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("round2DiagRect")\r
+    ROUND_2_DIAG_RECT("round2DiagRect"),\r
+\r
+    /**\r
+     * One Snip One Round Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("snipRoundRect")\r
+    SNIP_ROUND_RECT("snipRoundRect"),\r
+\r
+    /**\r
+     * One Snip Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("snip1Rect")\r
+    SNIP_1_RECT("snip1Rect"),\r
+\r
+    /**\r
+     * Two Same-side Snip Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("snip2SameRect")\r
+    SNIP_2_SAME_RECT("snip2SameRect"),\r
+\r
+    /**\r
+     * Two Diagonal Snip Corner Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("snip2DiagRect")\r
+    SNIP_2_DIAG_RECT("snip2DiagRect"),\r
+\r
+    /**\r
+     * Plaque Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("plaque")\r
+    PLAQUE("plaque"),\r
+\r
+    /**\r
+     * Ellipse Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("ellipse")\r
+    ELLIPSE("ellipse"),\r
+\r
+    /**\r
+     * Teardrop Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("teardrop")\r
+    TEARDROP("teardrop"),\r
+\r
+    /**\r
+     * Home Plate Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("homePlate")\r
+    HOME_PLATE("homePlate"),\r
+\r
+    /**\r
+     * Chevron Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("chevron")\r
+    CHEVRON("chevron"),\r
+\r
+    /**\r
+     * Pie Wedge Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("pieWedge")\r
+    PIE_WEDGE("pieWedge"),\r
+\r
+    /**\r
+     * Pie Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("pie")\r
+    PIE("pie"),\r
+\r
+    /**\r
+     * Block Arc Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("blockArc")\r
+    BLOCK_ARC("blockArc"),\r
+\r
+    /**\r
+     * Donut Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("donut")\r
+    DONUT("donut"),\r
+\r
+    /**\r
+     * No Smoking Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("noSmoking")\r
+    NO_SMOKING("noSmoking"),\r
+\r
+    /**\r
+     * Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rightArrow")\r
+    RIGHT_ARROW("rightArrow"),\r
+\r
+    /**\r
+     * Left Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftArrow")\r
+    LEFT_ARROW("leftArrow"),\r
+\r
+    /**\r
+     * Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("upArrow")\r
+    UP_ARROW("upArrow"),\r
+\r
+    /**\r
+     * Down Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("downArrow")\r
+    DOWN_ARROW("downArrow"),\r
+\r
+    /**\r
+     * Striped Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("stripedRightArrow")\r
+    STRIPED_RIGHT_ARROW("stripedRightArrow"),\r
+\r
+    /**\r
+     * Notched Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("notchedRightArrow")\r
+    NOTCHED_RIGHT_ARROW("notchedRightArrow"),\r
+\r
+    /**\r
+     * Bent Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentUpArrow")\r
+    BENT_UP_ARROW("bentUpArrow"),\r
+\r
+    /**\r
+     * Left Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftRightArrow")\r
+    LEFT_RIGHT_ARROW("leftRightArrow"),\r
+\r
+    /**\r
+     * Up Down Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("upDownArrow")\r
+    UP_DOWN_ARROW("upDownArrow"),\r
+\r
+    /**\r
+     * Left Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftUpArrow")\r
+    LEFT_UP_ARROW("leftUpArrow"),\r
+\r
+    /**\r
+     * Left Right Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftRightUpArrow")\r
+    LEFT_RIGHT_UP_ARROW("leftRightUpArrow"),\r
+\r
+    /**\r
+     * Quad-Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("quadArrow")\r
+    QUAD_ARROW("quadArrow"),\r
+\r
+    /**\r
+     * Callout Left Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftArrowCallout")\r
+    LEFT_ARROW_CALLOUT("leftArrowCallout"),\r
+\r
+    /**\r
+     * Callout Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rightArrowCallout")\r
+    RIGHT_ARROW_CALLOUT("rightArrowCallout"),\r
+\r
+    /**\r
+     * Callout Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("upArrowCallout")\r
+    UP_ARROW_CALLOUT("upArrowCallout"),\r
+\r
+    /**\r
+     * Callout Down Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("downArrowCallout")\r
+    DOWN_ARROW_CALLOUT("downArrowCallout"),\r
+\r
+    /**\r
+     * Callout Left Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftRightArrowCallout")\r
+    LEFT_RIGHT_ARROW_CALLOUT("leftRightArrowCallout"),\r
+\r
+    /**\r
+     * Callout Up Down Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("upDownArrowCallout")\r
+    UP_DOWN_ARROW_CALLOUT("upDownArrowCallout"),\r
+\r
+    /**\r
+     * Callout Quad-Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("quadArrowCallout")\r
+    QUAD_ARROW_CALLOUT("quadArrowCallout"),\r
+\r
+    /**\r
+     * Bent Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentArrow")\r
+    BENT_ARROW("bentArrow"),\r
+\r
+    /**\r
+     * U-Turn Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("uturnArrow")\r
+    UTURN_ARROW("uturnArrow"),\r
+\r
+    /**\r
+     * Circular Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("circularArrow")\r
+    CIRCULAR_ARROW("circularArrow"),\r
+\r
+    /**\r
+     * Left Circular Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftCircularArrow")\r
+    LEFT_CIRCULAR_ARROW("leftCircularArrow"),\r
+\r
+    /**\r
+     * Left Right Circular Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftRightCircularArrow")\r
+    LEFT_RIGHT_CIRCULAR_ARROW("leftRightCircularArrow"),\r
+\r
+    /**\r
+     * Curved Right Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedRightArrow")\r
+    CURVED_RIGHT_ARROW("curvedRightArrow"),\r
+\r
+    /**\r
+     * Curved Left Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedLeftArrow")\r
+    CURVED_LEFT_ARROW("curvedLeftArrow"),\r
+\r
+    /**\r
+     * Curved Up Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedUpArrow")\r
+    CURVED_UP_ARROW("curvedUpArrow"),\r
+\r
+    /**\r
+     * Curved Down Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedDownArrow")\r
+    CURVED_DOWN_ARROW("curvedDownArrow"),\r
+\r
+    /**\r
+     * Swoosh Arrow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("swooshArrow")\r
+    SWOOSH_ARROW("swooshArrow"),\r
+\r
+    /**\r
+     * Cube Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("cube")\r
+    CUBE("cube"),\r
+\r
+    /**\r
+     * Can Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("can")\r
+    CAN("can"),\r
+\r
+    /**\r
+     * Lightning Bolt Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("lightningBolt")\r
+    LIGHTNING_BOLT("lightningBolt"),\r
+\r
+    /**\r
+     * Heart Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("heart")\r
+    HEART("heart"),\r
+\r
+    /**\r
+     * Sun Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("sun")\r
+    SUN("sun"),\r
+\r
+    /**\r
+     * Moon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("moon")\r
+    MOON("moon"),\r
+\r
+    /**\r
+     * Smiley Face Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("smileyFace")\r
+    SMILEY_FACE("smileyFace"),\r
+\r
+    /**\r
+     * Irregular Seal 1 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("irregularSeal1")\r
+    IRREGULAR_SEAL_1("irregularSeal1"),\r
+\r
+    /**\r
+     * Irregular Seal 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("irregularSeal2")\r
+    IRREGULAR_SEAL_2("irregularSeal2"),\r
+\r
+    /**\r
+     * Folded Corner Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("foldedCorner")\r
+    FOLDED_CORNER("foldedCorner"),\r
+\r
+    /**\r
+     * Bevel Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bevel")\r
+    BEVEL("bevel"),\r
+\r
+    /**\r
+     * Frame Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("frame")\r
+    FRAME("frame"),\r
+\r
+    /**\r
+     * Half Frame Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("halfFrame")\r
+    HALF_FRAME("halfFrame"),\r
+\r
+    /**\r
+     * Corner Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("corner")\r
+    CORNER("corner"),\r
+\r
+    /**\r
+     * Diagonal Stripe Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("diagStripe")\r
+    DIAG_STRIPE("diagStripe"),\r
+\r
+    /**\r
+     * Chord Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("chord")\r
+    CHORD("chord"),\r
+\r
+    /**\r
+     * Curved Arc Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("arc")\r
+    ARC("arc"),\r
+\r
+    /**\r
+     * Left Bracket Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftBracket")\r
+    LEFT_BRACKET("leftBracket"),\r
+\r
+    /**\r
+     * Right Bracket Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rightBracket")\r
+    RIGHT_BRACKET("rightBracket"),\r
+\r
+    /**\r
+     * Left Brace Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftBrace")\r
+    LEFT_BRACE("leftBrace"),\r
+\r
+    /**\r
+     * Right Brace Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("rightBrace")\r
+    RIGHT_BRACE("rightBrace"),\r
+\r
+    /**\r
+     * Bracket Pair Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bracketPair")\r
+    BRACKET_PAIR("bracketPair"),\r
+\r
+    /**\r
+     * Brace Pair Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bracePair")\r
+    BRACE_PAIR("bracePair"),\r
+\r
+    /**\r
+     * Straight Connector 1 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("straightConnector1")\r
+    STRAIGHT_CONNECTOR_1("straightConnector1"),\r
+\r
+    /**\r
+     * Bent Connector 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentConnector2")\r
+    BENT_CONNECTOR_2("bentConnector2"),\r
+\r
+    /**\r
+     * Bent Connector 3 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentConnector3")\r
+    BENT_CONNECTOR_3("bentConnector3"),\r
+\r
+    /**\r
+     * Bent Connector 4 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentConnector4")\r
+    BENT_CONNECTOR_4("bentConnector4"),\r
+\r
+    /**\r
+     * Bent Connector 5 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("bentConnector5")\r
+    BENT_CONNECTOR_5("bentConnector5"),\r
+\r
+    /**\r
+     * Curved Connector 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedConnector2")\r
+    CURVED_CONNECTOR_2("curvedConnector2"),\r
+\r
+    /**\r
+     * Curved Connector 3 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedConnector3")\r
+    CURVED_CONNECTOR_3("curvedConnector3"),\r
+\r
+    /**\r
+     * Curved Connector 4 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedConnector4")\r
+    CURVED_CONNECTOR_4("curvedConnector4"),\r
+\r
+    /**\r
+     * Curved Connector 5 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("curvedConnector5")\r
+    CURVED_CONNECTOR_5("curvedConnector5"),\r
+\r
+    /**\r
+     * Callout 1 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("callout1")\r
+    CALLOUT_1("callout1"),\r
+\r
+    /**\r
+     * Callout 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("callout2")\r
+    CALLOUT_2("callout2"),\r
+\r
+    /**\r
+     * Callout 3 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("callout3")\r
+    CALLOUT_3("callout3"),\r
+\r
+    /**\r
+     * Callout 1 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentCallout1")\r
+    ACCENT_CALLOUT_1("accentCallout1"),\r
+\r
+    /**\r
+     * Callout 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentCallout2")\r
+    ACCENT_CALLOUT_2("accentCallout2"),\r
+\r
+    /**\r
+     * Callout 3 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentCallout3")\r
+    ACCENT_CALLOUT_3("accentCallout3"),\r
+\r
+    /**\r
+     * Callout 1 with Border Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("borderCallout1")\r
+    BORDER_CALLOUT_1("borderCallout1"),\r
+\r
+    /**\r
+     * Callout 2 with Border Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("borderCallout2")\r
+    BORDER_CALLOUT_2("borderCallout2"),\r
+\r
+    /**\r
+     * Callout 3 with Border Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("borderCallout3")\r
+    BORDER_CALLOUT_3("borderCallout3"),\r
+\r
+    /**\r
+     * Callout 1 with Border and Accent Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentBorderCallout1")\r
+    ACCENT_BORDER_CALLOUT_1("accentBorderCallout1"),\r
+\r
+    /**\r
+     * Callout 2 with Border and Accent Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentBorderCallout2")\r
+    ACCENT_BORDER_CALLOUT_2("accentBorderCallout2"),\r
+\r
+    /**\r
+     * Callout 3 with Border and Accent Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("accentBorderCallout3")\r
+    ACCENT_BORDER_CALLOUT_3("accentBorderCallout3"),\r
+\r
+    /**\r
+     * Callout Wedge Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("wedgeRectCallout")\r
+    WEDGE_RECT_CALLOUT("wedgeRectCallout"),\r
+\r
+    /**\r
+     * Callout Wedge Round Rectangle Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("wedgeRoundRectCallout")\r
+    WEDGE_ROUND_RECT_CALLOUT("wedgeRoundRectCallout"),\r
+\r
+    /**\r
+     * Callout Wedge Ellipse Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("wedgeEllipseCallout")\r
+    WEDGE_ELLIPSE_CALLOUT("wedgeEllipseCallout"),\r
+\r
+    /**\r
+     * Callout Cloud Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("cloudCallout")\r
+    CLOUD_CALLOUT("cloudCallout"),\r
+\r
+    /**\r
+     * Cloud Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("cloud")\r
+    CLOUD("cloud"),\r
+\r
+    /**\r
+     * Ribbon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("ribbon")\r
+    RIBBON("ribbon"),\r
+\r
+    /**\r
+     * Ribbon 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("ribbon2")\r
+    RIBBON_2("ribbon2"),\r
+\r
+    /**\r
+     * Ellipse Ribbon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("ellipseRibbon")\r
+    ELLIPSE_RIBBON("ellipseRibbon"),\r
+\r
+    /**\r
+     * Ellipse Ribbon 2 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("ellipseRibbon2")\r
+    ELLIPSE_RIBBON_2("ellipseRibbon2"),\r
+\r
+    /**\r
+     * Left Right Ribbon Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("leftRightRibbon")\r
+    LEFT_RIGHT_RIBBON("leftRightRibbon"),\r
+\r
+    /**\r
+     * Vertical Scroll Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("verticalScroll")\r
+    VERTICAL_SCROLL("verticalScroll"),\r
+\r
+    /**\r
+     * Horizontal Scroll Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("horizontalScroll")\r
+    HORIZONTAL_SCROLL("horizontalScroll"),\r
+\r
+    /**\r
+     * Wave Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("wave")\r
+    WAVE("wave"),\r
+\r
+    /**\r
+     * Double Wave Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("doubleWave")\r
+    DOUBLE_WAVE("doubleWave"),\r
+\r
+    /**\r
+     * Plus Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("plus")\r
+    PLUS("plus"),\r
+\r
+    /**\r
+     * Process Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartProcess")\r
+    FLOW_CHART_PROCESS("flowChartProcess"),\r
+\r
+    /**\r
+     * Decision Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartDecision")\r
+    FLOW_CHART_DECISION("flowChartDecision"),\r
+\r
+    /**\r
+     * Input Output Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartInputOutput")\r
+    FLOW_CHART_INPUT_OUTPUT("flowChartInputOutput"),\r
+\r
+    /**\r
+     * Predefined Process Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartPredefinedProcess")\r
+    FLOW_CHART_PREDEFINED_PROCESS("flowChartPredefinedProcess"),\r
+\r
+    /**\r
+     * Internal Storage Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartInternalStorage")\r
+    FLOW_CHART_INTERNAL_STORAGE("flowChartInternalStorage"),\r
+\r
+    /**\r
+     * Document Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartDocument")\r
+    FLOW_CHART_DOCUMENT("flowChartDocument"),\r
+\r
+    /**\r
+     * Multi-Document Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartMultidocument")\r
+    FLOW_CHART_MULTIDOCUMENT("flowChartMultidocument"),\r
+\r
+    /**\r
+     * Terminator Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartTerminator")\r
+    FLOW_CHART_TERMINATOR("flowChartTerminator"),\r
+\r
+    /**\r
+     * Preparation Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartPreparation")\r
+    FLOW_CHART_PREPARATION("flowChartPreparation"),\r
+\r
+    /**\r
+     * Manual Input Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartManualInput")\r
+    FLOW_CHART_MANUAL_INPUT("flowChartManualInput"),\r
+\r
+    /**\r
+     * Manual Operation Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartManualOperation")\r
+    FLOW_CHART_MANUAL_OPERATION("flowChartManualOperation"),\r
+\r
+    /**\r
+     * Connector Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartConnector")\r
+    FLOW_CHART_CONNECTOR("flowChartConnector"),\r
+\r
+    /**\r
+     * Punched Card Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartPunchedCard")\r
+    FLOW_CHART_PUNCHED_CARD("flowChartPunchedCard"),\r
+\r
+    /**\r
+     * Punched Tape Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartPunchedTape")\r
+    FLOW_CHART_PUNCHED_TAPE("flowChartPunchedTape"),\r
+\r
+    /**\r
+     * Summing Junction Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartSummingJunction")\r
+    FLOW_CHART_SUMMING_JUNCTION("flowChartSummingJunction"),\r
+\r
+    /**\r
+     * Or Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartOr")\r
+    FLOW_CHART_OR("flowChartOr"),\r
+\r
+    /**\r
+     * Collate Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartCollate")\r
+    FLOW_CHART_COLLATE("flowChartCollate"),\r
+\r
+    /**\r
+     * Sort Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartSort")\r
+    FLOW_CHART_SORT("flowChartSort"),\r
+\r
+    /**\r
+     * Extract Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartExtract")\r
+    FLOW_CHART_EXTRACT("flowChartExtract"),\r
+\r
+    /**\r
+     * Merge Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartMerge")\r
+    FLOW_CHART_MERGE("flowChartMerge"),\r
+\r
+    /**\r
+     * Offline Storage Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartOfflineStorage")\r
+    FLOW_CHART_OFFLINE_STORAGE("flowChartOfflineStorage"),\r
+\r
+    /**\r
+     * Online Storage Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartOnlineStorage")\r
+    FLOW_CHART_ONLINE_STORAGE("flowChartOnlineStorage"),\r
+\r
+    /**\r
+     * Magnetic Tape Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartMagneticTape")\r
+    FLOW_CHART_MAGNETIC_TAPE("flowChartMagneticTape"),\r
+\r
+    /**\r
+     * Magnetic Disk Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartMagneticDisk")\r
+    FLOW_CHART_MAGNETIC_DISK("flowChartMagneticDisk"),\r
+\r
+    /**\r
+     * Magnetic Drum Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartMagneticDrum")\r
+    FLOW_CHART_MAGNETIC_DRUM("flowChartMagneticDrum"),\r
+\r
+    /**\r
+     * Display Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartDisplay")\r
+    FLOW_CHART_DISPLAY("flowChartDisplay"),\r
+\r
+    /**\r
+     * Delay Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartDelay")\r
+    FLOW_CHART_DELAY("flowChartDelay"),\r
+\r
+    /**\r
+     * Alternate Process Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartAlternateProcess")\r
+    FLOW_CHART_ALTERNATE_PROCESS("flowChartAlternateProcess"),\r
+\r
+    /**\r
+     * Off-Page Connector Flow Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("flowChartOffpageConnector")\r
+    FLOW_CHART_OFFPAGE_CONNECTOR("flowChartOffpageConnector"),\r
+\r
+    /**\r
+     * Blank Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonBlank")\r
+    ACTION_BUTTON_BLANK("actionButtonBlank"),\r
+\r
+    /**\r
+     * Home Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonHome")\r
+    ACTION_BUTTON_HOME("actionButtonHome"),\r
+\r
+    /**\r
+     * Help Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonHelp")\r
+    ACTION_BUTTON_HELP("actionButtonHelp"),\r
+\r
+    /**\r
+     * Information Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonInformation")\r
+    ACTION_BUTTON_INFORMATION("actionButtonInformation"),\r
+\r
+    /**\r
+     * Forward or Next Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonForwardNext")\r
+    ACTION_BUTTON_FORWARD_NEXT("actionButtonForwardNext"),\r
+\r
+    /**\r
+     * Back or Previous Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonBackPrevious")\r
+    ACTION_BUTTON_BACK_PREVIOUS("actionButtonBackPrevious"),\r
+\r
+    /**\r
+     * End Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonEnd")\r
+    ACTION_BUTTON_END("actionButtonEnd"),\r
+\r
+    /**\r
+     * Beginning Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonBeginning")\r
+    ACTION_BUTTON_BEGINNING("actionButtonBeginning"),\r
+\r
+    /**\r
+     * Return Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonReturn")\r
+    ACTION_BUTTON_RETURN("actionButtonReturn"),\r
+\r
+    /**\r
+     * Document Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonDocument")\r
+    ACTION_BUTTON_DOCUMENT("actionButtonDocument"),\r
+\r
+    /**\r
+     * Sound Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonSound")\r
+    ACTION_BUTTON_SOUND("actionButtonSound"),\r
+\r
+    /**\r
+     * Movie Button Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("actionButtonMovie")\r
+    ACTION_BUTTON_MOVIE("actionButtonMovie"),\r
+\r
+    /**\r
+     * Gear 6 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("gear6")\r
+    GEAR_6("gear6"),\r
+\r
+    /**\r
+     * Gear 9 Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("gear9")\r
+    GEAR_9("gear9"),\r
+\r
+    /**\r
+     * Funnel Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("funnel")\r
+    FUNNEL("funnel"),\r
+\r
+    /**\r
+     * Plus Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathPlus")\r
+    MATH_PLUS("mathPlus"),\r
+\r
+    /**\r
+     * Minus Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathMinus")\r
+    MATH_MINUS("mathMinus"),\r
+\r
+    /**\r
+     * Multiply Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathMultiply")\r
+    MATH_MULTIPLY("mathMultiply"),\r
+\r
+    /**\r
+     * Divide Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathDivide")\r
+    MATH_DIVIDE("mathDivide"),\r
+\r
+    /**\r
+     * Equal Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathEqual")\r
+    MATH_EQUAL("mathEqual"),\r
+\r
+    /**\r
+     * Not Equal Math Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("mathNotEqual")\r
+    MATH_NOT_EQUAL("mathNotEqual"),\r
+\r
+    /**\r
+     * Corner Tabs Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("cornerTabs")\r
+    CORNER_TABS("cornerTabs"),\r
+\r
+    /**\r
+     * Square Tabs Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("squareTabs")\r
+    SQUARE_TABS("squareTabs"),\r
+\r
+    /**\r
+     * Plaque Tabs Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("plaqueTabs")\r
+    PLAQUE_TABS("plaqueTabs"),\r
+\r
+    /**\r
+     * Chart X Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("chartX")\r
+    CHART_X("chartX"),\r
+\r
+    /**\r
+     * Chart Star Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("chartStar")\r
+    CHART_STAR("chartStar"),\r
+\r
+    /**\r
+     * Chart Plus Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("chartPlus")\r
+    CHART_PLUS("chartPlus");\r
+    private final String value;\r
+\r
+    STShapeType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STShapeType fromValue(String v) {\r
+        for (STShapeType c: STShapeType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/binding/STTextShapeType.java b/src/scratchpad/src/org/apache/poi/sl/draw/binding/STTextShapeType.java
new file mode 100644 (file)
index 0000000..f3ed4b0
--- /dev/null
@@ -0,0 +1,389 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.draw.binding;\r
+\r
+import javax.xml.bind.annotation.XmlEnum;\r
+import javax.xml.bind.annotation.XmlEnumValue;\r
+import javax.xml.bind.annotation.XmlType;\r
+\r
+\r
+/**\r
+ * <p>Java class for ST_TextShapeType.\r
+ * \r
+ * <p>The following schema fragment specifies the expected content contained within this class.\r
+ * <p>\r
+ * <pre>\r
+ * &lt;simpleType name="ST_TextShapeType">\r
+ *   &lt;restriction base="{http://www.w3.org/2001/XMLSchema}token">\r
+ *     &lt;enumeration value="textNoShape"/>\r
+ *     &lt;enumeration value="textPlain"/>\r
+ *     &lt;enumeration value="textStop"/>\r
+ *     &lt;enumeration value="textTriangle"/>\r
+ *     &lt;enumeration value="textTriangleInverted"/>\r
+ *     &lt;enumeration value="textChevron"/>\r
+ *     &lt;enumeration value="textChevronInverted"/>\r
+ *     &lt;enumeration value="textRingInside"/>\r
+ *     &lt;enumeration value="textRingOutside"/>\r
+ *     &lt;enumeration value="textArchUp"/>\r
+ *     &lt;enumeration value="textArchDown"/>\r
+ *     &lt;enumeration value="textCircle"/>\r
+ *     &lt;enumeration value="textButton"/>\r
+ *     &lt;enumeration value="textArchUpPour"/>\r
+ *     &lt;enumeration value="textArchDownPour"/>\r
+ *     &lt;enumeration value="textCirclePour"/>\r
+ *     &lt;enumeration value="textButtonPour"/>\r
+ *     &lt;enumeration value="textCurveUp"/>\r
+ *     &lt;enumeration value="textCurveDown"/>\r
+ *     &lt;enumeration value="textCanUp"/>\r
+ *     &lt;enumeration value="textCanDown"/>\r
+ *     &lt;enumeration value="textWave1"/>\r
+ *     &lt;enumeration value="textWave2"/>\r
+ *     &lt;enumeration value="textDoubleWave1"/>\r
+ *     &lt;enumeration value="textWave4"/>\r
+ *     &lt;enumeration value="textInflate"/>\r
+ *     &lt;enumeration value="textDeflate"/>\r
+ *     &lt;enumeration value="textInflateBottom"/>\r
+ *     &lt;enumeration value="textDeflateBottom"/>\r
+ *     &lt;enumeration value="textInflateTop"/>\r
+ *     &lt;enumeration value="textDeflateTop"/>\r
+ *     &lt;enumeration value="textDeflateInflate"/>\r
+ *     &lt;enumeration value="textDeflateInflateDeflate"/>\r
+ *     &lt;enumeration value="textFadeRight"/>\r
+ *     &lt;enumeration value="textFadeLeft"/>\r
+ *     &lt;enumeration value="textFadeUp"/>\r
+ *     &lt;enumeration value="textFadeDown"/>\r
+ *     &lt;enumeration value="textSlantUp"/>\r
+ *     &lt;enumeration value="textSlantDown"/>\r
+ *     &lt;enumeration value="textCascadeUp"/>\r
+ *     &lt;enumeration value="textCascadeDown"/>\r
+ *   &lt;/restriction>\r
+ * &lt;/simpleType>\r
+ * </pre>\r
+ * \r
+ */\r
+@XmlType(name = "ST_TextShapeType", namespace = "http://schemas.openxmlformats.org/drawingml/2006/main")\r
+@XmlEnum\r
+public enum STTextShapeType {\r
+\r
+\r
+    /**\r
+     * No Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textNoShape")\r
+    TEXT_NO_SHAPE("textNoShape"),\r
+\r
+    /**\r
+     * Plain Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textPlain")\r
+    TEXT_PLAIN("textPlain"),\r
+\r
+    /**\r
+     * Stop Sign Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textStop")\r
+    TEXT_STOP("textStop"),\r
+\r
+    /**\r
+     * Triangle Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textTriangle")\r
+    TEXT_TRIANGLE("textTriangle"),\r
+\r
+    /**\r
+     * Inverted Triangle Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textTriangleInverted")\r
+    TEXT_TRIANGLE_INVERTED("textTriangleInverted"),\r
+\r
+    /**\r
+     * Chevron Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textChevron")\r
+    TEXT_CHEVRON("textChevron"),\r
+\r
+    /**\r
+     * Inverted Chevron Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textChevronInverted")\r
+    TEXT_CHEVRON_INVERTED("textChevronInverted"),\r
+\r
+    /**\r
+     * Inside Ring Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textRingInside")\r
+    TEXT_RING_INSIDE("textRingInside"),\r
+\r
+    /**\r
+     * Outside Ring Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textRingOutside")\r
+    TEXT_RING_OUTSIDE("textRingOutside"),\r
+\r
+    /**\r
+     * Upward Arch Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textArchUp")\r
+    TEXT_ARCH_UP("textArchUp"),\r
+\r
+    /**\r
+     * Downward Arch Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textArchDown")\r
+    TEXT_ARCH_DOWN("textArchDown"),\r
+\r
+    /**\r
+     * Circle Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCircle")\r
+    TEXT_CIRCLE("textCircle"),\r
+\r
+    /**\r
+     * Button Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textButton")\r
+    TEXT_BUTTON("textButton"),\r
+\r
+    /**\r
+     * Upward Pour Arch Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textArchUpPour")\r
+    TEXT_ARCH_UP_POUR("textArchUpPour"),\r
+\r
+    /**\r
+     * Downward Pour Arch Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textArchDownPour")\r
+    TEXT_ARCH_DOWN_POUR("textArchDownPour"),\r
+\r
+    /**\r
+     * Circle Pour Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCirclePour")\r
+    TEXT_CIRCLE_POUR("textCirclePour"),\r
+\r
+    /**\r
+     * Button Pour Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textButtonPour")\r
+    TEXT_BUTTON_POUR("textButtonPour"),\r
+\r
+    /**\r
+     * Upward Curve Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCurveUp")\r
+    TEXT_CURVE_UP("textCurveUp"),\r
+\r
+    /**\r
+     * Downward Curve Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCurveDown")\r
+    TEXT_CURVE_DOWN("textCurveDown"),\r
+\r
+    /**\r
+     * Upward Can Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCanUp")\r
+    TEXT_CAN_UP("textCanUp"),\r
+\r
+    /**\r
+     * Downward Can Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCanDown")\r
+    TEXT_CAN_DOWN("textCanDown"),\r
+\r
+    /**\r
+     * Wave 1 Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textWave1")\r
+    TEXT_WAVE_1("textWave1"),\r
+\r
+    /**\r
+     * Wave 2 Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textWave2")\r
+    TEXT_WAVE_2("textWave2"),\r
+\r
+    /**\r
+     * Double Wave 1 Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDoubleWave1")\r
+    TEXT_DOUBLE_WAVE_1("textDoubleWave1"),\r
+\r
+    /**\r
+     * Wave 4 Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textWave4")\r
+    TEXT_WAVE_4("textWave4"),\r
+\r
+    /**\r
+     * Inflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textInflate")\r
+    TEXT_INFLATE("textInflate"),\r
+\r
+    /**\r
+     * Deflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDeflate")\r
+    TEXT_DEFLATE("textDeflate"),\r
+\r
+    /**\r
+     * Bottom Inflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textInflateBottom")\r
+    TEXT_INFLATE_BOTTOM("textInflateBottom"),\r
+\r
+    /**\r
+     * Bottom Deflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDeflateBottom")\r
+    TEXT_DEFLATE_BOTTOM("textDeflateBottom"),\r
+\r
+    /**\r
+     * Top Inflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textInflateTop")\r
+    TEXT_INFLATE_TOP("textInflateTop"),\r
+\r
+    /**\r
+     * Top Deflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDeflateTop")\r
+    TEXT_DEFLATE_TOP("textDeflateTop"),\r
+\r
+    /**\r
+     * Deflate-Inflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDeflateInflate")\r
+    TEXT_DEFLATE_INFLATE("textDeflateInflate"),\r
+\r
+    /**\r
+     * Deflate-Inflate-Deflate Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textDeflateInflateDeflate")\r
+    TEXT_DEFLATE_INFLATE_DEFLATE("textDeflateInflateDeflate"),\r
+\r
+    /**\r
+     * Right Fade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textFadeRight")\r
+    TEXT_FADE_RIGHT("textFadeRight"),\r
+\r
+    /**\r
+     * Left Fade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textFadeLeft")\r
+    TEXT_FADE_LEFT("textFadeLeft"),\r
+\r
+    /**\r
+     * Upward Fade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textFadeUp")\r
+    TEXT_FADE_UP("textFadeUp"),\r
+\r
+    /**\r
+     * Downward Fade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textFadeDown")\r
+    TEXT_FADE_DOWN("textFadeDown"),\r
+\r
+    /**\r
+     * Upward Slant Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textSlantUp")\r
+    TEXT_SLANT_UP("textSlantUp"),\r
+\r
+    /**\r
+     * Downward Slant Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textSlantDown")\r
+    TEXT_SLANT_DOWN("textSlantDown"),\r
+\r
+    /**\r
+     * Upward Cascade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCascadeUp")\r
+    TEXT_CASCADE_UP("textCascadeUp"),\r
+\r
+    /**\r
+     * Downward Cascade Text Shape\r
+     * \r
+     */\r
+    @XmlEnumValue("textCascadeDown")\r
+    TEXT_CASCADE_DOWN("textCascadeDown");\r
+    private final String value;\r
+\r
+    STTextShapeType(String v) {\r
+        value = v;\r
+    }\r
+\r
+    public String value() {\r
+        return value;\r
+    }\r
+\r
+    public static STTextShapeType fromValue(String v) {\r
+        for (STTextShapeType c: STTextShapeType.values()) {\r
+            if (c.value.equals(v)) {\r
+                return c;\r
+            }\r
+        }\r
+        throw new IllegalArgumentException(v);\r
+    }\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/AbsExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/AbsExpression.java
new file mode 100644 (file)
index 0000000..0f94e14
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Absolute Value Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class AbsExpression implements Expression {
+    private String arg;
+
+    AbsExpression(Matcher m){
+        arg = m.group(1);
+    }
+
+    public double evaluate(Context ctx){
+        double val = ctx.getValue(arg);
+        return Math.abs(val);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddDivideExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddDivideExpression.java
new file mode 100644 (file)
index 0000000..2a01de4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Add Divide Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class AddDivideExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    AddDivideExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return (x + y ) / z;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddSubtractExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/AddSubtractExpression.java
new file mode 100644 (file)
index 0000000..5d5f1e6
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Add Subtract Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class AddSubtractExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    AddSubtractExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return (x + y ) - z;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/AdjustValue.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/AdjustValue.java
new file mode 100644 (file)
index 0000000..8a2f0a4
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTGeomGuide;
+
+/**
+ * Represents a shape adjust values (see section 20.1.9.5 in the spec)
+ *
+ * @author Yegor Kozlov
+ */
+public class AdjustValue extends Guide {
+
+    public AdjustValue(CTGeomGuide gd) {
+        super(gd.getName(), gd.getFmla());
+    }
+
+    @Override
+    public double evaluate(Context ctx){
+        String name = getName();
+        Guide adj = ctx.getAdjustValue(name);
+        if(adj != null) {
+            return adj.evaluate(ctx);
+        }
+        return super.evaluate(ctx);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcTanExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcTanExpression.java
new file mode 100644 (file)
index 0000000..9044e8a
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class ArcTanExpression implements Expression {
+    private String arg1, arg2;
+
+    ArcTanExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        return Math.atan(y / x);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcToCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/ArcToCommand.java
new file mode 100644 (file)
index 0000000..0382d7f
--- /dev/null
@@ -0,0 +1,68 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTPath2DArcTo;
+
+import java.awt.geom.Arc2D;
+import java.awt.geom.GeneralPath;
+import java.awt.geom.Point2D;
+
+/**
+ * ArcTo command within a shape path in DrawingML:
+ *
+ * <arcTo wR="wr" hR="hr" stAng="stAng" swAng="swAng"/>
+ *
+ * Where <code>wr</code> and <code>wh</code> are the height and width radiuses
+ * of the supposed circle being used to draw the arc.  This gives the circle
+ * a total height of (2 * hR)  and a total width of (2 * wR)
+ *
+ * stAng is the <code>start</code> angle and <code></>swAng</code> is the swing angle
+ *
+ * @author Yegor Kozlov
+ */
+public class ArcToCommand implements PathCommand {
+    private String hr, wr, stAng, swAng;
+
+    ArcToCommand(CTPath2DArcTo arc){
+        hr = arc.getHR().toString();
+        wr = arc.getWR().toString();
+        stAng = arc.getStAng().toString();
+        swAng = arc.getSwAng().toString();
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        double rx = ctx.getValue(wr);
+        double ry = ctx.getValue(hr);
+        double start = ctx.getValue(stAng) / 60000;
+        double extent = ctx.getValue(swAng) / 60000;
+        Point2D pt = path.getCurrentPoint();
+        double x0 = pt.getX() - rx - rx * Math.cos(Math.toRadians(start));
+        double y0 = pt.getY() - ry - ry * Math.sin(Math.toRadians(start));
+
+        Arc2D arc = new Arc2D.Double(
+                         x0,
+                         y0,
+                         2 * rx, 2 * ry,
+                         -start, -extent, 
+                         Arc2D.OPEN);
+               path.append(arc, true);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/ClosePathCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/ClosePathCommand.java
new file mode 100644 (file)
index 0000000..9d29062
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * Date: 10/25/11
+ *
+ * @author Yegor Kozlov
+ */
+public class ClosePathCommand implements PathCommand {
+
+    ClosePathCommand(){
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        path.closePath();
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Context.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Context.java
new file mode 100644 (file)
index 0000000..8fd5147
--- /dev/null
@@ -0,0 +1,74 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.geom.Rectangle2D;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class Context {
+    final Map<String, Double> _ctx = new HashMap<String, Double>();
+    final IAdjustableShape _props;
+    final Rectangle2D _anchor;
+    
+    public Context(CustomGeometry geom, Rectangle2D anchor, IAdjustableShape props){
+        _props = props;
+        _anchor = anchor;
+        for(Guide gd : geom.adjusts) evaluate(gd);
+        for(Guide gd : geom.guides) evaluate(gd);
+    }
+
+    public Rectangle2D getShapeAnchor(){
+        return _anchor;
+    }
+
+    public Guide getAdjustValue(String name){
+        return _props.getAdjustValue(name);
+    }
+
+    public double getValue(String key){
+        if(key.matches("(\\+|-)?\\d+")){
+            return Double.parseDouble(key);
+        }
+
+        Formula builtIn = Formula.builtInFormulas.get(key);
+        if(builtIn != null){
+            return builtIn.evaluate(this);
+        }
+
+        if(!_ctx.containsKey(key)) {
+            throw new RuntimeException("undefined variable: " + key);
+        }
+
+        return _ctx.get(key);
+    }
+
+    public double evaluate(Formula fmla){
+        double result = fmla.evaluate(this);
+        String key = fmla.getName();
+        if(key != null) _ctx.put(key, result);
+        return result;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosExpression.java
new file mode 100644 (file)
index 0000000..56373d9
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class CosExpression implements Expression {
+    private String arg1, arg2;
+
+    CosExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2)/ 60000;
+        return x * Math.cos(Math.toRadians(y));
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosineArcTanExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/CosineArcTanExpression.java
new file mode 100644 (file)
index 0000000..4bed9b7
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class CosineArcTanExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    CosineArcTanExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return x*Math.cos(Math.atan(z / y));
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/CurveToCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/CurveToCommand.java
new file mode 100644 (file)
index 0000000..02eeb29
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * Date: 10/25/11
+ *
+ * @author Yegor Kozlov
+ */
+public class CurveToCommand implements PathCommand {
+    private String arg1, arg2, arg3, arg4, arg5, arg6;
+
+    CurveToCommand(CTAdjPoint2D pt1, CTAdjPoint2D pt2, CTAdjPoint2D pt3){
+        arg1 = pt1.getX().toString();
+        arg2 = pt1.getY().toString();
+        arg3 = pt2.getX().toString();
+        arg4 = pt2.getY().toString();
+        arg5 = pt3.getX().toString();
+        arg6 = pt3.getY().toString();
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        double x1 = ctx.getValue(arg1);
+        double y1 = ctx.getValue(arg2);
+        double x2 = ctx.getValue(arg3);
+        double y2 = ctx.getValue(arg4);
+        double x3 = ctx.getValue(arg5);
+        double y3 = ctx.getValue(arg6);
+        path.curveTo((float)x1, (float)y1, (float)x2, (float)y2, (float)x3, (float)y3);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/CustomGeometry.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/CustomGeometry.java
new file mode 100644 (file)
index 0000000..ce1b26c
--- /dev/null
@@ -0,0 +1,82 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.*;
+
+import org.apache.poi.sl.draw.binding.*;
+
+/**
+ * Definition of a custom geometric shape
+ *
+ * @author Yegor Kozlov
+ */
+public class CustomGeometry implements Iterable<Path>{
+    List<Guide> adjusts = new ArrayList<Guide>();
+    List<Guide> guides = new ArrayList<Guide>();
+    List<Path> paths = new ArrayList<Path>();
+    Path textBounds;
+
+    public CustomGeometry(CTCustomGeometry2D geom) {
+        CTGeomGuideList avLst = geom.getAvLst();
+        if(avLst != null) {
+            for(CTGeomGuide gd : avLst.getGd()){
+                adjusts.add(new AdjustValue(gd));
+            }
+        }
+
+        CTGeomGuideList gdLst = geom.getGdLst();
+        if(gdLst != null) {
+            for(CTGeomGuide gd : gdLst.getGd()){
+                guides.add(new Guide(gd));
+            }
+        }
+
+        CTPath2DList pathLst = geom.getPathLst();
+        if(pathLst != null) {
+            for(CTPath2D spPath : pathLst.getPath()){
+                paths.add(new Path(spPath));
+            }
+        }
+
+        CTGeomRect rect = geom.getRect();
+        if(rect != null) {
+            textBounds = new Path();
+            textBounds.addCommand(
+                    new MoveToCommand(rect.getL().toString(), rect.getT().toString()));
+            textBounds.addCommand(
+                    new LineToCommand(rect.getR().toString(), rect.getT().toString()));
+            textBounds.addCommand(
+                    new LineToCommand(rect.getR().toString(), rect.getB().toString()));
+            textBounds.addCommand(
+                    new LineToCommand(rect.getL().toString(), rect.getB().toString()));
+            textBounds.addCommand(
+                    new ClosePathCommand());
+        }
+    }
+    
+    public Iterator<Path> iterator() {
+        return paths.iterator();
+    }
+
+    public Path getTextBounds(){
+        return textBounds;        
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Expression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Expression.java
new file mode 100644 (file)
index 0000000..2403c85
--- /dev/null
@@ -0,0 +1,31 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public interface Expression {
+
+    double evaluate(Context ctx);
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/ExpressionParser.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/ExpressionParser.java
new file mode 100644 (file)
index 0000000..f1f0193
--- /dev/null
@@ -0,0 +1,69 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.HashMap;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * A simple regexp-based parser of shape guide formulas in DrawingML
+ *
+ * @author Yegor Kozlov
+ */
+public class ExpressionParser {
+    static final HashMap<String, Class> impls = new HashMap<String, Class>();
+    static {
+        impls.put("\\*/ +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", MultiplyDivideExpression.class);
+        impls.put("\\+- +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)( 0)?", AddSubtractExpression.class);
+        impls.put("\\+/ +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", AddDivideExpression.class);
+        impls.put("\\?: +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", IfElseExpression.class);
+        impls.put("val +([\\-\\w]+)", LiteralValueExpression.class);
+        impls.put("abs +([\\-\\w]+)", AbsExpression.class);
+        impls.put("sqrt +([\\-\\w]+)", SqrtExpression.class);
+        impls.put("max +([\\-\\w]+) +([\\-\\w]+)", MaxExpression.class);
+        impls.put("min +([\\-\\w]+) +([\\-\\w]+)", MinExpression.class);
+        impls.put("at2 +([\\-\\w]+) +([\\-\\w]+)", ArcTanExpression.class);
+        impls.put("sin +([\\-\\w]+) +([\\-\\w]+)", SinExpression.class);
+        impls.put("cos +([\\-\\w]+) +([\\-\\w]+)", CosExpression.class);
+        impls.put("tan +([\\-\\w]+) +([\\-\\w]+)", TanExpression.class);
+        impls.put("cat2 +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", CosineArcTanExpression.class);
+        impls.put("sat2 +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", SinArcTanExpression.class);
+        impls.put("pin +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", PinExpression.class);
+        impls.put("mod +([\\-\\w]+) +([\\-\\w]+) +([\\-\\w]+)", ModExpression.class);
+
+    }
+
+    public static Expression parse(String str){
+        for(String regexp : impls.keySet()) {
+            Pattern ptrn = Pattern.compile(regexp);
+            Matcher m = ptrn.matcher(str);
+            if(m.matches()) {
+                Class c = impls.get(regexp);
+                try {
+                    return (Expression)c.getDeclaredConstructor(Matcher.class).newInstance(m);
+                } catch (Exception e){
+                    throw new RuntimeException(e);
+                }
+            }
+        }
+        throw new RuntimeException("Unsupported formula: " + str);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Formula.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Formula.java
new file mode 100644 (file)
index 0000000..4745347
--- /dev/null
@@ -0,0 +1,385 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.geom.Rectangle2D;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A guide formula in DrawingML.
+ * This is a base class for adjust values, geometric guides and bilt-in guides
+ *
+ * @author Yegor Kozlov
+ */
+public abstract class Formula {
+
+    String getName(){
+        return null;
+    }
+
+    abstract double evaluate(Context ctx);
+
+    static Map<String, Formula> builtInFormulas = new HashMap<String, Formula>();
+    static {
+        // 3 x 360 / 4 = 270
+        builtInFormulas.put("3cd4",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 270 * 60000;
+            }
+
+         });
+
+        // 3 x 360 / 8 = 135
+        builtInFormulas.put("3cd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 135 * 60000;
+            }
+
+         });
+
+        // 5 x 360 / 8 = 225
+        builtInFormulas.put("5cd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 270 * 60000;
+            }
+
+         });
+
+        // 7 x 360 / 8 = 315
+        builtInFormulas.put("7cd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 270 * 60000;
+            }
+
+         });
+
+        // bottom
+        builtInFormulas.put("b",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getY() + anchor.getHeight();
+            }
+
+         });
+
+        // 360 / 2 = 180
+        builtInFormulas.put("cd2",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 180 * 60000;
+            }
+
+         });
+
+        // 360 / 4 = 90
+        builtInFormulas.put("cd4",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 90 * 60000;
+            }
+
+         });
+
+        // 360 / 8 = 45
+        builtInFormulas.put("cd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return 45 * 60000;
+            }
+
+         });
+
+        // horizontal center
+        builtInFormulas.put("hc",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getX() + anchor.getWidth()/2;
+            }
+
+         });
+
+        // height
+        builtInFormulas.put("h",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight();
+            }
+
+         });
+
+        // height / 2
+        builtInFormulas.put("hd2",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/2;
+            }
+
+         });
+
+        // height / 3
+        builtInFormulas.put("hd3",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/3;
+            }
+
+         });
+
+        // height / 4
+        builtInFormulas.put("hd4",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/4;
+            }
+
+         });
+
+        // height / 5
+        builtInFormulas.put("hd5",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/5;
+            }
+
+         });
+
+        // height / 6
+        builtInFormulas.put("hd6",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/6;
+            }
+
+         });
+
+        // height / 8
+        builtInFormulas.put("hd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getHeight()/8;
+            }
+
+         });
+
+        // left
+        builtInFormulas.put("l",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getX();
+            }
+
+         });
+
+        // long side
+        builtInFormulas.put("ls",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return Math.max(anchor.getWidth(), anchor.getHeight());
+            }
+
+         });
+
+        // right
+        builtInFormulas.put("r",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getX() + anchor.getWidth();
+            }
+
+         });
+
+        // short side
+        builtInFormulas.put("ss",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return Math.min(anchor.getWidth(), anchor.getHeight());
+            }
+
+         });
+
+        // short side / 2
+        builtInFormulas.put("ssd2",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 2;
+            }
+         });
+
+        // short side / 4
+        builtInFormulas.put("ssd4",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 4;
+            }
+         });
+
+        // short side / 6
+        builtInFormulas.put("ssd6",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 6;
+            }
+         });
+
+        // short side / 8
+        builtInFormulas.put("ssd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 8;
+            }
+         });
+
+        // short side / 16
+        builtInFormulas.put("ssd16",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 16;
+            }
+         });
+
+        // short side / 32
+        builtInFormulas.put("ssd32",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                double ss = Math.min(anchor.getWidth(), anchor.getHeight());
+                return ss / 32;
+            }
+         });
+
+        // top
+        builtInFormulas.put("t",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getY();
+            }
+         });
+
+        // vertical center
+        builtInFormulas.put("vc",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                Rectangle2D anchor = ctx.getShapeAnchor();
+                return anchor.getY() + anchor.getHeight()/2;
+            }
+         });
+
+        // width
+        builtInFormulas.put("w",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth();
+            }
+         });
+
+        // width / 2
+        builtInFormulas.put("wd2",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/2;
+            }
+         });
+
+        // width / 3
+        builtInFormulas.put("wd3",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/3;
+            }
+         });
+
+        // width / 4
+        builtInFormulas.put("wd4",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/4;
+            }
+         });
+
+        // width / 5
+        builtInFormulas.put("wd5",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/5;
+            }
+         });
+
+        // width / 6
+        builtInFormulas.put("wd6",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/6;
+            }
+         });
+
+        // width / 8
+        builtInFormulas.put("wd8",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/8;
+            }
+         });
+
+        // width / 10
+        builtInFormulas.put("wd10",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/10;
+            }
+         });
+
+        // width / 32
+        builtInFormulas.put("wd32",  new Formula(){
+            @Override
+            double evaluate(Context ctx){
+                return ctx.getShapeAnchor().getWidth()/32;
+            }
+         });
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Guide.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Guide.java
new file mode 100644 (file)
index 0000000..f142132
--- /dev/null
@@ -0,0 +1,58 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTGeomGuide;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class Guide extends Formula {
+    private String name, fmla;
+    private Expression expr;
+
+    public Guide(CTGeomGuide gd) {
+        this(gd.getName(), gd.getFmla());
+    }
+
+    public Guide(String nm, String fm){
+        name = nm;
+        fmla = fm;
+        expr = ExpressionParser.parse(fm);
+    }
+
+
+    String getName(){
+        return name;
+    }
+
+    String getFormula(){
+        return fmla;
+    }
+
+    @Override
+    public double evaluate(Context ctx){
+        return expr.evaluate(ctx);
+    }
+
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/IAdjustableShape.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/IAdjustableShape.java
new file mode 100644 (file)
index 0000000..920acb8
--- /dev/null
@@ -0,0 +1,37 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+
+/**
+ * A bridge to the consumer application.
+ *
+ * To get a shape geometry one needs to pass shape bounds and adjust values.
+ *
+ * @author Yegor Kozlov
+ */
+public interface IAdjustableShape {
+    /**
+     *
+     * @param  name name of a adjust value, e.g. adj1
+     * @return adjust guide defined in the shape or null
+     */
+    Guide getAdjustValue(String name);
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/IfElseExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/IfElseExpression.java
new file mode 100644 (file)
index 0000000..443115a
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * If Else Formula:
+ * <p>
+ *     Arguments: 3 (fmla="?: x y z")
+ *     Usage: "?: x y z" = if (x > 0), then y = value of this guide,
+ *     else z = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class IfElseExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    IfElseExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return x > 0 ? y : z;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/LineToCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/LineToCommand.java
new file mode 100644 (file)
index 0000000..99c5a6b
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * Date: 10/25/11
+ *
+ * @author Yegor Kozlov
+ */
+public class LineToCommand implements PathCommand {
+    private String arg1, arg2;
+
+    LineToCommand(CTAdjPoint2D pt){
+        arg1 = pt.getX().toString();
+        arg2 = pt.getY().toString();
+    }
+
+    LineToCommand(String s1, String s2){
+        arg1 = s1;
+        arg2 = s2;
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        path.lineTo((float)x, (float)y);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/LiteralValueExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/LiteralValueExpression.java
new file mode 100644 (file)
index 0000000..ab3abc7
--- /dev/null
@@ -0,0 +1,40 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Date: 10/24/11
+ *
+ * @author Yegor Kozlov
+ */
+public class LiteralValueExpression implements Expression {
+    private String arg;
+
+    LiteralValueExpression(Matcher m){
+        arg = m.group(1);
+    }
+
+    public double evaluate(Context ctx){
+        return ctx.getValue(arg);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/MaxExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/MaxExpression.java
new file mode 100644 (file)
index 0000000..88a9c60
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Maximum Value Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class MaxExpression implements Expression {
+    private String arg1, arg2;
+
+    MaxExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        return Math.max(x, y);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/MinExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/MinExpression.java
new file mode 100644 (file)
index 0000000..8c1864c
--- /dev/null
@@ -0,0 +1,43 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Minimum Value Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class MinExpression implements Expression {
+    private String arg1, arg2;
+
+    MinExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        return Math.min(x, y);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/ModExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/ModExpression.java
new file mode 100644 (file)
index 0000000..ff20fc2
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Modulo Formula:
+ * <p>
+ *     Arguments: 3 (fmla="mod x y z")
+ *     Usage: "mod x y z" = sqrt(x^2 + b^2 + c^2) = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class ModExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    ModExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+   public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return Math.sqrt(x*x + y*y + z*z);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/MoveToCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/MoveToCommand.java
new file mode 100644 (file)
index 0000000..22ccd54
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * Date: 10/25/11
+ *
+ * @author Yegor Kozlov
+ */
+public class MoveToCommand implements PathCommand {
+    private String arg1, arg2;
+
+    MoveToCommand(CTAdjPoint2D pt){
+        arg1 = pt.getX().toString();
+        arg2 = pt.getY().toString();
+    }
+
+    MoveToCommand(String s1, String s2){
+        arg1 = s1;
+        arg2 = s2;
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        path.moveTo((float)x, (float)y);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/MultiplyDivideExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/MultiplyDivideExpression.java
new file mode 100644 (file)
index 0000000..5af0ff1
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Multiply Divide Formula
+ *
+ * @author Yegor Kozlov
+ */
+public class MultiplyDivideExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    MultiplyDivideExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return (x * y ) / z;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Outline.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Outline.java
new file mode 100644 (file)
index 0000000..b4ffc42
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.Shape;
+
+/**
+* Date: 11/6/11
+*
+* @author Yegor Kozlov
+*/
+public class Outline {
+    private Shape shape;
+    private Path path;
+
+    public Outline(Shape shape, Path path){
+        this.shape = shape;
+        this.path = path;
+    }
+
+    public Path getPath(){
+        return path;
+    }
+
+    public Shape getOutline(){
+        return shape;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/Path.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/Path.java
new file mode 100644 (file)
index 0000000..b496e9f
--- /dev/null
@@ -0,0 +1,117 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.geom.GeneralPath;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.poi.sl.draw.binding.*;
+
+/**
+ * Specifies a creation path consisting of a series of moves, lines and curves
+ * that when combined forms a geometric shape
+ *
+ * @author Yegor Kozlov
+ */
+public class Path {
+    private final List<PathCommand> commands;
+    boolean _fill, _stroke;
+    long _w, _h;
+
+    public Path(){
+        this(true, true);
+    }
+
+    public Path(boolean fill, boolean stroke){
+        commands = new ArrayList<PathCommand>();
+        _w = -1;
+        _h = -1;
+        _fill = fill;
+        _stroke = stroke;
+    }
+
+    public Path(CTPath2D spPath){
+        _fill = spPath.getFill() != STPathFillMode.NONE;
+        _stroke = spPath.isStroke();
+        _w = spPath.isSetW() ? spPath.getW() : -1;     
+        _h = spPath.isSetH() ? spPath.getH() : -1;     
+        
+        commands = new ArrayList<PathCommand>();
+        
+        for(Object ch : spPath.getCloseOrMoveToOrLnTo()){
+            if(ch instanceof CTPath2DMoveTo){
+                CTAdjPoint2D pt = ((CTPath2DMoveTo)ch).getPt();
+                commands.add(new MoveToCommand(pt));
+            } else if (ch instanceof CTPath2DLineTo){
+                CTAdjPoint2D pt = ((CTPath2DLineTo)ch).getPt();
+                commands.add(new LineToCommand(pt));
+            } else if (ch instanceof CTPath2DArcTo){
+                CTPath2DArcTo arc = (CTPath2DArcTo)ch;
+                commands.add(new ArcToCommand(arc));
+            } else if (ch instanceof CTPath2DQuadBezierTo){
+                CTPath2DQuadBezierTo bez = ((CTPath2DQuadBezierTo)ch);
+                CTAdjPoint2D pt1 = bez.getPt().get(0);
+                CTAdjPoint2D pt2 = bez.getPt().get(1);
+                commands.add(new QuadToCommand(pt1, pt2));
+            } else if (ch instanceof CTPath2DCubicBezierTo){
+                CTPath2DCubicBezierTo bez = ((CTPath2DCubicBezierTo)ch);
+                CTAdjPoint2D pt1 = bez.getPt().get(0);
+                CTAdjPoint2D pt2 = bez.getPt().get(1);
+                CTAdjPoint2D pt3 = bez.getPt().get(2);
+                commands.add(new CurveToCommand(pt1, pt2, pt3));
+            } else if (ch instanceof CTPath2DClose){
+                commands.add(new ClosePathCommand());
+            }  else {
+                throw new IllegalStateException("Unsupported path segment: " + ch);
+            }
+        }
+    }
+
+    public void addCommand(PathCommand cmd){
+        commands.add(cmd);
+    }
+
+    /**
+     * Convert the internal represenation to java.awt.GeneralPath
+     */
+    public GeneralPath getPath(Context ctx) {
+        GeneralPath path = new GeneralPath();
+        for(PathCommand cmd : commands)
+            cmd.execute(path, ctx);
+        return path;
+    }
+
+    public boolean isStroked(){
+        return _stroke;
+    }
+
+    public boolean isFilled(){
+        return _fill;
+    }
+    
+    public long getW(){
+       return _w;
+    }
+
+    public long getH(){
+       return _h;
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/PathCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/PathCommand.java
new file mode 100644 (file)
index 0000000..3063ab8
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * A path command in DrawingML. One of:
+ *
+ *  - arcTo
+ *  - moveTo
+ *  - lineTo
+ *  - cubicBezTo
+ *  - quadBezTo
+ *  - close
+ *
+ *
+ * @author Yegor Kozlov
+ */
+public interface PathCommand {
+    /**
+     * Execute the command an append a segment to the specified path
+     *
+     * @param path  the path to append the result to
+     * @param ctx   the context to lookup variables
+     */
+    void execute(GeneralPath path, Context ctx);
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/PinExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/PinExpression.java
new file mode 100644 (file)
index 0000000..ee0d4e5
--- /dev/null
@@ -0,0 +1,54 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Pin To Formula:
+ * <gd name="enAng" fmla="pin 0 adj2 21599999"/>
+ *
+ * <p>
+ *     Usage: "pin x y z" = if (y < x), then x = value of this guide
+ *     else if (y > z), then z = value of this guide
+ *     else y = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class PinExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    PinExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+   public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        if(y < x) return x;
+        else if (y > z) return z;
+        else return y;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/PresetGeometries.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/PresetGeometries.java
new file mode 100644 (file)
index 0000000..d876d15
--- /dev/null
@@ -0,0 +1,114 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.io.*;
+import java.nio.charset.Charset;
+import java.util.LinkedHashMap;
+
+import javax.xml.bind.*;
+import javax.xml.stream.*;
+import javax.xml.stream.events.StartElement;
+import javax.xml.stream.events.XMLEvent;
+
+import org.apache.poi.sl.draw.binding.CTCustomGeometry2D;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+
+/**
+ * 
+ */
+public class PresetGeometries extends LinkedHashMap<String, CustomGeometry> {
+    private final static POILogger LOG = POILogFactory.getLogger(PresetGeometries.class);
+    protected final static String BINDING_PACKAGE = "org.apache.poi.sl.draw.binding";
+    
+    protected static PresetGeometries _inst;
+
+    protected PresetGeometries(){}
+
+    @SuppressWarnings("unused")
+    public void init(InputStream is) throws XMLStreamException, JAXBException {
+        Reader xml = new InputStreamReader( is, Charset.forName("UTF-8") );
+        
+
+        // StAX:
+        EventFilter startElementFilter = new EventFilter() {
+            @Override
+            public boolean accept(XMLEvent event) {
+                return event.isStartElement();
+            }
+        };
+        
+        long cntElem = 0;
+        XMLInputFactory staxFactory = XMLInputFactory.newInstance();
+        XMLEventReader staxReader = staxFactory.createXMLEventReader(xml);
+        XMLEventReader staxFiltRd = staxFactory.createFilteredReader(staxReader, startElementFilter);
+        // ignore StartElement:
+        XMLEvent evDoc = staxFiltRd.nextEvent();
+        // JAXB:
+        JAXBContext jaxbContext = JAXBContext.newInstance(BINDING_PACKAGE);
+        Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+
+        while (staxFiltRd.peek() != null) {
+            StartElement evRoot = (StartElement)staxFiltRd.peek();
+            String name = evRoot.getName().getLocalPart();
+            JAXBElement<CTCustomGeometry2D> el = unmarshaller.unmarshal(staxReader, CTCustomGeometry2D.class);
+            CTCustomGeometry2D cus = el.getValue();
+            cntElem++;
+            
+            if(containsKey(name)) {
+                LOG.log(POILogger.WARN, "Duplicate definoition of " + name);
+            }
+            put(name, new CustomGeometry(cus));
+        }       
+    }
+    
+    /**
+     * Convert a single CustomGeometry object, i.e. from xmlbeans
+     */
+    public static CustomGeometry convertCustomGeometry(XMLStreamReader staxReader) {
+        try {
+            JAXBContext jaxbContext = JAXBContext.newInstance(BINDING_PACKAGE);
+            Unmarshaller unmarshaller = jaxbContext.createUnmarshaller();
+            JAXBElement<CTCustomGeometry2D> el = unmarshaller.unmarshal(staxReader, CTCustomGeometry2D.class);
+            return new CustomGeometry(el.getValue());
+        } catch (JAXBException e) {
+            LOG.log(POILogger.ERROR, "Unable to parse single custom geometry", e);
+            return null;
+        }
+    }
+
+    public static synchronized PresetGeometries getInstance(){
+        if(_inst == null) {
+            _inst = new PresetGeometries();
+            try {
+                InputStream is = PresetGeometries.class.
+                    getResourceAsStream("presetShapeDefinitions.xml");
+                _inst.init(is);
+                is.close();
+            } catch (Exception e){
+                throw new RuntimeException(e);
+            }
+        }
+
+        return _inst;
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/QuadToCommand.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/QuadToCommand.java
new file mode 100644 (file)
index 0000000..e9a9364
--- /dev/null
@@ -0,0 +1,48 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import org.apache.poi.sl.draw.binding.CTAdjPoint2D;
+
+import java.awt.geom.GeneralPath;
+
+/**
+ * Date: 10/25/11
+ *
+ * @author Yegor Kozlov
+ */
+public class QuadToCommand implements PathCommand {
+    private String arg1, arg2, arg3, arg4;
+
+    QuadToCommand(CTAdjPoint2D pt1, CTAdjPoint2D pt2){
+        arg1 = pt1.getX().toString();
+        arg2 = pt1.getY().toString();
+        arg3 = pt2.getX().toString();
+        arg4 = pt2.getY().toString();
+    }
+
+    public void execute(GeneralPath path, Context ctx){
+        double x1 = ctx.getValue(arg1);
+        double y1 = ctx.getValue(arg2);
+        double x2 = ctx.getValue(arg3);
+        double y2 = ctx.getValue(arg4);
+        path.quadTo((float)x1, (float)y1, (float)x2, (float)y2);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinArcTanExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinArcTanExpression.java
new file mode 100644 (file)
index 0000000..e14acb9
--- /dev/null
@@ -0,0 +1,51 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Sine ArcTan Formula:
+ * <gd name="dy1" fmla="sat2 x y z"/>
+ *
+ * <p>
+ *     Arguments: 3 (fmla="sat2 x y z")
+ *     Usage: "sat2 x y z" = (x*sin(arctan(z / y))) = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class SinArcTanExpression implements Expression {
+    private String arg1, arg2, arg3;
+
+    SinArcTanExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+        arg3 = m.group(3);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        double z = ctx.getValue(arg3);
+        return x*Math.sin(Math.atan(z / y));
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/SinExpression.java
new file mode 100644 (file)
index 0000000..ca0c110
--- /dev/null
@@ -0,0 +1,49 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Sine Formula:
+ * <gd name="z" fmla="sin x y"/>
+ *
+ * <p>
+ *     Arguments: 2 (fmla="sin x y")
+ *     Usage: "sin x y" = (x * sin( y )) = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class SinExpression implements Expression {
+    private String arg1, arg2;
+
+    SinExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2) / 60000;
+        return x * Math.sin(Math.toRadians(y));
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/SqrtExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/SqrtExpression.java
new file mode 100644 (file)
index 0000000..5cdd67c
--- /dev/null
@@ -0,0 +1,46 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Square Root Formula:
+ * <gd name="x" fmla="sqrt y"/>
+ *
+ * <p>
+ *     Arguments: 1 (fmla="sqrt x")
+ *     Usage: "sqrt x" = sqrt(x) = value of this guide
+ * </p>
+ * @author Yegor Kozlov
+ */
+public class SqrtExpression implements Expression {
+    private String arg;
+
+    SqrtExpression(Matcher m){
+        arg =m.group(1);
+    }
+
+    public double evaluate(Context ctx){
+        double val = ctx.getValue(arg);
+        return Math.sqrt(val);
+    }
+
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/draw/geom/TanExpression.java b/src/scratchpad/src/org/apache/poi/sl/draw/geom/TanExpression.java
new file mode 100644 (file)
index 0000000..7eebdce
--- /dev/null
@@ -0,0 +1,50 @@
+/*
+ *  ====================================================================
+ *    Licensed to the Apache Software Foundation (ASF) under one or more
+ *    contributor license agreements.  See the NOTICE file distributed with
+ *    this work for additional information regarding copyright ownership.
+ *    The ASF licenses this file to You under the Apache License, Version 2.0
+ *    (the "License"); you may not use this file except in compliance with
+ *    the License.  You may obtain a copy of the License at
+ *
+ *        http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *    Unless required by applicable law or agreed to in writing, software
+ *    distributed under the License is distributed on an "AS IS" BASIS,
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *    See the License for the specific language governing permissions and
+ *    limitations under the License.
+ * ====================================================================
+ */
+
+package org.apache.poi.sl.draw.geom;
+
+import java.util.regex.Matcher;
+
+/**
+ * Tangent Formula:
+ *
+ * <gd name="z" fmla="tan x y"/>
+ *
+ * <p>
+ * Arguments: 2 (fmla="tan x y")
+ * Usage: "tan x y" = (x * tan( y )) = value of this guide
+ * </p>
+ *
+ * @author Yegor Kozlov
+ */
+public class TanExpression implements Expression {
+    private String arg1, arg2;
+
+    TanExpression(Matcher m){
+        arg1 = m.group(1);
+        arg2 = m.group(2);
+    }
+
+    public double evaluate(Context ctx){
+        double x = ctx.getValue(arg1);
+        double y = ctx.getValue(arg2);
+        return x * Math.tan(Math.toRadians(y / 60000));
+    }
+
+}
index ae2fb7c7da884b4341e623ef3f2268e7eb275223..0e0b1dbbe14a5f447a68db8a02a81e3c083b8e8f 100644 (file)
@@ -17,6 +17,6 @@
 
 package org.apache.poi.sl.usermodel;
 
-public interface AutoShape extends SimpleShape {
+public interface AutoShape extends TextShape {
        public TextRun getTextRun();
 }
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/ColorStyle.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/ColorStyle.java
new file mode 100644 (file)
index 0000000..9be847b
--- /dev/null
@@ -0,0 +1,69 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.awt.Color;\r
+\r
+\r
+public interface ColorStyle {\r
+    Color getColor();\r
+    \r
+    /**\r
+     * the opacity as expressed by a percentage value\r
+     *\r
+     * @return  opacity in percents in the range [0..100000]\r
+     * or -1 if the value is not set\r
+     */\r
+    int getAlpha();\r
+    \r
+    /**\r
+     * the luminance shift as expressed by a percentage relative to the input color\r
+     *\r
+     * @return  luminance shift in percents in the range [0..100000]\r
+     * or -1 if the value is not set\r
+     */\r
+    int getLumOff();\r
+    \r
+    /**\r
+     * the luminance as expressed by a percentage relative to the input color\r
+     *\r
+     * @return  luminance in percents in the range [0..100000]\r
+     * or -1 if the value is not set\r
+     */\r
+    int getLumMod();\r
+    \r
+    /**\r
+     * specifies a darker version of its input color.\r
+     * A 10% shade is 10% of the input color combined with 90% black.\r
+     * \r
+     * @return the value of the shade specified as percents in the range [0..100000]\r
+     * with 0% indicating minimal shade and 100% indicating maximum\r
+     * or -1 if the value is not set\r
+     */\r
+    int getShade();\r
+\r
+    /**\r
+     * specifies a lighter version of its input color.\r
+     * A 10% tint is 10% of the input color combined with 90% white.\r
+     *\r
+     * @return the value of the tint specified as percents in the range [0..100000]\r
+     * with 0% indicating minimal tint and 100% indicating maximum\r
+     * or -1 if the value is not set\r
+     */\r
+    int getTint();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/Fill.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/Fill.java
deleted file mode 100644 (file)
index e62b048..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.sl.usermodel;
-
-public interface Fill extends org.apache.poi.common.usermodel.Fill {
-}
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/FillStyle.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/FillStyle.java
new file mode 100644 (file)
index 0000000..8414000
--- /dev/null
@@ -0,0 +1,22 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+public interface FillStyle {\r
+    PaintStyle getPaint();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/FreeformShape.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/FreeformShape.java
new file mode 100644 (file)
index 0000000..4d2ffb6
--- /dev/null
@@ -0,0 +1,22 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+public interface FreeformShape extends AutoShape {\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/GradientPaint.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/GradientPaint.java
new file mode 100644 (file)
index 0000000..e16b430
--- /dev/null
@@ -0,0 +1,32 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+\r
+public interface GradientPaint extends PaintStyle {\r
+    enum GradientType { linear, circular, shape }\r
+    \r
+    /**\r
+     * @return the angle of the gradient\r
+     */\r
+    double getGradientAngle();\r
+    ColorStyle[] getGradientColors();\r
+    float[] getGradientFractions();\r
+    boolean isRotatedWithShape();\r
+    GradientType getGradientType();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/Insets2D.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/Insets2D.java
new file mode 100644 (file)
index 0000000..04b4d77
--- /dev/null
@@ -0,0 +1,146 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.awt.Insets;\r
+\r
+/**\r
+ * This is a replacement for {@link java.awt.Insets} which works on doubles\r
+ * instead of ints\r
+ */\r
+public class Insets2D {\r
+\r
+    /**\r
+     * The inset from the top.\r
+     * This value is added to the Top of the rectangle\r
+     * to yield a new location for the Top.\r
+     */\r
+    public double top;\r
+\r
+    /**\r
+     * The inset from the left.\r
+     * This value is added to the Left of the rectangle\r
+     * to yield a new location for the Left edge.\r
+     */\r
+    public double left;\r
+\r
+    /**\r
+     * The inset from the bottom.\r
+     * This value is subtracted from the Bottom of the rectangle\r
+     * to yield a new location for the Bottom.\r
+     */\r
+    public double bottom;\r
+\r
+    /**\r
+     * The inset from the right.\r
+     * This value is subtracted from the Right of the rectangle\r
+     * to yield a new location for the Right edge.\r
+     */\r
+    public double right;\r
+    \r
+    /**\r
+     * Creates and initializes a new <code>Insets</code> object with the \r
+     * specified top, left, bottom, and right insets. \r
+     * @param       top   the inset from the top.\r
+     * @param       left   the inset from the left.\r
+     * @param       bottom   the inset from the bottom.\r
+     * @param       right   the inset from the right.\r
+     */\r
+    public Insets2D(double top, double left, double bottom, double right) {\r
+    this.top = top;\r
+    this.left = left;\r
+    this.bottom = bottom;\r
+    this.right = right;\r
+    }\r
+\r
+    /**\r
+     * Set top, left, bottom, and right to the specified values\r
+     *\r
+     * @param       top   the inset from the top.\r
+     * @param       left   the inset from the left.\r
+     * @param       bottom   the inset from the bottom.\r
+     * @param       right   the inset from the right.\r
+     * @since 1.5\r
+     */\r
+    public void set(double top, double left, double bottom, double right) {\r
+        this.top = top;\r
+        this.left = left;\r
+        this.bottom = bottom;\r
+        this.right = right;\r
+    }\r
+\r
+    /**\r
+     * Checks whether two insets objects are equal. Two instances \r
+     * of <code>Insets</code> are equal if the four integer values\r
+     * of the fields <code>top</code>, <code>left</code>, \r
+     * <code>bottom</code>, and <code>right</code> are all equal.\r
+     * @return      <code>true</code> if the two insets are equal;\r
+     *                          otherwise <code>false</code>.\r
+     * @since       JDK1.1\r
+     */\r
+    public boolean equals(Object obj) {\r
+    if (obj instanceof Insets) {\r
+        Insets insets = (Insets)obj;\r
+        return ((top == insets.top) && (left == insets.left) &&\r
+            (bottom == insets.bottom) && (right == insets.right));\r
+    }\r
+    return false;\r
+    }\r
+\r
+    /**\r
+     * Returns the hash code for this Insets.\r
+     *\r
+     * @return    a hash code for this Insets.\r
+     */\r
+    public int hashCode() {\r
+        double sum1 = left + bottom;\r
+        double sum2 = right + top;\r
+        double val1 = sum1 * (sum1 + 1)/2 + left;\r
+        double val2 = sum2 * (sum2 + 1)/2 + top;\r
+        double sum3 = val1 + val2;\r
+        return (int)(sum3 * (sum3 + 1)/2 + val2);\r
+    }\r
+\r
+    /**\r
+     * Returns a string representation of this <code>Insets</code> object. \r
+     * This method is intended to be used only for debugging purposes, and \r
+     * the content and format of the returned string may vary between \r
+     * implementations. The returned string may be empty but may not be \r
+     * <code>null</code>.\r
+     * \r
+     * @return  a string representation of this <code>Insets</code> object.\r
+     */\r
+    public String toString() {\r
+    return getClass().getName() + "[top="  + top + ",left=" + left + ",bottom=" + bottom + ",right=" + right + "]";\r
+    }\r
+\r
+    /**\r
+     * Create a copy of this object.\r
+     * @return     a copy of this <code>Insets2D</code> object.\r
+     */\r
+    public Object clone() { \r
+        try { \r
+            return super.clone();\r
+        } catch (CloneNotSupportedException e) { \r
+            // this shouldn't happen, since we are Cloneable\r
+            throw new InternalError();\r
+        }\r
+    }\r
+    \r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/LineDecoration.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/LineDecoration.java
new file mode 100644 (file)
index 0000000..e8cab55
--- /dev/null
@@ -0,0 +1,69 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+public interface LineDecoration {\r
+    /**\r
+     *  Represents the shape decoration that appears at the ends of lines.\r
+     */\r
+    enum DecorationShape {\r
+        NONE,\r
+        TRIANGLE,\r
+        STEALTH,\r
+        DIAMOND,\r
+        OVAL,\r
+        ARROW\r
+    }\r
+    \r
+    enum DecorationSize {\r
+        SMALL,\r
+        MEDIUM,\r
+        LARGE\r
+    }\r
+    \r
+    /**\r
+     * @return the line start shape\r
+     */\r
+    DecorationShape getHeadShape();\r
+    \r
+    /**\r
+     * @return the width of the start shape\r
+     */\r
+    DecorationSize getHeadWidth();\r
+    \r
+    /**\r
+     * @return the length of the start shape\r
+     */\r
+    DecorationSize getHeadLength();\r
+    \r
+    /**\r
+     * @return the line end shape\r
+     */\r
+    DecorationShape getTailShape();\r
+    \r
+    /**\r
+     * @return the width of the end shape\r
+     */\r
+    DecorationSize getTailWidth();\r
+    \r
+    /**\r
+     * @return the length of the end shape\r
+     */\r
+    DecorationSize getTailLength();\r
+\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/LineStyle.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/LineStyle.java
deleted file mode 100644 (file)
index 43ef4a7..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.sl.usermodel;
-
-public interface LineStyle extends org.apache.poi.common.usermodel.LineStyle {
-}
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/PaintStyle.java
new file mode 100644 (file)
index 0000000..e92e650
--- /dev/null
@@ -0,0 +1,25 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.sl.usermodel;
+
+
+
+public interface PaintStyle {
+
+    
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/PlaceableShape.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/PlaceableShape.java
new file mode 100644 (file)
index 0000000..0535536
--- /dev/null
@@ -0,0 +1,39 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.awt.geom.Rectangle2D;\r
+\r
+public interface PlaceableShape {\r
+    Rectangle2D getAnchor();\r
+\r
+    FillStyle getFillStyle();\r
+    \r
+    StrokeStyle getStrokeStyle();\r
+\r
+    /**\r
+     * Rotation angle in degrees\r
+     * <p>\r
+     * Positive angles are clockwise (i.e., towards the positive y axis);\r
+     * negative angles are counter-clockwise (i.e., towards the negative y axis).\r
+     * </p>\r
+     *\r
+     * @return rotation angle in degrees\r
+     */\r
+    double getRotation();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/Shadow.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/Shadow.java
new file mode 100644 (file)
index 0000000..589f095
--- /dev/null
@@ -0,0 +1,47 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.awt.Color;\r
+\r
+\r
+public interface Shadow {\r
+    /**\r
+     * @return the offset of this shadow in points\r
+     */\r
+    double getDistance();\r
+    \r
+    /**\r
+     * \r
+     * @return the direction to offset the shadow in angles\r
+     */\r
+    double getAngle();\r
+\r
+    /**\r
+     * \r
+     * @return the blur radius of the shadow\r
+     * TODO: figure out how to make sense of this property when rendering shadows \r
+     */\r
+    double getBlur();\r
+\r
+    /**\r
+     * @return the color of this shadow. \r
+     * Depending whether the parent shape is filled or stroked, this color is used to fill or stroke this shadow\r
+     */\r
+    Color getColor();    \r
+}\r
index 11c0bf6251501f117d5bacefcd2032cdd837edef..02cab6dbb36ad7fc2af41864ad63a30d5ea5ccd1 100644 (file)
@@ -19,13 +19,61 @@ package org.apache.poi.sl.usermodel;
 
 import java.awt.geom.Rectangle2D;
 
-public interface Shape {
-       public int getShapeType();
+import org.apache.poi.sl.draw.geom.CustomGeometry;
 
-       public Rectangle2D getAnchor();
-       public void setAnchor(Rectangle2D anchor);
+public interface Shape extends PlaceableShape {
+    CustomGeometry getGeometry();
+    
+       ShapeType getShapeType();
 
-       public void moveTo(float x, float y);
+       void setAnchor(Rectangle2D anchor);
 
-       public Shape getParent();
+       ShapeContainer getParent();
+       
+       boolean isPlaceholder();
+       
+    /**
+    *
+    * @return the sheet this shape belongs to
+    */
+   Sheet getSheet();
+       
+    /**
+     * Rotate this shape.
+     * <p>
+     * Positive angles are clockwise (i.e., towards the positive y axis);
+     * negative angles are counter-clockwise (i.e., towards the negative y axis).
+     * </p>
+     *
+     * @param theta the rotation angle in degrees.
+     */
+    void setRotation(double theta);
+
+    /**
+     * @param flip whether the shape is horizontally flipped
+     */
+    void setFlipHorizontal(boolean flip);
+
+    /**
+     * Whether the shape is vertically flipped
+     *
+     * @param flip whether the shape is vertically flipped
+     */
+    void setFlipVertical(boolean flip);
+
+    /**
+     * Whether the shape is horizontally flipped
+     *
+     * @return whether the shape is horizontally flipped
+     */
+    boolean getFlipHorizontal();
+
+    /**
+     * Whether the shape is vertically flipped
+     *
+     * @return whether the shape is vertically flipped
+     */
+    boolean getFlipVertical();
+
+       
 }
index cabcf4bc89b11faefcca81eb8cc405d7ebe11ab1..faee9a1b8979cd9681c6ee94241b91c9d6e51c65 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
-public interface ShapeContainer {
+
+public interface ShapeContainer extends Iterable<Shape>, PlaceableShape {
+    /**
+     * Returns an array containing all of the elements in this container in proper
+     * sequence (from first to last element).
+     *
+     * @return an array containing all of the elements in this container in proper
+     *         sequence
+     */
        public Shape[] getShapes();
+
        public void addShape(Shape shape);
+
+    /**
+     * Removes the specified shape from this sheet, if it is present
+     * (optional operation).  If this sheet does not contain the element,
+     * it is unchanged.
+     *
+     * @param xShape shape to be removed from this sheet, if present
+     * @return <tt>true</tt> if this sheet contained the specified element
+     * @throws IllegalArgumentException if the type of the specified shape
+     *         is incompatible with this sheet (optional)
+     */
        public boolean removeShape(Shape shape);
 }
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeType.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeType.java
new file mode 100644 (file)
index 0000000..0c25f5b
--- /dev/null
@@ -0,0 +1,295 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.sl.usermodel;
+
+/**
+ * known preset shape geometries in PresentationML
+ */
+public enum ShapeType {
+    NOT_PRIMITIVE(-1, 0, "NotPrimitive"),
+    LINE(1, 20, "Line"),
+    LINE_INV(2, -1, null),
+    TRIANGLE(3, 5, "IsocelesTriangle"),
+    RT_TRIANGLE(4, 6, "RightTriangle"),
+    RECT(5, 1, "Rectangle"),
+    DIAMOND(6, 4, "Diamond"),
+    PARALLELOGRAM(7, 7, "Parallelogram"),
+    TRAPEZOID(8, 8, "Trapezoid"),
+    NON_ISOSCELES_TRAPEZOID(9, -1, null),
+    PENTAGON(10, 56, "Pentagon"),
+    HEXAGON(11, 9, "Hexagon"),
+    HEPTAGON(12, -1, null),
+    OCTAGON(13, 10, "Octagon"),
+    DECAGON(14, -1, null),
+    DODECAGON(15, -1, null),
+    STAR_4(16, 187, "Star4"),
+    STAR_5(17, 12, "Star"), // aka star in native
+    STAR_6(18, -1, null),
+    STAR_7(19, -1, null),
+    STAR_8(20, 58, "Star8"),
+    STAR_10(21, -1, null),
+    STAR_12(22, -1, null),
+    STAR_16(23, 59, "Star16"),
+    SEAL(23, 18, "Seal"), // same as star_16, but twice in native
+    STAR_24(24, 92, "Star24"),
+    STAR_32(25, 60, "Star32"),
+    ROUND_RECT(26, 2, "RoundRectangle"),
+    ROUND_1_RECT(27, -1, null),
+    ROUND_2_SAME_RECT(28, -1, null),
+    ROUND_2_DIAG_RECT(29, -1, null),
+    SNIP_ROUND_RECT(30, -1, null),
+    SNIP_1_RECT(31, -1, null),
+    SNIP_2_SAME_RECT(32, -1, null),
+    SNIP_2_DIAG_RECT(33, -1, null),
+    PLAQUE(34, 21, "Plaque"),
+    ELLIPSE(35, 3, "Ellipse"),
+    TEARDROP(36, -1, null),
+    HOME_PLATE(37, 15, "HomePlate"),
+    CHEVRON(38, 55, "Chevron"),
+    PIE_WEDGE(39, -1, null),
+    PIE(40, -1, null),
+    BLOCK_ARC(41, 95, "BlockArc"),
+    DONUT(42, 23, "Donut"),
+    NO_SMOKING(43, 57, "NoSmoking"),
+    RIGHT_ARROW(44, 13, "Arrow"), // aka arrow in native
+    LEFT_ARROW(45, 66, "LeftArrow"),
+    UP_ARROW(46, 68, "UpArrow"),
+    DOWN_ARROW(47, 67, "DownArrow"),
+    STRIPED_RIGHT_ARROW(48, 93, "StripedRightArrow"),
+    NOTCHED_RIGHT_ARROW(49, 94, "NotchedRightArrow"),
+    BENT_UP_ARROW(50, 90, "BentUpArrow"),
+    LEFT_RIGHT_ARROW(51, 69, "LeftRightArrow"),
+    UP_DOWN_ARROW(52, 70, "UpDownArrow"),
+    LEFT_UP_ARROW(53, 89, "LeftUpArrow"),
+    LEFT_RIGHT_UP_ARROW(54, 182, "LeftRightUpArrow"),
+    QUAD_ARROW(55, 76, "QuadArrow"),
+    LEFT_ARROW_CALLOUT(56, 77, "LeftArrowCallout"),
+    RIGHT_ARROW_CALLOUT(57, 78, "RightArrowCallout"),
+    UP_ARROW_CALLOUT(58, 79, "UpArrowCallout"),
+    DOWN_ARROW_CALLOUT(59, 80, "DownArrowCallout"),
+    LEFT_RIGHT_ARROW_CALLOUT(60, 81, "LeftRightArrowCallout"),
+    UP_DOWN_ARROW_CALLOUT(61, 82, "UpDownArrowCallout"),
+    QUAD_ARROW_CALLOUT(62, 83, "QuadArrowCallout"),
+    BENT_ARROW(63, 91, "BentArrow"),
+    UTURN_ARROW(64, 101, "UturnArrow"),
+    CIRCULAR_ARROW(65, 99, "CircularArrow"),
+    LEFT_CIRCULAR_ARROW(66, -1, null),
+    LEFT_RIGHT_CIRCULAR_ARROW(67, -1, null),
+    CURVED_RIGHT_ARROW(68, 102, "CurvedRightArrow"),
+    CURVED_LEFT_ARROW(69, 103, "CurvedLeftArrow"),
+    CURVED_UP_ARROW(70, 104, "CurvedUpArrow"),
+    CURVED_DOWN_ARROW(71, 105, "CurvedDownArrow"),
+    SWOOSH_ARROW(72, -1, null),
+    CUBE(73, 16, "Cube"),
+    CAN(74, 22, "Can"),
+    LIGHTNING_BOLT(75, 73, "LightningBolt"),
+    HEART(76, 74, "Heart"),
+    SUN(77, 183, "Sun"),
+    MOON(78, 184, "Moon"),
+    SMILEY_FACE(79, 96, "SmileyFace"),
+    IRREGULAR_SEAL_1(80, 71, "IrregularSeal1"),
+    IRREGULAR_SEAL_2(81, 72, "IrregularSeal2"),
+    FOLDED_CORNER(82, 65, "FoldedCorner"),
+    BEVEL(83, 84, "Bevel"),
+    FRAME(84, 75, "PictureFrame"),
+    HALF_FRAME(85, -1, null),
+    CORNER(86, -1, null),
+    DIAG_STRIPE(87, -1, null),
+    CHORD(88, -1, null),
+    ARC(89, 19, "Arc"),
+    LEFT_BRACKET(90, 85, "LeftBracket"),
+    RIGHT_BRACKET(91, 86, "RightBracket"),
+    LEFT_BRACE(92, 87, "LeftBrace"),
+    RIGHT_BRACE(93, 88, "RightBrace"),
+    BRACKET_PAIR(94, 185, "BracketPair"),
+    BRACE_PAIR(95, 186, "BracePair"),
+    STRAIGHT_CONNECTOR_1(96, 32, "StraightConnector1"),
+    BENT_CONNECTOR_2(97, 33, "BentConnector2"),
+    BENT_CONNECTOR_3(98, 34, "BentConnector3"),
+    BENT_CONNECTOR_4(99, 35, "BentConnector4"),
+    BENT_CONNECTOR_5(100, 36, "BentConnector5"),
+    CURVED_CONNECTOR_2(101, 37, "CurvedConnector2"),
+    CURVED_CONNECTOR_3(102, 38, "CurvedConnector3"),
+    CURVED_CONNECTOR_4(103, 39, "CurvedConnector4"),
+    CURVED_CONNECTOR_5(104, 40, "CurvedConnector5"),
+    CALLOUT_1(105, 41, "Callout1"),
+    CALLOUT_2(106, 42, "Callout2"),
+    CALLOUT_3(107, 43, "Callout3"),
+    ACCENT_CALLOUT_1(108, 44, "AccentCallout1"),
+    ACCENT_CALLOUT_2(109, 45, "AccentCallout2"),
+    ACCENT_CALLOUT_3(110, 46, "AccentCallout3"),
+    BORDER_CALLOUT_1(111, 47, "BorderCallout1"),
+    BORDER_CALLOUT_2(112, 48, "BorderCallout2"),
+    BORDER_CALLOUT_3(113, 49, "BorderCallout3"),
+    ACCENT_BORDER_CALLOUT_1(114, 50, "AccentBorderCallout1"),
+    ACCENT_BORDER_CALLOUT_2(115, 51, "AccentBorderCallout2"),
+    ACCENT_BORDER_CALLOUT_3(116, 52, "AccentBorderCallout3"),
+    WEDGE_RECT_CALLOUT(117, 61, "WedgeRectCallout"),
+    WEDGE_ROUND_RECT_CALLOUT(118, 62, "WedgeRRectCallout"),
+    WEDGE_ELLIPSE_CALLOUT(119, 63, "WedgeEllipseCallout"),
+    CLOUD_CALLOUT(120, 106, "CloudCallout"),
+    CLOUD(121, -1, null),
+    RIBBON(122, 53, "Ribbon"),
+    RIBBON_2(123, 54, "Ribbon2"),
+    ELLIPSE_RIBBON(124, 107, "EllipseRibbon"),
+    ELLIPSE_RIBBON_2(125, 108, "EllipseRibbon2"),
+    LEFT_RIGHT_RIBBON(126, -1, null),
+    VERTICAL_SCROLL(127, 97, "VerticalScroll"),
+    HORIZONTAL_SCROLL(128, 98, "HorizontalScroll"),
+    WAVE(129, 64, "Wave"),
+    DOUBLE_WAVE(130, 188, "DoubleWave"),
+    PLUS(131, 11, "Plus"),
+    FLOW_CHART_PROCESS(132, 109, "FlowChartProcess"),
+    FLOW_CHART_DECISION(133, 110, "FlowChartDecision"),
+    FLOW_CHART_INPUT_OUTPUT(134, 111, "FlowChartInputOutput"),
+    FLOW_CHART_PREDEFINED_PROCESS(135, 112, "FlowChartPredefinedProcess"),
+    FLOW_CHART_INTERNAL_STORAGE(136, 113, "FlowChartInternalStorage"),
+    FLOW_CHART_DOCUMENT(137, 114, "FlowChartDocument"),
+    FLOW_CHART_MULTIDOCUMENT(138, 115, "FlowChartMultidocument"),
+    FLOW_CHART_TERMINATOR(139, 116, "FlowChartTerminator"),
+    FLOW_CHART_PREPARATION(140, 117, "FlowChartPreparation"),
+    FLOW_CHART_MANUAL_INPUT(141, 118, "FlowChartManualInput"),
+    FLOW_CHART_MANUAL_OPERATION(142, 119, "FlowChartManualOperation"),
+    FLOW_CHART_CONNECTOR(143, 120, "FlowChartConnector"),
+    FLOW_CHART_PUNCHED_CARD(144, 121, "FlowChartPunchedCard"),
+    FLOW_CHART_PUNCHED_TAPE(145, 122, "FlowChartPunchedTape"),
+    FLOW_CHART_SUMMING_JUNCTION(146, 123, "FlowChartSummingJunction"),
+    FLOW_CHART_OR(147, 124, "FlowChartOr"),
+    FLOW_CHART_COLLATE(148, 125, "FlowChartCollate"),
+    FLOW_CHART_SORT(149, 126, "FlowChartSort"),
+    FLOW_CHART_EXTRACT(150, 127, "FlowChartExtract"),
+    FLOW_CHART_MERGE(151, 128, "FlowChartMerge"),
+    FLOW_CHART_OFFLINE_STORAGE(152, 129, "FlowChartOfflineStorage"),
+    FLOW_CHART_ONLINE_STORAGE(153, 130, "FlowChartOnlineStorage"),
+    FLOW_CHART_MAGNETIC_TAPE(154, 131, "FlowChartMagneticTape"),
+    FLOW_CHART_MAGNETIC_DISK(155, 132, "FlowChartMagneticDisk"),
+    FLOW_CHART_MAGNETIC_DRUM(156, 133, "FlowChartMagneticDrum"),
+    FLOW_CHART_DISPLAY(157, 134, "FlowChartDisplay"),
+    FLOW_CHART_DELAY(158, 135, "FlowChartDelay"),
+    FLOW_CHART_ALTERNATE_PROCESS(159, 176, "FlowChartAlternateProcess"),
+    FLOW_CHART_OFFPAGE_CONNECTOR(160, 177, "FlowChartOffpageConnector"),
+    ACTION_BUTTON_BLANK(161, 189, "ActionButtonBlank"),
+    ACTION_BUTTON_HOME(162, 190, "ActionButtonHome"),
+    ACTION_BUTTON_HELP(163, 191, "ActionButtonHelp"),
+    ACTION_BUTTON_INFORMATION(164, 192, "ActionButtonInformation"),
+    ACTION_BUTTON_FORWARD_NEXT(165, 193, "ActionButtonForwardNext"),
+    ACTION_BUTTON_BACK_PREVIOUS(166, 194, "ActionButtonBackPrevious"),
+    ACTION_BUTTON_END(167, 195, "ActionButtonEnd"),
+    ACTION_BUTTON_BEGINNING(168, 196, "ActionButtonBeginning"),
+    ACTION_BUTTON_RETURN(169, 197, "ActionButtonReturn"),
+    ACTION_BUTTON_DOCUMENT(170, 198, "ActionButtonDocument"),
+    ACTION_BUTTON_SOUND(171, 199, "ActionButtonSound"),
+    ACTION_BUTTON_MOVIE(172, 200, "ActionButtonMovie"),
+    GEAR_6(173, -1, null),
+    GEAR_9(174, -1, null),
+    FUNNEL(175, -1, null),
+    MATH_PLUS(176, -1, null),
+    MATH_MINUS(177, -1, null),
+    MATH_MULTIPLY(178, -1, null),
+    MATH_DIVIDE(179, -1, null),
+    MATH_EQUAL(180, -1, null),
+    MATH_NOT_EQUAL(181, -1, null),
+    CORNER_TABS(182, -1, null),
+    SQUARE_TABS(183, -1, null),
+    PLAQUE_TABS(184, -1, null),
+    CHART_X(185, -1, null),
+    CHART_STAR(186, -1, null),
+    CHART_PLUS(187, -1, null),
+    // below are shape types only found in native
+    NOTCHED_CIRCULAR_ARROW(-1, 100, "NotchedCircularArrow"),
+    THICK_ARROW(-1, 14, "ThickArrow"),
+    BALLOON(-1, 17, "Balloon"),
+    TEXT_SIMPLE(-1, 24, "TextSimple"),
+    TEXT_OCTAGON(-1, 25, "TextOctagon"),
+    TEXT_HEXAGON(-1, 26, "TextHexagon"),
+    TEXT_CURVE(-1, 27, "TextCurve"),
+    TEXT_WAVE(-1, 28, "TextWave"),
+    TEXT_RING(-1, 29, "TextRing"),
+    TEXT_ON_CURVE(-1, 30, "TextOnCurve"),
+    TEXT_ON_RING(-1, 31, "TextOnRing"),
+    TEXT_PLAIN_TEXT(-1, 136, "TextPlainText"),
+    TEXT_STOP(-1, 137, "TextStop"),
+    TEXT_TRIANGLE(-1, 138, "TextTriangle"),
+    TEXT_TRIANGLE_INVERTED(-1, 139, "TextTriangleInverted"),
+    TEXT_CHEVRON(-1, 140, "TextChevron"),
+    TEXT_CHEVRON_INVERTED(-1, 141, "TextChevronInverted"),
+    TEXT_RING_INSIDE(-1, 142, "TextRingInside"),
+    TEXT_RING_OUTSIDE(-1, 143, "TextRingOutside"),
+    TEXT_ARCH_UP_CURVE(-1, 144, "TextArchUpCurve"),
+    TEXT_ARCH_DOWN_CURVE(-1, 145, "TextArchDownCurve"),
+    TEXT_CIRCLE_CURVE(-1, 146, "TextCircleCurve"),
+    TEXT_BUTTON_CURVE(-1, 147, "TextButtonCurve"),
+    TEXT_ARCH_UP_POUR(-1, 148, "TextArchUpPour"),
+    TEXT_ARCH_DOWN_POUR(-1, 149, "TextArchDownPour"),
+    TEXT_CIRCLE_POUR(-1, 150, "TextCirclePour"),
+    TEXT_BUTTON_POUR(-1, 151, "TextButtonPour"),
+    TEXT_CURVE_UP(-1, 152, "TextCurveUp"),
+    TEXT_CURVE_DOWN(-1, 153, "TextCurveDown"),
+    TEXT_CASCADE_UP(-1, 154, "TextCascadeUp"),
+    TEXT_CASCADE_DOWN(-1, 155, "TextCascadeDown"),
+    TEXT_WAVE_1(-1, 156, "TextWave1"),
+    TEXT_WAVE_2(-1, 157, "TextWave2"),
+    TEXT_WAVE_3(-1, 158, "TextWave3"),
+    TEXT_WAVE_4(-1, 159, "TextWave4"),
+    TEXT_INFLATE(-1, 160, "TextInflate"),
+    TEXT_DEFLATE(-1, 161, "TextDeflate"),
+    TEXT_INFLATE_BOTTOM(-1, 162, "TextInflateBottom"),
+    TEXT_DEFLATE_BOTTOM(-1, 163, "TextDeflateBottom"),
+    TEXT_INFLATE_TOP(-1, 164, "TextInflateTop"),
+    TEXT_DEFLATE_TOP(-1, 165, "TextDeflateTop"),
+    TEXT_DEFLATE_INFLATE(-1, 166, "TextDeflateInflate"),
+    TEXT_DEFLATE_INFLATE_DEFLATE(-1, 167, "TextDeflateInflateDeflate"),
+    TEXT_FADE_RIGHT(-1, 168, "TextFadeRight"),
+    TEXT_FADE_LEFT(-1, 169, "TextFadeLeft"),
+    TEXT_FADE_UP(-1, 170, "TextFadeUp"),
+    TEXT_FADE_DOWN(-1, 171, "TextFadeDown"),
+    TEXT_SLANT_UP(-1, 172, "TextSlantUp"),
+    TEXT_SLANT_DOWN(-1, 173, "TextSlantDown"),
+    TEXT_CAN_UP(-1, 174, "TextCanUp"),
+    TEXT_CAN_DOWN(-1, 175, "TextCanDown"),
+    CALLOUT_90(-1, 178, "Callout90"),
+    ACCENT_CALLOUT_90(-1, 179, "AccentCallout90"),
+    BORDER_CALLOUT_90(-1, 180, "BorderCallout90"),
+    ACCENT_BORDER_CALLOUT_90(-1, 181, "AccentBorderCallout90"),
+    HOST_CONTROL(-1, 201, "HostControl"),
+    TEXT_BOX(-1, 202, "TextBox")
+    ;
+
+    /** Preset-ID for XML-based shapes */
+    public final int ooxmlId;
+    
+    /** Preset-ID for binary-based shapes */
+    public final int nativeId;
+    
+    /** POI-specific name for the binary-based type */
+    public final String nativeName;
+
+    ShapeType(int ooxmlId, int nativeId, String nativeName){
+        this.ooxmlId = ooxmlId;
+        this.nativeId = nativeId;
+        this.nativeName = nativeName;
+    }
+
+    public static ShapeType forId(int id, boolean isOoxmlId){
+        for(ShapeType t : values()){
+            if((isOoxmlId && t.ooxmlId == id) ||
+               (!isOoxmlId && t.nativeId == id)) return t;
+        }
+        throw new IllegalArgumentException("Unknown shape type: " + id);
+    }
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeTypes.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/ShapeTypes.java
deleted file mode 100644 (file)
index 69325fe..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-/* ====================================================================
-   Licensed to the Apache Software Foundation (ASF) under one or more
-   contributor license agreements.  See the NOTICE file distributed with
-   this work for additional information regarding copyright ownership.
-   The ASF licenses this file to You under the Apache License, Version 2.0
-   (the "License"); you may not use this file except in compliance with
-   the License.  You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
-==================================================================== */
-
-package org.apache.poi.sl.usermodel;
-
-public interface ShapeTypes {
-    public static final int NotPrimitive = 0;
-    public static final int Rectangle = 1;
-    public static final int RoundRectangle = 2;
-    public static final int Ellipse = 3;
-    public static final int Diamond = 4;
-    public static final int IsocelesTriangle = 5;
-    public static final int RightTriangle = 6;
-    public static final int Parallelogram = 7;
-    public static final int Trapezoid = 8;
-    public static final int Hexagon = 9;
-    public static final int Octagon = 10;
-    public static final int Plus = 11;
-    public static final int Star = 12;
-    public static final int Arrow = 13;
-    public static final int ThickArrow = 14;
-    public static final int HomePlate = 15;
-    public static final int Cube = 16;
-    public static final int Balloon = 17;
-    public static final int Seal = 18;
-    public static final int Arc = 19;
-    public static final int Line = 20;
-    public static final int Plaque = 21;
-    public static final int Can = 22;
-    public static final int Donut = 23;
-    public static final int TextSimple = 24;
-    public static final int TextOctagon = 25;
-    public static final int TextHexagon = 26;
-    public static final int TextCurve = 27;
-    public static final int TextWave = 28;
-    public static final int TextRing = 29;
-    public static final int TextOnCurve = 30;
-    public static final int TextOnRing = 31;
-    public static final int StraightConnector1 = 32;
-    public static final int BentConnector2 = 33;
-    public static final int BentConnector3 = 34;
-    public static final int BentConnector4 = 35;
-    public static final int BentConnector5 = 36;
-    public static final int CurvedConnector2 = 37;
-    public static final int CurvedConnector3 = 38;
-    public static final int CurvedConnector4 = 39;
-    public static final int CurvedConnector5 = 40;
-    public static final int Callout1 = 41;
-    public static final int Callout2 = 42;
-    public static final int Callout3 = 43;
-    public static final int AccentCallout1 = 44;
-    public static final int AccentCallout2 = 45;
-    public static final int AccentCallout3 = 46;
-    public static final int BorderCallout1 = 47;
-    public static final int BorderCallout2 = 48;
-    public static final int BorderCallout3 = 49;
-    public static final int AccentBorderCallout1 = 50;
-    public static final int AccentBorderCallout2 = 51;
-    public static final int AccentBorderCallout3 = 52;
-    public static final int Ribbon = 53;
-    public static final int Ribbon2 = 54;
-    public static final int Chevron = 55;
-    public static final int Pentagon = 56;
-    public static final int NoSmoking = 57;
-    public static final int Star8 = 58;
-    public static final int Star16 = 59;
-    public static final int Star32 = 60;
-    public static final int WedgeRectCallout = 61;
-    public static final int WedgeRRectCallout = 62;
-    public static final int WedgeEllipseCallout = 63;
-    public static final int Wave = 64;
-    public static final int FoldedCorner = 65;
-    public static final int LeftArrow = 66;
-    public static final int DownArrow = 67;
-    public static final int UpArrow = 68;
-    public static final int LeftRightArrow = 69;
-    public static final int UpDownArrow = 70;
-    public static final int IrregularSeal1 = 71;
-    public static final int IrregularSeal2 = 72;
-    public static final int LightningBolt = 73;
-    public static final int Heart = 74;
-    public static final int PictureFrame = 75;
-    public static final int QuadArrow = 76;
-    public static final int LeftArrowCallout = 77;
-    public static final int RightArrowCallout = 78;
-    public static final int UpArrowCallout = 79;
-    public static final int DownArrowCallout = 80;
-    public static final int LeftRightArrowCallout = 81;
-    public static final int UpDownArrowCallout = 82;
-    public static final int QuadArrowCallout = 83;
-    public static final int Bevel = 84;
-    public static final int LeftBracket = 85;
-    public static final int RightBracket = 86;
-    public static final int LeftBrace = 87;
-    public static final int RightBrace = 88;
-    public static final int LeftUpArrow = 89;
-    public static final int BentUpArrow = 90;
-    public static final int BentArrow = 91;
-    public static final int Star24 = 92;
-    public static final int StripedRightArrow = 93;
-    public static final int NotchedRightArrow = 94;
-    public static final int BlockArc = 95;
-    public static final int SmileyFace = 96;
-    public static final int VerticalScroll = 97;
-    public static final int HorizontalScroll = 98;
-    public static final int CircularArrow = 99;
-    public static final int NotchedCircularArrow = 100;
-    public static final int UturnArrow = 101;
-    public static final int CurvedRightArrow = 102;
-    public static final int CurvedLeftArrow = 103;
-    public static final int CurvedUpArrow = 104;
-    public static final int CurvedDownArrow = 105;
-    public static final int CloudCallout = 106;
-    public static final int EllipseRibbon = 107;
-    public static final int EllipseRibbon2 = 108;
-    public static final int FlowChartProcess = 109;
-    public static final int FlowChartDecision = 110;
-    public static final int FlowChartInputOutput = 111;
-    public static final int FlowChartPredefinedProcess = 112;
-    public static final int FlowChartInternalStorage = 113;
-    public static final int FlowChartDocument = 114;
-    public static final int FlowChartMultidocument = 115;
-    public static final int FlowChartTerminator = 116;
-    public static final int FlowChartPreparation = 117;
-    public static final int FlowChartManualInput = 118;
-    public static final int FlowChartManualOperation = 119;
-    public static final int FlowChartConnector = 120;
-    public static final int FlowChartPunchedCard = 121;
-    public static final int FlowChartPunchedTape = 122;
-    public static final int FlowChartSummingJunction = 123;
-    public static final int FlowChartOr = 124;
-    public static final int FlowChartCollate = 125;
-    public static final int FlowChartSort = 126;
-    public static final int FlowChartExtract = 127;
-    public static final int FlowChartMerge = 128;
-    public static final int FlowChartOfflineStorage = 129;
-    public static final int FlowChartOnlineStorage = 130;
-    public static final int FlowChartMagneticTape = 131;
-    public static final int FlowChartMagneticDisk = 132;
-    public static final int FlowChartMagneticDrum = 133;
-    public static final int FlowChartDisplay = 134;
-    public static final int FlowChartDelay = 135;
-    public static final int TextPlainText = 136;
-    public static final int TextStop = 137;
-    public static final int TextTriangle = 138;
-    public static final int TextTriangleInverted = 139;
-    public static final int TextChevron = 140;
-    public static final int TextChevronInverted = 141;
-    public static final int TextRingInside = 142;
-    public static final int TextRingOutside = 143;
-    public static final int TextArchUpCurve = 144;
-    public static final int TextArchDownCurve = 145;
-    public static final int TextCircleCurve = 146;
-    public static final int TextButtonCurve = 147;
-    public static final int TextArchUpPour = 148;
-    public static final int TextArchDownPour = 149;
-    public static final int TextCirclePour = 150;
-    public static final int TextButtonPour = 151;
-    public static final int TextCurveUp = 152;
-    public static final int TextCurveDown = 153;
-    public static final int TextCascadeUp = 154;
-    public static final int TextCascadeDown = 155;
-    public static final int TextWave1 = 156;
-    public static final int TextWave2 = 157;
-    public static final int TextWave3 = 158;
-    public static final int TextWave4 = 159;
-    public static final int TextInflate = 160;
-    public static final int TextDeflate = 161;
-    public static final int TextInflateBottom = 162;
-    public static final int TextDeflateBottom = 163;
-    public static final int TextInflateTop = 164;
-    public static final int TextDeflateTop = 165;
-    public static final int TextDeflateInflate = 166;
-    public static final int TextDeflateInflateDeflate = 167;
-    public static final int TextFadeRight = 168;
-    public static final int TextFadeLeft = 169;
-    public static final int TextFadeUp = 170;
-    public static final int TextFadeDown = 171;
-    public static final int TextSlantUp = 172;
-    public static final int TextSlantDown = 173;
-    public static final int TextCanUp = 174;
-    public static final int TextCanDown = 175;
-    public static final int FlowChartAlternateProcess = 176;
-    public static final int FlowChartOffpageConnector = 177;
-    public static final int Callout90 = 178;
-    public static final int AccentCallout90 = 179;
-    public static final int BorderCallout90 = 180;
-    public static final int AccentBorderCallout90 = 181;
-    public static final int LeftRightUpArrow = 182;
-    public static final int Sun = 183;
-    public static final int Moon = 184;
-    public static final int BracketPair = 185;
-    public static final int BracePair = 186;
-    public static final int Star4 = 187;
-    public static final int DoubleWave = 188;
-    public static final int ActionButtonBlank = 189;
-    public static final int ActionButtonHome = 190;
-    public static final int ActionButtonHelp = 191;
-    public static final int ActionButtonInformation = 192;
-    public static final int ActionButtonForwardNext = 193;
-    public static final int ActionButtonBackPrevious = 194;
-    public static final int ActionButtonEnd = 195;
-    public static final int ActionButtonBeginning = 196;
-    public static final int ActionButtonReturn = 197;
-    public static final int ActionButtonDocument = 198;
-    public static final int ActionButtonSound = 199;
-    public static final int ActionButtonMovie = 200;
-    public static final int HostControl = 201;
-    public static final int TextBox = 202;
-}
index 7959838cc17ad4c7921416faaf0baae9de565702..4da90a6a36d7bdeba46f15f75dfcd88b95a8b851 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
+
 /**
  * Common parent of Slides, Notes and Masters
  */
 public interface Sheet extends ShapeContainer {
-       public SlideShow getSlideShow();
+       SlideShow getSlideShow();
 
-       public MasterSheet getMasterSheet();
+    /**
+     * @return whether shapes on the master sheet should be shown. By default master graphics is turned off.
+     * Sheets that support the notion of master (slide, slideLayout) should override it and
+     * check this setting in the sheet XML
+     */
+       boolean getFollowMasterGraphics();
+       
+       MasterSheet getMasterSheet();
 
-       public Background getBackground();
+       Background getBackground();
 }
index 449433a7e83a76ee866f4a3bf7368d0a662c4c4a..7de02dbf62711db9681c863a5cfbed71914f5fc7 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
-public interface SimpleShape extends Shape {
-       public Fill getFill();
-       public LineStyle getLineStyle();
+import org.apache.poi.sl.draw.geom.IAdjustableShape;
 
-       public Hyperlink getHyperlink();
-       public void setHyperlink(Hyperlink hyperlink);
+
+public interface SimpleShape extends Shape, IAdjustableShape {
+       StrokeStyle getStrokeStyle();
+       Shadow getShadow();
+       LineDecoration getLineDecoration();
+       
+       Hyperlink getHyperlink();
+       void setHyperlink(Hyperlink hyperlink);
 }
index 8239bb91ffa9c6c5fd6d0ffd927cb3874c876210..4505ca58436deb5a41618a424160b14516e96413 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
+import java.awt.Dimension;
 import java.io.IOException;
 
 public interface SlideShow {
-       public Slide createSlide() throws IOException;
-       public MasterSheet createMasterSheet() throws IOException;
+       Slide createSlide() throws IOException;
+       MasterSheet createMasterSheet() throws IOException;
 
-       public Slide[] getSlides();
-       public MasterSheet[] getMasterSheet();
+       Slide[] getSlides();
+       MasterSheet[] getMasterSheet();
 
-       public Resources getResources();
+       Resources getResources();
+
+    /**
+     * Returns the current page size
+     *
+     * @return the page size
+     */
+    Dimension getPageSize();    
 }
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/SolidPaint.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/SolidPaint.java
new file mode 100644 (file)
index 0000000..dd0225d
--- /dev/null
@@ -0,0 +1,23 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+\r
+public interface SolidPaint extends PaintStyle {\r
+    ColorStyle getSolidColor();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/StrokeStyle.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/StrokeStyle.java
new file mode 100644 (file)
index 0000000..c02e1a3
--- /dev/null
@@ -0,0 +1,59 @@
+/* ====================================================================
+   Licensed to the Apache Software Foundation (ASF) under one or more
+   contributor license agreements.  See the NOTICE file distributed with
+   this work for additional information regarding copyright ownership.
+   The ASF licenses this file to You under the Apache License, Version 2.0
+   (the "License"); you may not use this file except in compliance with
+   the License.  You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
+==================================================================== */
+
+package org.apache.poi.sl.usermodel;
+
+public interface StrokeStyle {
+    enum LineCap {
+        /** Rounded ends */
+        ROUND,
+        /** Square protrudes by half line width */
+        SQUARE,
+        /** Line ends at end point*/
+        FLAT;
+    }
+
+    /**
+     * The line dash with pattern.
+     * The pattern is derived empirically on PowerPoint 2010 and needs to be multiplied
+     * with actual line width
+     */
+    enum LineDash {
+        SOLID(1),
+        DOT(1,1),
+        DASH(3,4),
+        LG_DASH(8,3),
+        DASH_DOT(4,3,1,3),
+        LG_DASH_DOT(8,3,1,3),
+        LG_DASH_DOT_DOT(8,3,1,3,1,3),
+        SYS_DASH(2,2),
+        SYS_DOT(1,1),
+        SYS_DASH_DOT,
+        SYS_DASH_DOT_DOT;
+
+        public int pattern[];
+        
+        LineDash(int... pattern) {
+            this.pattern = (pattern == null || pattern.length == 0) ? new int[]{1} : pattern;
+        }
+    }
+    
+    PaintStyle getPaint();
+    LineCap getLineCap();
+    LineDash getLineDash();
+    double getLineWidth();
+}
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/TextParagraph.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/TextParagraph.java
new file mode 100644 (file)
index 0000000..e0c0317
--- /dev/null
@@ -0,0 +1,132 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.awt.Color;\r
+\r
+\r
+public interface TextParagraph extends Iterable<TextRun> {\r
+    /**\r
+     * Specified a list of text alignment types\r
+     */\r
+    public enum TextAlign {\r
+        /**\r
+         * Align text to the left margin.\r
+         */\r
+        LEFT,\r
+        /**\r
+         * Align text in the center.\r
+         */\r
+        CENTER,\r
+\r
+        /**\r
+         * Align text to the right margin.\r
+         */\r
+        RIGHT,\r
+\r
+        /**\r
+         * Align text so that it is justified across the whole line. It\r
+         * is smart in the sense that it will not justify sentences\r
+         * which are short\r
+         */\r
+        JUSTIFY,\r
+        JUSTIFY_LOW,\r
+        DIST,\r
+        THAI_DIST\r
+    }\r
+\r
+    public interface BulletStyle {\r
+        String getBulletCharacter();\r
+        String getBulletFont();\r
+        double getBulletFontSize();\r
+        Color getBulletFontColor();\r
+    }\r
+    \r
+    /**\r
+     * The amount of vertical white space before the paragraph\r
+     * This may be specified in two different ways, percentage spacing and font point spacing:\r
+     * <p>\r
+     * If spaceBefore >= 0, then space is a percentage of normal line height.\r
+     * If spaceBefore < 0, the absolute value of linespacing is the spacing in points\r
+     * </p>\r
+     *\r
+     * @return the vertical white space before the paragraph\r
+     */\r
+    double getSpaceBefore();\r
+    \r
+    /**\r
+     * The amount of vertical white space after the paragraph\r
+     * This may be specified in two different ways, percentage spacing and font point spacing:\r
+     * <p>\r
+     * If spaceBefore >= 0, then space is a percentage of normal line height.\r
+     * If spaceBefore < 0, the absolute value of linespacing is the spacing in points\r
+     * </p>\r
+     *\r
+     * @return the vertical white space after the paragraph\r
+     */\r
+    double getSpaceAfter();    \r
+\r
+    /**\r
+     * @return the left margin (in points) of the paragraph\r
+     */\r
+    double getLeftMargin();\r
+\r
+    /**\r
+     * @return the right margin (in points) of the paragraph\r
+     */\r
+    double getRightMargin();\r
+\r
+    /**\r
+     * @return the indent applied (in points) to the first line of text in the paragraph.\r
+     */\r
+    double getIndent();\r
+\r
+    /**\r
+     * Returns the vertical line spacing that is to be used within a paragraph.\r
+     * This may be specified in two different ways, percentage spacing and font point spacing:\r
+     * <p>\r
+     * If linespacing >= 0, then linespacing is a percentage of normal line height.\r
+     * If linespacing < 0, the absolute value of linespacing is the spacing in points\r
+     * </p>\r
+     *\r
+     * @return the vertical line spacing.\r
+     */\r
+    double getLineSpacing();\r
+\r
+    String getDefaultFontFamily();\r
+    \r
+    /**\r
+     * @return the default font size, in case its not set in the textrun\r
+     */\r
+    double getDefaultFontSize();\r
+    \r
+    /**\r
+     * Returns the alignment that is applied to the paragraph.\r
+     *\r
+     * If this attribute is omitted, then a value of left is implied.\r
+     * @return ??? alignment that is applied to the paragraph\r
+     */\r
+    TextAlign getTextAlign();\r
+    \r
+    /**\r
+     * @return the bullet style of the paragraph, if {@code null} then no bullets are used \r
+     */\r
+    BulletStyle getBulletStyle();\r
+    \r
+    TextShape getParentShape();\r
+}\r
index ae1a1347712e0fe0898d7cb7c5b0e63656758a60..87758c105fe637abb04d70f699d2229bccf7f649 100644 (file)
 
 package org.apache.poi.sl.usermodel;
 
+import java.awt.Color;
+
 /**
  * Some text.
  *
  * TODO - decide on how we do rich text stuff
  */
 public interface TextRun {
-       public String getText();
+    enum TextCap {
+        NONE,
+        SMALL,
+        ALL
+    }
+    
+    public String getText();
        public void setText(String text);
 
-       // TODO - rich text formatting stuff
+       TextCap getTextCap();
+       
+       Color getFontColor();
+       double getFontSize();
+       String getFontFamily();
+       
+       boolean isBold();
+       boolean isItalic();
+       boolean isUnderline();
+       boolean isStrikethrough();
+       boolean isSubscript();
+       boolean isSuperscript();
+       
+       /**
+        * @return the pitch and family id or -1 if not applicable
+        */
+       byte getPitchAndFamily();
 }
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/TextShape.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/TextShape.java
new file mode 100644 (file)
index 0000000..68fff47
--- /dev/null
@@ -0,0 +1,116 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+\r
+\r
+public interface TextShape extends SimpleShape, Iterable<TextParagraph>  {\r
+    /**\r
+     * Vertical Text Types\r
+     */\r
+    public enum TextDirection {\r
+        /**\r
+         * Horizontal text. This should be default.\r
+         */\r
+        HORIZONTAL,\r
+        /**\r
+         * Vertical orientation.\r
+         * (each line is 90 degrees rotated clockwise, so it goes\r
+         * from top to bottom; each next line is to the left from\r
+         * the previous one).\r
+         */\r
+        VERTICAL,\r
+        /**\r
+         * Vertical orientation.\r
+         * (each line is 270 degrees rotated clockwise, so it goes\r
+         * from bottom to top; each next line is to the right from\r
+         * the previous one).\r
+         */\r
+        VERTICAL_270,\r
+        /**\r
+         * Determines if all of the text is vertical\r
+         * ("one letter on top of another").\r
+         */\r
+        STACKED;\r
+    }\r
+\r
+    /**\r
+     * Specifies alist of auto-fit types.\r
+     * <p>\r
+     * Autofit specofies that a shape should be auto-fit to fully contain the text described within it.\r
+     * Auto-fitting is when text within a shape is scaled in order to contain all the text inside\r
+     * </p>\r
+     */\r
+    public enum TextAutofit {\r
+        /**\r
+         * Specifies that text within the text body should not be auto-fit to the bounding box.\r
+         * Auto-fitting is when text within a text box is scaled in order to remain inside\r
+         * the text box.\r
+         */\r
+        NONE,\r
+        /**\r
+         * Specifies that text within the text body should be normally auto-fit to the bounding box.\r
+         * Autofitting is when text within a text box is scaled in order to remain inside the text box.\r
+         *\r
+         * <p>\r
+         * <em>Example:</em> Consider the situation where a user is building a diagram and needs\r
+         * to have the text for each shape that they are using stay within the bounds of the shape.\r
+         * An easy way this might be done is by using NORMAL autofit\r
+         * </p>\r
+         */\r
+        NORMAL,\r
+        /**\r
+         * Specifies that a shape should be auto-fit to fully contain the text described within it.\r
+         * Auto-fitting is when text within a shape is scaled in order to contain all the text inside.\r
+         *\r
+         * <p>\r
+         * <em>Example:</em> Consider the situation where a user is building a diagram and needs to have\r
+         * the text for each shape that they are using stay within the bounds of the shape.\r
+         * An easy way this might be done is by using SHAPE autofit\r
+         * </p>\r
+         */\r
+        SHAPE\r
+    }    \r
+    \r
+    /**\r
+     * @return text shape margin\r
+     */\r
+    Insets2D getInsets();\r
+    \r
+    /**\r
+     * Compute the cumulative height occupied by the text\r
+     */\r
+    double getTextHeight();\r
+    \r
+    /**\r
+     * Returns the type of vertical alignment for the text.\r
+     *\r
+     * @return the type of vertical alignment\r
+     */\r
+    VerticalAlignment getVerticalAlignment();\r
+    \r
+    /**\r
+     * @return whether to wrap words within the bounding rectangle\r
+     */\r
+    boolean getWordWrap();\r
+    \r
+    /**\r
+     * @return vertical orientation of the text\r
+     */\r
+    TextDirection getTextDirection();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/TexturePaint.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/TexturePaint.java
new file mode 100644 (file)
index 0000000..135b69b
--- /dev/null
@@ -0,0 +1,37 @@
+/* ====================================================================\r
+   Licensed to the Apache Software Foundation (ASF) under one or more\r
+   contributor license agreements.  See the NOTICE file distributed with\r
+   this work for additional information regarding copyright ownership.\r
+   The ASF licenses this file to You under the Apache License, Version 2.0\r
+   (the "License"); you may not use this file except in compliance with\r
+   the License.  You may obtain a copy of the License at\r
+\r
+       http://www.apache.org/licenses/LICENSE-2.0\r
+\r
+   Unless required by applicable law or agreed to in writing, software\r
+   distributed under the License is distributed on an "AS IS" BASIS,\r
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+   See the License for the specific language governing permissions and\r
+   limitations under the License.\r
+==================================================================== */\r
+\r
+package org.apache.poi.sl.usermodel;\r
+\r
+import java.io.InputStream;\r
+\r
+public interface TexturePaint extends PaintStyle {\r
+    /**\r
+     * @return the raw image stream\r
+     */\r
+    InputStream getImageData();\r
+\r
+    /**\r
+     * @return the content type of the image data\r
+     */\r
+    String getContentType();\r
+    \r
+    /**\r
+     * @return the alpha mask in percents [0..100000]\r
+     */\r
+    int getAlpha();\r
+}\r
diff --git a/src/scratchpad/src/org/apache/poi/sl/usermodel/VerticalAlignment.java b/src/scratchpad/src/org/apache/poi/sl/usermodel/VerticalAlignment.java
new file mode 100644 (file)
index 0000000..540bf2e
--- /dev/null
@@ -0,0 +1,71 @@
+/*\r
+ *  ====================================================================\r
+ *    Licensed to the Apache Software Foundation (ASF) under one or more\r
+ *    contributor license agreements.  See the NOTICE file distributed with\r
+ *    this work for additional information regarding copyright ownership.\r
+ *    The ASF licenses this file to You under the Apache License, Version 2.0\r
+ *    (the "License"); you may not use this file except in compliance with\r
+ *    the License.  You may obtain a copy of the License at\r
+ *\r
+ *        http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *    Unless required by applicable law or agreed to in writing, software\r
+ *    distributed under the License is distributed on an "AS IS" BASIS,\r
+ *    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *    See the License for the specific language governing permissions and\r
+ *    limitations under the License.\r
+ * ====================================================================\r
+ */\r
+package org.apache.poi.sl.usermodel;\r
+\r
+/**\r
+ * Specifies a list of available anchoring types for text\r
+ * \r
+ * @author Yegor Kozlov\r
+ */\r
+public enum VerticalAlignment {\r
+    /**\r
+     * Anchor the text at the top of the bounding rectangle\r
+     */\r
+    TOP,\r
+\r
+    /**\r
+     * Anchor the text at the middle of the bounding rectangle\r
+     */\r
+    MIDDLE,\r
+\r
+    /**\r
+     * Anchor the text at the bottom of the bounding rectangle.\r
+     */\r
+    BOTTOM,\r
+\r
+    /**\r
+     * Anchor the text so that it is justified vertically.\r
+     * <p>\r
+     * When text is horizontal, this spaces out the actual lines of\r
+     * text and is almost always identical in behavior to\r
+     * {@link #DISTRIBUTED} (special case: if only 1 line, then anchored at top).\r
+     * </p>\r
+     * <p>\r
+     * When text is vertical, then it justifies the letters\r
+     * vertically. This is different than {@link #DISTRIBUTED},\r
+     * because in some cases such as very little text in a line,\r
+     * it will not justify.\r
+     * </p>\r
+     */\r
+    JUSTIFIED,\r
+\r
+    /**\r
+     * Anchor the text so that it is distributed vertically.\r
+     * <p>\r
+     * When text is horizontal, this spaces out the actual lines\r
+     * of text and is almost always identical in behavior to\r
+     * {@link #JUSTIFIED} (special case: if only 1 line, then anchored in middle).\r
+     * </p>\r
+     * <p>\r
+     * When text is vertical, then it distributes the letters vertically.\r
+     * This is different than {@link #JUSTIFIED}, because it always forces distribution\r
+     * of the words, even if there are only one or two words in a line.\r
+     */\r
+    DISTRIBUTED\r
+}\r
index 41c5c58a3fc2c17630a3d8be85d55ad52e27b2c4..29bd16f8b7dbbdb95cd51bd6e6fef428ed8f6f8b 100644 (file)
@@ -35,6 +35,7 @@ import org.apache.poi.ddf.EscherSimpleProperty;
 import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.record.Document;
 import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.junit.Test;
 
 
@@ -59,7 +60,7 @@ public final class TestBackground {
         assertTrue(slide.getFollowMasterBackground());
         assertEquals(Fill.FILL_SOLID, slide.getBackground().getFill().getFillType());
 
-        Shape shape = new AutoShape(ShapeTypes.Rectangle);
+        Shape shape = new AutoShape(ShapeType.RECT);
         assertEquals(Fill.FILL_SOLID, shape.getFill().getFillType());
     }
 
@@ -114,7 +115,7 @@ public final class TestBackground {
         fill.setFillType(Fill.FILL_PICTURE);
         fill.setPictureData(idx);
 
-        shape = new AutoShape(ShapeTypes.Rectangle);
+        shape = new AutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
         fill.setFillType(Fill.FILL_SOLID);
@@ -130,7 +131,7 @@ public final class TestBackground {
         fill.setBackgroundColor(Color.green);
         fill.setForegroundColor(Color.red);
 
-        shape = new AutoShape(ShapeTypes.Rectangle);
+        shape = new AutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
         fill.setFillType(Fill.FILL_BACKGROUND);
@@ -144,7 +145,7 @@ public final class TestBackground {
         fill.setFillType(Fill.FILL_TEXTURE);
         fill.setPictureData(idx);
 
-        shape = new AutoShape(ShapeTypes.Rectangle);
+        shape = new AutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
         fill.setFillType(Fill.FILL_PICTURE);
@@ -160,7 +161,7 @@ public final class TestBackground {
         fill.setBackgroundColor(Color.white);
         fill.setForegroundColor(Color.darkGray);
 
-        shape = new AutoShape(ShapeTypes.Rectangle);
+        shape = new AutoShape(ShapeType.RECT);
         shape.setAnchor(new java.awt.Rectangle(100, 100, 200, 200));
         fill = shape.getFill();
         fill.setFillType(Fill.FILL_SHADE);
index b3e4f6ac9952902f71dae7ba5f34427195426353..10ff88da6b689a6952cd92fb8dc5d7ab121fa35a 100644 (file)
@@ -41,6 +41,7 @@ import org.apache.poi.ddf.EscherSimpleProperty;
 import org.apache.poi.hslf.HSLFSlideShow;
 import org.apache.poi.hslf.usermodel.RichTextRun;
 import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeType;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -81,7 +82,7 @@ public final class TestShapes {
         line.setLineColor(Color.red);
         slide.addShape(line);
 
-        AutoShape ellipse = new AutoShape(ShapeTypes.Ellipse);
+        AutoShape ellipse = new AutoShape(ShapeType.ELLIPSE);
         java.awt.Rectangle ellipseAnchor = new Rectangle(320, 154, 55, 111);
         ellipse.setAnchor(ellipseAnchor);
         ellipse.setLineWidth(2);
@@ -334,7 +335,7 @@ public final class TestShapes {
 
     @Test
     public void lineWidth() {
-        SimpleShape sh = new AutoShape(ShapeTypes.RightTriangle);
+        SimpleShape sh = new AutoShape(ShapeType.RT_TRIANGLE);
 
         EscherOptRecord opt = sh.getEscherOptRecord();
         EscherSimpleProperty prop = SimpleShape.getEscherProperty(opt, EscherProperties.LINESTYLE__LINEWIDTH);
index 48b6df54a6af0eda8b186a40d0fa8a5b1a0c17b4..928f1e4508f113e0af878b754213885c0937bd26 100644 (file)
 
 package org.apache.poi.hslf.model;
 
-import junit.framework.TestCase;
-
-import java.io.*;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertSame;
+import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
-import org.apache.poi.hslf.usermodel.SlideShow;
-import org.apache.poi.hslf.record.TextHeaderAtom;
 import org.apache.poi.POIDataSamples;
+import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.hslf.usermodel.SlideShow;
+import org.apache.poi.sl.usermodel.ShapeType;
+import org.junit.Test;
 
 /**
  * Verify behavior of <code>TextShape</code> and its sub-classes
  *
  * @author Yegor Kozlov
  */
-public final class TestTextShape extends TestCase {
+public final class TestTextShape {
     private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
 
-    public void testCreateAutoShape(){
-        TextShape shape = new AutoShape(ShapeTypes.Trapezoid);
+    @Test
+    public void createAutoShape(){
+        TextShape shape = new AutoShape(ShapeType.TRAPEZOID);
         assertNull(shape.getTextRun());
         assertNull(shape.getText());
         assertNull(shape.getEscherTextboxWrapper());
@@ -50,7 +62,8 @@ public final class TestTextShape extends TestCase {
         assertEquals(-1, run.getIndex());
     }
 
-    public void testCreateTextBox(){
+    @Test
+    public void createTextBox(){
         TextShape shape = new TextBox();
         TextRun run = shape.getTextRun();
         assertNotNull(run);
@@ -70,10 +83,11 @@ public final class TestTextShape extends TestCase {
      *  - normal TextBox object
      *  - text in auto-shapes
      */
-    public void testRead() throws IOException {
+    @Test
+    public void read() throws IOException {
         SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text_shapes.ppt"));
 
-        ArrayList lst1 = new ArrayList();
+        List<String> lst1 = new ArrayList<String>();
         Slide slide = ppt.getSlides()[0];
         Shape[] shape = slide.getShapes();
         for (int i = 0; i < shape.length; i++) {
@@ -83,24 +97,24 @@ public final class TestTextShape extends TestCase {
             assertNotNull(run);
             int runType = run.getRunType();
 
-            int type = shape[i].getShapeType();
+            ShapeType type = shape[i].getShapeType();
             switch (type){
-                case ShapeTypes.TextBox:
+                case TEXT_BOX:
                     assertEquals("Text in a TextBox", run.getText());
                     break;
-                case ShapeTypes.Rectangle:
+                case RECT:
                     if(runType == TextHeaderAtom.OTHER_TYPE)
                         assertEquals("Rectangle", run.getText());
                     else if(runType == TextHeaderAtom.TITLE_TYPE)
                         assertEquals("Title Placeholder", run.getText());
                     break;
-                case ShapeTypes.Octagon:
+                case OCTAGON:
                     assertEquals("Octagon", run.getText());
                     break;
-                case ShapeTypes.Ellipse:
+                case ELLIPSE:
                     assertEquals("Ellipse", run.getText());
                     break;
-                case ShapeTypes.RoundRectangle:
+                case ROUND_RECT:
                     assertEquals("RoundRectangle", run.getText());
                     break;
                 default:
@@ -110,7 +124,7 @@ public final class TestTextShape extends TestCase {
             lst1.add(run.getText());
         }
 
-        ArrayList lst2 = new ArrayList();
+        List<String> lst2 = new ArrayList<String>();
         TextRun[] run = slide.getTextRuns();
         for (int i = 0; i < run.length; i++) {
             lst2.add(run[i].getText());
@@ -119,7 +133,8 @@ public final class TestTextShape extends TestCase {
         assertTrue(lst1.containsAll(lst2));
     }
 
-    public void testReadWrite() throws IOException {
+    @Test
+    public void readWrite() throws IOException {
         SlideShow ppt = new SlideShow();
         Slide slide =  ppt.createSlide();
 
@@ -130,7 +145,7 @@ public final class TestTextShape extends TestCase {
 
         shape1.moveTo(100, 100);
 
-        TextShape shape2 = new AutoShape(ShapeTypes.Arrow);
+        TextShape shape2 = new AutoShape(ShapeType.RIGHT_ARROW);
         TextRun run2 = shape2.createTextRun();
         run2.setText("Testing TextShape");
         slide.addShape(shape2);
@@ -146,21 +161,22 @@ public final class TestTextShape extends TestCase {
 
         assertTrue(shape[0] instanceof TextShape);
         shape1 = (TextShape)shape[0];
-        assertEquals(ShapeTypes.TextBox, shape1.getShapeType());
+        assertEquals(ShapeType.TEXT_BOX, shape1.getShapeType());
         assertEquals("Hello, World!", shape1.getTextRun().getText());
 
         assertTrue(shape[1] instanceof TextShape);
         shape1 = (TextShape)shape[1];
-        assertEquals(ShapeTypes.Arrow, shape1.getShapeType());
+        assertEquals(ShapeType.RIGHT_ARROW, shape1.getShapeType());
         assertEquals("Testing TextShape", shape1.getTextRun().getText());
     }
 
-    public void testMargins() throws IOException {
+    @Test
+    public void margins() throws IOException {
         SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("text-margins.ppt"));
 
         Slide slide = ppt.getSlides()[0];
 
-        HashMap map = new HashMap();
+        Map<String,TextShape> map = new HashMap<String,TextShape>();
         Shape[] shape = slide.getShapes();
         for (int i = 0; i < shape.length; i++) {
             if(shape[i] instanceof TextShape){
@@ -171,32 +187,33 @@ public final class TestTextShape extends TestCase {
 
         TextShape tx;
 
-        tx = (TextShape)map.get("TEST1");
+        tx = map.get("TEST1");
         assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.39, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
 
-        tx = (TextShape)map.get("TEST2");
+        tx = map.get("TEST2");
         assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.39, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
 
-        tx = (TextShape)map.get("TEST3");
+        tx = map.get("TEST3");
         assertEquals(0.39, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.1, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
 
-        tx = (TextShape)map.get("TEST4");
+        tx = map.get("TEST4");
         assertEquals(0.1, tx.getMarginLeft()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.39, tx.getMarginRight()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginTop()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
         assertEquals(0.05, tx.getMarginBottom()*Shape.EMU_PER_POINT/Shape.EMU_PER_INCH, 0.01);
     }
 
-    public void test52599() throws IOException {
+    @Test
+    public void bug52599() throws IOException {
         SlideShow ppt = new SlideShow(_slTests.openResourceAsStream("52599.ppt"));
 
         Slide slide = ppt.getSlides()[0];
index 67d250a4b646ef575e1fbd3e1e65abed84242f10..6a2f3229c3a2be4afc833b0397872ecd58cf3f23 100644 (file)
@@ -653,7 +653,7 @@ public final class TestBugs {
             for (byte data[] : ep) {
                 EscherColorRef ecr = new EscherColorRef(data, 0, 4);
                 int rgb[] = ecr.getRGB();
-                double pos = Units.fixedPointToDecimal(LittleEndian.getInt(data, 4));
+                double pos = Units.fixedPointToDouble(LittleEndian.getInt(data, 4));
                 assertEquals((int)exp[i][0], rgb[0]);
                 assertEquals((int)exp[i][1], rgb[1]);
                 assertEquals((int)exp[i][2], rgb[2]);
diff --git a/src/types/definitions/dml-shapeGeometry.xjb b/src/types/definitions/dml-shapeGeometry.xjb
new file mode 100644 (file)
index 0000000..43a0c2a
--- /dev/null
@@ -0,0 +1,7 @@
+<jxb:bindings version="1.0"\r
+       xmlns:xs="http://www.w3.org/2001/XMLSchema"\r
+       xmlns:jxb="http://java.sun.com/xml/ns/jaxb"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xsi:schemaLocation="http://java.sun.com/xml/ns/jaxb http://java.sun.com/xml/ns/jaxb/bindingschema_2_0.xsd">\r
+       <jxb:globalBindings generateIsSetMethod="true"/>\r
+</jxb:bindings>\r