     {
         return _blurY;
     }
-
+    
     /**
      *  @private
      */
     public function set blurY(value:Number):void
     {
-    	if (_blurY != value)
-    	{
-			_blurY = value;
-			changed = true;
-		}
-    }
-
+        if (_blurY != value)
+        {
+            _blurY = value;
+            changed = true;
+        }
+    }
+    
     //--------------------------------------------------------------------------
     //
     //  Methods
     //
     //--------------------------------------------------------------------------
-	
+    
     /**
      *  Renders the shadow on the screen. 
      *  
      *  @param g The Graphics object on which to draw the shadow.
      *  
      *  @param x The horizontal offset of the drop shadow,
-	 *  based on the Graphics object's position.
+     *  based on the Graphics object's position.
      *  
      *  @param y The vertical offset of the drop shadow,
-	 *  based on the Graphics object's position.
+     *  based on the Graphics object's position.
      *  
      *  @param width The width of the shadow, in pixels.
      *  
      *  @param height The height of the shadow, in pixels.
-    *  
-    *  @langversion 3.0
-    *  @playerversion Flash 9
-    *  @playerversion AIR 1.1
-    *  @productversion Flex 3
-    */
-	public function drawShadow(g:Graphics, 
-							   x:Number, y:Number, 
-							   width:Number, height:Number):void
-	{	
-		// If any parameters of the shadow have changed,
-		// then regenerate the offscreen bitmaps.
-		if (changed)
-		{
-			createShadowBitmaps();
-			changed = false;
-		}
-		
-		width = Math.ceil(width);
-		height = Math.ceil(height);
-		
-		// Determine the thickness of the shadow along each of the edges
-		var leftThickness:int = leftShadow ? leftShadow.width : 0;
-		var rightThickness:int = rightShadow ? rightShadow.width : 0;
-		var topThickness:int = topShadow ? topShadow.height : 0;
-		var bottomThickness:int = bottomShadow ? bottomShadow.height : 0;
-		
-		var widthThickness:int = leftThickness + rightThickness;
-		var heightThickness:int = topThickness + bottomThickness;
-		var maxCornerHeight:Number = (height + heightThickness) / 2;
-		var maxCornerWidth:Number = (width + widthThickness) / 2;
-
-		var matrix:Matrix = new Matrix();
-
-		// Copy the corners of the shadow bitmap onto the graphics object
-		if (leftShadow || topShadow)
-		{
-			var tlWidth:Number = Math.min(tlRadius + widthThickness,
-										  maxCornerWidth);
-			var tlHeight:Number = Math.min(tlRadius + heightThickness,
-										   maxCornerHeight);
-
-			matrix.tx = x - leftThickness;
-			matrix.ty = y - topThickness;
-
-			g.beginBitmapFill(shadow, matrix);
-			g.drawRect(x - leftThickness, y - topThickness, tlWidth, tlHeight);
-			g.endFill();
-		}
-		
-		if (rightShadow || topShadow)
-		{
-			var trWidth:Number = Math.min(trRadius + widthThickness,
-										  maxCornerWidth);
-			var trHeight:Number = Math.min(trRadius + heightThickness,
-										   maxCornerHeight);
-
-			matrix.tx = x + width + rightThickness - shadow.width;
-			matrix.ty = y - topThickness;			
-
-			g.beginBitmapFill(shadow, matrix);
-			g.drawRect(x + width + rightThickness - trWidth,
-					   y - topThickness,
-					   trWidth, trHeight);
-			g.endFill();
-		}
-		
-		if (leftShadow || bottomShadow)
-		{
-			var blWidth:Number = Math.min(blRadius + widthThickness,
-										  maxCornerWidth);
-			var blHeight:Number = Math.min(blRadius + heightThickness,
-										   maxCornerHeight);
-
-			matrix.tx = x - leftThickness;
-			matrix.ty = y + height + bottomThickness - shadow.height;
-
-			g.beginBitmapFill(shadow, matrix);
-			g.drawRect(x - leftThickness, 
-					   y + height + bottomThickness - blHeight,
-					   blWidth, blHeight);
-			g.endFill();
-		}
-			
-		if (rightShadow || bottomShadow)
-		{
-			var brWidth:Number = Math.min(brRadius + widthThickness,
-										  maxCornerWidth);
-			var brHeight:Number = Math.min(brRadius + heightThickness,
-										   maxCornerHeight);
-
-			matrix.tx = x + width + rightThickness - shadow.width; 
-			matrix.ty = y + height + bottomThickness - shadow.height; 
-
-			g.beginBitmapFill(shadow, matrix);
-			g.drawRect(x + width + rightThickness - brWidth, 
-					   y + height + bottomThickness - brHeight,
-					   brWidth, brHeight);
-			g.endFill();
-		}
-
-		// Copy the sides of the shadow bitmap onto the graphics object
-		if (leftShadow)
-		{		
-			matrix.tx = x - leftThickness;
-			matrix.ty = 0;
-
-			g.beginBitmapFill(leftShadow, matrix);
-			g.drawRect(x - leftThickness, 
-					   y - topThickness + tlHeight,
-					   leftThickness,
-					   height + topThickness +
-					   bottomThickness - tlHeight - blHeight);
-			g.endFill();
-		}
-
-		if (rightShadow)
-		{		
-			matrix.tx = x + width;
-			matrix.ty = 0;
-
-			g.beginBitmapFill(rightShadow, matrix);
-			g.drawRect(x + width,
-					   y - topThickness + trHeight,
-					   rightThickness,
-					   height + topThickness +
-					   bottomThickness - trHeight - brHeight);
-			g.endFill();
-		}
-		
-		if (topShadow)
-		{		
-			matrix.tx = 0;
-			matrix.ty = y - topThickness;
-
-			g.beginBitmapFill(topShadow, matrix);
-			g.drawRect(x - leftThickness + tlWidth,
-					   y - topThickness, 
-					   width + leftThickness +
-					   rightThickness - tlWidth - trWidth,
-					   topThickness);
-			g.endFill();
-		}
-
-		if (bottomShadow)
-		{
-			matrix.tx = 0;
-			matrix.ty = y + height;
-
-			g.beginBitmapFill(bottomShadow, matrix);
-			g.drawRect(x - leftThickness + blWidth,
-					   y + height,
-					   width + leftThickness +
-					   rightThickness - blWidth - brWidth, 
-					   bottomThickness);
-			g.endFill();		
-		}
-	}	
-
-	/**
-	 *  @private
-	 *  Render the drop shadow for the rounded rectangle
-	 *  in a small BitmapData object.
-	 *  The shadow will be copied onto the graphics object
-	 *  passed into drawDropShadow().
-	 */
-	private function createShadowBitmaps():void
-	{		
-		// Create a Shape containing a round rectangle that the
-		// specified corner radii and very short sides.
-		var roundRectWidth:Number = Math.max(tlRadius, blRadius) + 
-								    3 * Math.max(Math.abs(distance), 2) + 
-									Math.max(trRadius, brRadius);
-		var roundRectHeight:Number = Math.max(tlRadius, trRadius) +
-									 3 * Math.max(Math.abs(distance), 2) +
-									 Math.max(blRadius, brRadius);
-
-		if (roundRectWidth < 0 || roundRectHeight < 0)
-			return;
-			
-		var roundRect:Shape = new FlexShape();
-		var g:Graphics = roundRect.graphics;
-		g.beginFill(0xFFFFFF);
-		GraphicsUtil.drawRoundRectComplex(
-			g, 0, 0, roundRectWidth, roundRectHeight,
-			tlRadius, trRadius, blRadius, brRadius);
-		g.endFill();
-		
-		// Copy the round rectangle into a BitmapData object
-		var roundRectBitmap:BitmapData = new BitmapData(
-			roundRectWidth,
-			roundRectHeight,
-			true,
-			0x00000000);
-		roundRectBitmap.draw(roundRect, new Matrix());
-
-		// Get the size of the drop shadow that will be cast by this
-		// rounded rectangle.
-		var filter:DropShadowFilter = 
-			new DropShadowFilter(distance, angle, color, alpha, blurX, blurY);
-		filter.knockout = true;	
-		var inputRect:Rectangle = new Rectangle(0, 0, 
-			roundRectWidth, roundRectHeight);
-		var outputRect:Rectangle = 
-			roundRectBitmap.generateFilterRect(inputRect, filter);
-	
-		// Determine the thickness of each edge of the drop shadow
-		var leftThickness:Number = inputRect.left - outputRect.left;
-		var rightThickness:Number = outputRect.right - inputRect.right;
-		var topThickness:Number = inputRect.top - outputRect.top;
-		var bottomThickness:Number = outputRect.bottom - inputRect.bottom;
-
-		// Create a BitmapData object large enough to contain the
-		// rounded rectangle and its drop shadow.  Render the drop
-		// shadow into this BitmapData
-		shadow = new BitmapData(outputRect.width, outputRect.height);
-		shadow.applyFilter(roundRectBitmap, inputRect, 
-			new Point(leftThickness, topThickness),
-			filter);
-			
-		// For each of the four sides of the round rectangle, create a copy
-		// of the drop shadow in a separate BitmapData object
-		var origin:Point = new Point(0, 0);
-		var rect:Rectangle = new Rectangle();
-		
-		if (leftThickness > 0)
-		{
-			rect.x = 0;
-			rect.y = tlRadius + topThickness + bottomThickness;
-			rect.width = leftThickness;
-			rect.height = 1;
-			
-			leftShadow = new BitmapData(leftThickness, 1);
-			leftShadow.copyPixels(shadow, rect, origin);
-		}
-		else
-		{
-			leftShadow = null;
-		}
-		
-		if (rightThickness > 0)
-		{
-			rect.x = shadow.width - rightThickness;
-			rect.y = trRadius + topThickness + bottomThickness;
-			rect.width = rightThickness;
-			rect.height = 1;
-			
-			rightShadow = new BitmapData(rightThickness, 1);
-			rightShadow.copyPixels(shadow, rect, origin);
-		}
-		else
-		{
-			rightShadow = null;
-		}
-		
-		if (topThickness > 0)
-		{
-			rect.x = tlRadius + leftThickness + rightThickness;
-			rect.y = 0;
-			rect.width = 1;
-			rect.height = topThickness;
-			
-			topShadow = new BitmapData(1, topThickness);
-			topShadow.copyPixels(shadow, rect, origin);
-		}
-		else
-		{
-			topShadow = null;
-		}
-		
-		if (bottomThickness > 0)
-		{
-			rect.x = blRadius + leftThickness + rightThickness;
-			rect.y = shadow.height - bottomThickness;
-			rect.width = 1;
-			rect.height = bottomThickness;
-			
-			bottomShadow = new BitmapData(1, bottomThickness);
-			bottomShadow.copyPixels(shadow, rect, origin);
-		}
-		else
-		{
-			bottomShadow = null;
-		}		
-	}	
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function drawShadow(g:Graphics, 
+                               x:Number, y:Number, 
+                               width:Number, height:Number):void
+    {	
+        // If any parameters of the shadow have changed,
+        // then regenerate the offscreen bitmaps.
+        if (changed)
+        {
+            createShadowBitmaps();
+            changed = false;
+        }
+        
+        width = Math.ceil(width);
+        height = Math.ceil(height);
+        
+        // Determine the thickness of the shadow along each of the edges
+        var leftThickness:int = leftShadow ? leftShadow.width : 0;
+        var rightThickness:int = rightShadow ? rightShadow.width : 0;
+        var topThickness:int = topShadow ? topShadow.height : 0;
+        var bottomThickness:int = bottomShadow ? bottomShadow.height : 0;
+        
+        var widthThickness:int = leftThickness + rightThickness;
+        var heightThickness:int = topThickness + bottomThickness;
+        var maxCornerHeight:Number = (height + heightThickness) / 2;
+        var maxCornerWidth:Number = (width + widthThickness) / 2;
+        
+        var matrix:Matrix = new Matrix();
+        
+        // Copy the corners of the shadow bitmap onto the graphics object
+        if (leftShadow || topShadow)
+        {
+            var tlWidth:Number = Math.min(tlRadius + widthThickness,
+                maxCornerWidth);
+            var tlHeight:Number = Math.min(tlRadius + heightThickness,
+                maxCornerHeight);
+            
+            matrix.tx = x - leftThickness;
+            matrix.ty = y - topThickness;
+            
+            // Do not repeat the bitmap fill, its edge pixels will be used
+            // to fill the remaining space
+            g.beginBitmapFill(shadow, matrix, false);
+            g.drawRect(x - leftThickness, y - topThickness, tlWidth, tlHeight);
+            g.endFill();
+        }
+        
+        if (rightShadow || topShadow)
+        {
+            var trWidth:Number = Math.min(trRadius + widthThickness,
+                maxCornerWidth);
+            var trHeight:Number = Math.min(trRadius + heightThickness,
+                maxCornerHeight);
+            
+            matrix.tx = x + width + rightThickness - shadow.width;
+            matrix.ty = y - topThickness;			
+            
+            g.beginBitmapFill(shadow, matrix, false);
+            g.drawRect(x + width + rightThickness - trWidth,
+                y - topThickness,
+                trWidth, trHeight);
+            g.endFill();
+        }
+        
+        if (leftShadow || bottomShadow)
+        {
+            var blWidth:Number = Math.min(blRadius + widthThickness,
+                maxCornerWidth);
+            var blHeight:Number = Math.min(blRadius + heightThickness,
+                maxCornerHeight);
+            
+            matrix.tx = x - leftThickness;
+            matrix.ty = y + height + bottomThickness - shadow.height;
+            
+            g.beginBitmapFill(shadow, matrix, false);
+            g.drawRect(x - leftThickness, 
+                y + height + bottomThickness - blHeight,
+                blWidth, blHeight);
+            g.endFill();
+        }
+        
+        if (rightShadow || bottomShadow)
+        {
+            var brWidth:Number = Math.min(brRadius + widthThickness,
+                maxCornerWidth);
+            var brHeight:Number = Math.min(brRadius + heightThickness,
+                maxCornerHeight);
+            
+            matrix.tx = x + width + rightThickness - shadow.width; 
+            matrix.ty = y + height + bottomThickness - shadow.height; 
+            
+            g.beginBitmapFill(shadow, matrix, false);
+            g.drawRect(x + width + rightThickness - brWidth, 
+                y + height + bottomThickness - brHeight,
+                brWidth, brHeight);
+            g.endFill();
+        }
+        
+        // Copy the sides of the shadow bitmap onto the graphics object
+        if (leftShadow)
+        {		
+            matrix.tx = x - leftThickness;
+            matrix.ty = 0;
+            
+            g.beginBitmapFill(leftShadow, matrix, false);
+            g.drawRect(x - leftThickness, 
+                y - topThickness + tlHeight,
+                leftThickness,
+                height + topThickness +
+                bottomThickness - tlHeight - blHeight);
+            g.endFill();
+        }
+        
+        if (rightShadow)
+        {		
+            matrix.tx = x + width;
+            matrix.ty = 0;
+            
+            g.beginBitmapFill(rightShadow, matrix, false);
+            g.drawRect(x + width,
+                y - topThickness + trHeight,
+                rightThickness,
+                height + topThickness +
+                bottomThickness - trHeight - brHeight);
+            g.endFill();
+        }
+        
+        if (topShadow)
+        {		
+            matrix.tx = 0;
+            matrix.ty = y - topThickness;
+            
+            g.beginBitmapFill(topShadow, matrix, false);
+            g.drawRect(x - leftThickness + tlWidth,
+                y - topThickness, 
+                width + leftThickness +
+                rightThickness - tlWidth - trWidth,
+                topThickness);
+            g.endFill();
+        }
+        
+        if (bottomShadow)
+        {
+            matrix.tx = 0;
+            matrix.ty = y + height;
+            
+            g.beginBitmapFill(bottomShadow, matrix, false);
+            g.drawRect(x - leftThickness + blWidth,
+                y + height,
+                width + leftThickness +
+                rightThickness - blWidth - brWidth, 
+                bottomThickness);
+            g.endFill();		
+        }
+    }	
+    
+    /**
+     *  @private
+     *  Render the drop shadow for the rounded rectangle
+     *  in a small BitmapData object.
+     *  The shadow will be copied onto the graphics object
+     *  passed into drawDropShadow().
+     */
+    private function createShadowBitmaps():void
+    {		
+        // Create a Shape containing a round rectangle that the
+        // specified corner radii and very short sides.
+        var roundRectWidth:Number = Math.max(tlRadius, blRadius) + 
+            3 * Math.max(Math.abs(distance), 2) + 
+            Math.max(trRadius, brRadius);
+        var roundRectHeight:Number = Math.max(tlRadius, trRadius) +
+            3 * Math.max(Math.abs(distance), 2) +
+            Math.max(blRadius, brRadius);
+        
+        if (roundRectWidth < 0 || roundRectHeight < 0)
+            return;
+        
+        var roundRect:Shape = new FlexShape();
+        var g:Graphics = roundRect.graphics;
+        g.beginFill(0xFFFFFF);
+        GraphicsUtil.drawRoundRectComplex(
+            g, 0, 0, roundRectWidth, roundRectHeight,
+            tlRadius, trRadius, blRadius, brRadius);
+        g.endFill();
+        
+        // Copy the round rectangle into a BitmapData object
+        var roundRectBitmap:BitmapData = new BitmapData(
+            roundRectWidth,
+            roundRectHeight,
+            true,
+            0x00000000);
+        roundRectBitmap.draw(roundRect, new Matrix());
+        
+        // Get the size of the drop shadow that will be cast by this
+        // rounded rectangle.
+        var filter:DropShadowFilter = 
+            new DropShadowFilter(distance, angle, color, alpha, blurX, blurY);
+        filter.knockout = true;	
+        var inputRect:Rectangle = new Rectangle(0, 0, 
+            roundRectWidth, roundRectHeight);
+        var outputRect:Rectangle = 
+            roundRectBitmap.generateFilterRect(inputRect, filter);
+        
+        // Determine the thickness of each edge of the drop shadow
+        var leftThickness:Number = inputRect.left - outputRect.left;
+        var rightThickness:Number = outputRect.right - inputRect.right;
+        var topThickness:Number = inputRect.top - outputRect.top;
+        var bottomThickness:Number = outputRect.bottom - inputRect.bottom;
+        
+        // Create a BitmapData object large enough to contain the
+        // rounded rectangle and its drop shadow.  Render the drop
+        // shadow into this BitmapData
+        shadow = new BitmapData(outputRect.width, outputRect.height);
+        shadow.applyFilter(roundRectBitmap, inputRect, 
+            new Point(leftThickness, topThickness),
+            filter);
+        
+        // For each of the four sides of the round rectangle, create a copy
+        // of the drop shadow in a separate BitmapData object
+        var origin:Point = new Point(0, 0);
+        var rect:Rectangle = new Rectangle();
+        
+        if (leftThickness > 0)
+        {
+            rect.x = 0;
+            rect.y = tlRadius + topThickness + bottomThickness;
+            rect.width = leftThickness;
+            rect.height = 1;
+            
+            leftShadow = new BitmapData(leftThickness, 1);
+            leftShadow.copyPixels(shadow, rect, origin);
+        }
+        else
+        {
+            leftShadow = null;
+        }
+        
+        if (rightThickness > 0)
+        {
+            rect.x = shadow.width - rightThickness;
+            rect.y = trRadius + topThickness + bottomThickness;
+            rect.width = rightThickness;
+            rect.height = 1;
+            
+            rightShadow = new BitmapData(rightThickness, 1);
+            rightShadow.copyPixels(shadow, rect, origin);
+        }
+        else
+        {
+            rightShadow = null;
+        }
+        
+        if (topThickness > 0)
+        {
+            rect.x = tlRadius + leftThickness + rightThickness;
+            rect.y = 0;
+            rect.width = 1;
+            rect.height = topThickness;
+            
+            topShadow = new BitmapData(1, topThickness);
+            topShadow.copyPixels(shadow, rect, origin);
+        }
+        else
+        {
+            topShadow = null;
+        }
+        
+        if (bottomThickness > 0)
+        {
+            rect.x = blRadius + leftThickness + rightThickness;
+            rect.y = shadow.height - bottomThickness;
+            rect.width = 1;
+            rect.height = bottomThickness;
+            
+            bottomShadow = new BitmapData(1, bottomThickness);
+            bottomShadow.copyPixels(shadow, rect, origin);
+        }
+        else
+        {
+            bottomShadow = null;
+        }		
+    }	
 }
 
 }

public class RectangularDropShadow
{
    include "../core/Version.as";

    //--------------------------------------------------------------------------
    //
    //  Constructor
    //
    //--------------------------------------------------------------------------

    /**
     *  Constructor.
     *  

    {
        return _trRadius;
    }
    
    /**
     *  @private
     */
    public function set trRadius(value:Number):void
    {
        if (_trRadius != value)
        {
            _trRadius = value;
            changed = true;
        }
    }
    
    //----------------------------------
    //  blRadius
    //----------------------------------
    
    /**
     *  @private
     *  Storage for the blRadius property.
     */
    private var _blRadius:Number = 0;
    
    [Inspectable]
    
    /**
     *  The corner radius of the bottom left corner
     *  of the rounded rectangle that is casting the shadow.
     *  May be zero for non-rounded
     *  rectangles.
     *  
     *  @langversion 3.0
