Transferred from the Adobe Open Source Subversion Repository

Revision: 11247
Author:   klin@adobe.com
Date:     2009-10-28T21:59:11.963883Z

Log Message:
-----------
Fix for https://bugs.adobe.com/jira/browse/SDK-23184.

Updated a bunch of Style metadata ASDocs to describe different defaults between the Halo and Spark themes. Also, fixed a few typos along the way.

defaults.css - rearranged a few styles to be in alphabetical order
Button.as - removed extra emphasizedSkin style metadata
Panel.as - added spark theme to borderAlpha metadata

QE notes: None
Doc notes: None
Bugs: SDK-23184
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerNative.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/SkinStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/TextStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/menuClasses/MenuItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Tree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/colorPickerClasses/SwatchPanel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/PopUpMenuIcon.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/PaddingStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/fl/video/NCManagerDynamicStream.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/LinkBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/FocusStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/StrokedElement.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1259910 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -804,7 +804,8 @@
  *  Flex also sets the borderColor style of the component to this
  *  errorColor on a validation failure.
  *
- *  @default 0xFF0000
+ *  The default value for the Halo theme is 0xFF0000.
+ *  The default value for the Spark theme is 0xFE0000.
  *
  *  @langversion 3.0
  *  @playerversion Flash 9


From whiteboard/cframpton/adobe.next.  Fix truncateToFit so it makes a best guess on where to start the truncation rather than starting at the end of the string. This was always the intent but it was buggy.  SDK-26166.

git-svn-id: 7d913817b0a978d84de757191e4bce372605a781@1414954 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/UITextField.as
+++ frameworks/projects/framework/src/mx/core/UITextField.as
@@ -2434,10 +2434,16 @@
         if (originalText != "" && textWidth + TEXT_WIDTH_PADDING > w + 0.00000000000001)
         {
             // This should get us into the ballpark.
-            var s:String = super.text = originalText;
+            var s:String =
                 originalText.slice(0,
                     Math.floor((w / (textWidth + TEXT_WIDTH_PADDING)) * originalText.length));

+            // This doesn't seem correct but it preserves previous behavior.
+            // If one character doesn't fit the text is one character plus the
+            // truncation indicator rather than just the truncation indicator as you would expect.
+            if (s.length <= 1 && textWidth + TEXT_WIDTH_PADDING > w)
+                super.text = originalText.charAt(0) + truncationIndicator;
+
             while (s.length > 1 && textWidth + TEXT_WIDTH_PADDING > w)
             {
                 s = s.slice(0, -1);


Transferred from the Adobe Open Source Subversion Repository

Revision: 13026
Author:   jszeto@adobe.com
Date:     2009-12-17T01:51:29.158496Z

Log Message:
-----------
UITextField and UIFTETextField measurement fixes

http://bugs.adobe.com/jira/browse/SDK-24687 - DateField does not position month/year as expected in date dropDown
when scale is applied

UITextField and UIFTETextField were returning incorrect values for measuredHeight and measuredWidth when an ancestor was scaled.

UITextField works around a quirk of a scaled TextField. When using device fonts, textWidth and textHeight return a value modified by scale (when it really shouldn't).

I’ll use the term "scaledWidth" and "scaledHeight" to represent the actual pixel dimensions of a scaled textField. This is the dimensions of the textField as it appears on the screen.

textWidth = scaledWidth / scaleX
textHeight = scaledHeight / scaleX

To calculate the unscaled textWidth and textHeight, we need to multiply textWidth and textHeight by scaleX / scaleY.

unscaled textWidth = textWidth * scaleX / scaleY
unscaled textHeight = textHeight * scaleX / scaleY

UIFTETextField properly returns textWidth and textHeight properties even when scaled. So measuredWidth and measuredHeight can just use textWidth and textHeight when using device or embedded fonts.

DateChooser was measuring and laying itself out before it was added to the stage (which is true for all components in an application). Thus it was not getting the correct measurements for the month and year textFields. The fix is to listen for the addedToStage event and invalidate our size if scaleX or scaleY != 1.

QE notes: Add tests for scaled DateChooser and DateField
Doc notes: None
Bugs: SDK-24687
Reviewer: Alex
Tests run: checkintests, DateChooser, DateField
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/core/UIFTETextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1260067 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/UITextField.as
+++ frameworks/projects/framework/src/mx/core/UITextField.as
@@ -16,11 +16,13 @@
 import flash.display.DisplayObjectContainer;
 import flash.display.Sprite;
 import flash.events.Event;
+import flash.geom.Matrix;
 import flash.text.TextField;
 import flash.text.TextFieldType;
 import flash.text.TextFormat;
 import flash.text.TextFormatAlign;
 import flash.text.TextLineMetrics;
+
 import mx.automation.IAutomationObject;
 import mx.managers.ISystemManager;
 import mx.managers.IToolTipManagerClient;
@@ -1217,10 +1219,16 @@
     {
         validateNow();

-        if (!stage)
+        // If we use device fonts, then the unscaled height is
+        // textHeight * scaleX / scaleY
+
+        if (!stage || embedFonts)
             return textHeight + TEXT_HEIGHT_PADDING;

-        return textHeight * transform.concatenatedMatrix.d + TEXT_HEIGHT_PADDING;
+        var m:Matrix = transform.concatenatedMatrix;
+
+        return (textHeight * m.a
+                / m.d) + TEXT_HEIGHT_PADDING;
     }

     //----------------------------------
@@ -1287,10 +1295,15 @@
     {
         validateNow();

-        if (!stage)
+        // If we use device fonts, then the unscaled width is
+        // textWidth * scaleX / scaleY
+        if (!stage || embedFonts)
             return textWidth + TEXT_WIDTH_PADDING;

-        return textWidth * transform.concatenatedMatrix.a + TEXT_WIDTH_PADDING;
+        var m:Matrix = transform.concatenatedMatrix;
+
+        return (textWidth * m.a
+                / m.d) + TEXT_WIDTH_PADDING;
     }

     //----------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1279274 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/HGroup.as
+++ frameworks/projects/spark/src/spark/components/HGroup.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.components
 {


Fix stupid mistake with metadata names.

Fix stupid mistake with metadata names.

--- dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableClass.as
+++ dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableClass.as
@@ -7,10 +7,10 @@

 	public static var staticProperty2:String = "Value of first-level static property 2.";

-	[Cloneable]
+	[Copyable]
 	private var _writableField1:String = "Value of first-level writable field.";

-	[Cloneable]
+	[Copyable]
 	public var property1:String = "Value of first-level public property 1.";

 	public var property2:String = "Value of first-level public property 2.";


修复bug：tagID应该右移3位

--- as3/com/netease/protobuf/BaseFieldDescriptor.as
+++ as3/com/netease/protobuf/BaseFieldDescriptor.as
@@ -21,7 +21,7 @@
 		}
 		protected var tag:uint
 		public final function get tagNumber():uint {
-			return tag >>> 7
+			return tag >>> 3
 		}
 		public function get type():Class {
 			throw new IllegalOperationError("Not Implemented!")


Рефакторинг Destroyable

Рефакторинг Destroyable

--- src/main/org/shypl/common/util/DestroyableSprite.as
+++ src/main/org/shypl/common/util/DestroyableSprite.as
@@ -31,11 +31,11 @@
 			}
 		}

-		override public final function hasEventListener(type:String):Boolean {
+		override public function hasEventListener(type:String):Boolean {
 			return _destroyed ? false : super.hasEventListener(type);
 		}

-		override public final function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void {
+		override public function removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void {
 			if (!_destroyed) {
 				super.removeEventListener(type, listener, useCapture);

@@ -66,7 +66,7 @@
 			}
 		}

-		override public final function dispatchEvent(event:Event):Boolean {
+		override public function dispatchEvent(event:Event):Boolean {
 			return _destroyed ? false : super.dispatchEvent(event);
 		}


didn't go in with my changeset checkin for some reason, fixes LPP-3537

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@3797 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/core/LzNode.as
+++ WEB-INF/lps/lfc/core/LzNode.as
@@ -741,6 +741,7 @@
     // This should not happen
     if ($debug) {
         for (var p = this; p != canvas; p = p.immediateparent) {
+            if (p == null) break;
             if (p.__LZdeleted) {
                 Debug.error("%w.makeChild(%w, %w) when %w.__LZdeleted", this, e, async, p);
             }


replace isNaN

replace isNaN

--- src/com/kemsky/support/isNaNFast.as
+++ src/com/kemsky/support/isNaNFast.as
@@ -2,6 +2,7 @@
 {
     /**
      * Faster alternative to isNaN()
+     * Useless in fact, function call is more expensive than isNaN
      * @private
      */
     public function isNaNFast(target:*):Boolean


Transferred from the Adobe Open Source Subversion Repository

Revision: 18395
Author:   klin@adobe.com
Date:     2010-11-01T20:24:01.994827Z

Log Message:
-----------
Fixed an RTE when removing rows in GridLayout. It needed to check if the index is valid for removing elements. Also, removed logic in the dataProvider changed handler code that determined whether a visible element had changed. The collection changed handler now returns void. Lastly, I cleaned up some asdocs in DataGrid including adding the stretchCursor style metadata.

QE notes: No
Doc notes: No
Bugs: SDK-28205, SDK-28368
Reviewer: Hans
Tests run: cyclone server
Is noteworthy for integration: Yes, API change in GridLayout

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1278567 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/DataGrid.as
+++ frameworks/projects/spark/src/spark/components/DataGrid.as
@@ -64,8 +64,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="alternatingRowColors", type="Array", arrayType="uint", format="Color", inherit="no", theme="spark")]

@@ -76,8 +76,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="borderAlpha", type="Number", inherit="no", theme="spark", minValue="0.0", maxValue="1.0")]

@@ -88,8 +88,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="borderColor", type="uint", format="Color", inherit="no", theme="spark")]

@@ -100,8 +100,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="borderVisible", type="Boolean", inherit="no", theme="spark")]

@@ -110,8 +110,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="contentBackgroundAlpha", type="Number", inherit="yes", theme="spark", minValue="0.0", maxValue="1.0")]

@@ -122,10 +122,22 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="contentBackgroundColor", type="uint", format="Color", inherit="yes", theme="spark")]
+
+/**
+ *  The class to use as the skin for the cursor that indicates that a column
+ *  can be resized.
+ *  The default value is the "cursorStretch" symbol from the Assets.swf file.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Style(name="stretchCursor", type="Class", inherit="no")]

 include "../styles/metadata/BasicNonInheritingTextStyles.as"
 include "../styles/metadata/BasicInheritingTextStyles.as"
@@ -140,8 +152,8 @@
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
- *  @playerversion AIR 1.5
- *  @productversion Flex 4
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
  */
 [Style(name="defaultDataGridItemEditor", type="Class", inherit="no")]

@@ -213,11 +225,22 @@
  */
 [Style(name="verticalScrollPolicy", type="String", inherit="no", enumeration="off,on,auto")]

-
-
 //--------------------------------------
 //  Events
 //--------------------------------------
+
+/**
+ *  Dispatched by the grid skin part when the caret position, size, or
+ *  visibility has changed due to user interaction or being programmatically set.
+ *
+ *  @eventType spark.events.GridCaretEvent.CARET_CHANGE
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.0
+ *  @productversion Flex 4.5
+ */
+[Event(name="caretChange", type="spark.events.GridCaretEvent")]

 /**
  *  Dispatched by the grid skin part when the mouse button is pressed over a Grid cell.
@@ -338,18 +361,6 @@
  *  @productversion Flex 4.5
  */
 [Event(name="selectionChange", type="spark.events.GridSelectionEvent")]
-
-/**
- *  Dispatched after the caret has changed.
- *
- *  @eventType spark.events.GridCaretEvent.CARET_CHANGE
- *
- *  @langversion 3.0
- *  @playerversion Flash 10
- *  @playerversion AIR 2.0
- *  @productversion Flex 4.5
- */
-[Event(name="caretChange", type="spark.events.GridCaretEvent")]

 //--------------------------------------
 //  Edit Events


Space -> TAB

Space -> TAB

--- net/saqoosha/graphics/NanoJPEG.as
+++ net/saqoosha/graphics/NanoJPEG.as
@@ -26,10 +26,10 @@

 		private static const ZZ:Vector.<int> = Vector.<int>([
-			 0,  1,  8, 16,  9,  2,  3, 10,
-			17, 24, 32, 25, 18, 11,  4,  5,
+			 0,	 1,	 8, 16,	 9,	 2,	 3, 10,
+			17, 24, 32, 25, 18, 11,	 4,	 5,
 			12, 19, 26, 33, 40, 48, 41, 34,
-			27, 20, 13,  6,  7, 14, 21, 28,
+			27, 20, 13,	 6,	 7, 14, 21, 28,
 			35, 42, 49, 56, 57, 50, 43, 36,
 			29, 22, 15, 23, 30, 37, 44, 51,
 			58, 59, 52, 45, 38, 31, 39, 46,
@@ -85,8 +85,8 @@
 			var ssxmax:int = 0;
 			var ssymax:int = 0;
 			var c:Component;
-            _DecodeLength();
-            if (ctx.length < 9) { throw new Error(RESULT_SYNTAX_ERROR); }
+			_DecodeLength();
+			if (ctx.length < 9) { throw new Error(RESULT_SYNTAX_ERROR); }
 			if (ctx.data.readUnsignedByte() != 8) { throw new Error(RESULT_SYNTAX_ERROR); }
 			ctx.height = ctx.data.readUnsignedShort();
 			ctx.width = ctx.data.readUnsignedShort();
@@ -120,11 +120,11 @@
 			ctx.mbheight = (ctx.height + ctx.mbsizey - 1) / ctx.mbsizey;
 			for (i = 0; i < ctx.ncomp; ++i) {
 				c = ctx.comp[i];
-                c.width = (ctx.width * c.ssx + ssxmax - 1) / ssxmax;
-                c.stride = (c.width + 7) & 0x7FFFFFF8;
-                c.height = (ctx.height * c.ssy + ssymax - 1) / ssymax;
-                c.stride = ctx.mbwidth * ctx.mbsizex * c.ssx / ssxmax;
-                if (((c.width < 3) && (c.ssx != ssxmax)) || ((c.height < 3) && (c.ssy != ssymax))) { throw new Error(RESULT_UNSUPPORTED); }
+				c.width = (ctx.width * c.ssx + ssxmax - 1) / ssxmax;
+				c.stride = (c.width + 7) & 0x7FFFFFF8;
+				c.height = (ctx.height * c.ssy + ssymax - 1) / ssymax;
+				c.stride = ctx.mbwidth * ctx.mbsizex * c.ssx / ssxmax;
+				if (((c.width < 3) && (c.ssx != ssxmax)) || ((c.height < 3) && (c.ssy != ssymax))) { throw new Error(RESULT_UNSUPPORTED); }
 				c.pixels = new ByteArray();
 				c.pixels.length = c.stride * (ctx.mbheight * ctx.mbsizey * c.ssy / ssymax);
 			}
@@ -140,12 +140,12 @@
 		private function _DecodeDHT():void {
 			var codelen:int, currcnt:int, remain:int, spread:int, i:int, j:int;
 			var counts:ByteArray = new ByteArray();
-            _DecodeLength();
-            while (ctx.length >= 17) {
-            	i = ctx.data.readUnsignedByte();
-            	if (i & 0xEC) { throw new Error(RESULT_SYNTAX_ERROR); }
+			_DecodeLength();
+			while (ctx.length >= 17) {
+				i = ctx.data.readUnsignedByte();
+				if (i & 0xEC) { throw new Error(RESULT_SYNTAX_ERROR); }
 				if (i & 0x02) { throw new Error(RESULT_UNSUPPORTED); }
-				i = (i | (i >> 3)) & 3;  // combined DC/AC + tableid value
+				i = (i | (i >> 3)) & 3;	 // combined DC/AC + tableid value
 				ctx.data.readBytes(counts, 0, 16);
 				_Skip(17);

@@ -158,7 +158,7 @@
 					if (ctx.length < currcnt) { throw new Error(RESULT_SYNTAX_ERROR); }
 					remain -= currcnt << (16 - codelen);
 					if (remain < 0) { throw new Error(RESULT_SYNTAX_ERROR); }
-					for (i = 0;  i < currcnt;  ++i) {
+					for (i = 0;	 i < currcnt;  ++i) {
 						var code:int = ctx.data.readUnsignedByte();
 						for (j = spread; j; --j) {
 							vlcs.push(new VlcCode(codelen, code));
@@ -169,9 +169,9 @@
 				while (remain--) {
 					vlcs.push(new VlcCode());
 				}
-            }
-            if (ctx.length) { throw new Error(RESULT_SYNTAX_ERROR); }
-        }
+			}
+			if (ctx.length) { throw new Error(RESULT_SYNTAX_ERROR); }
+		}

 		private function _DecodeDQT():void {
@@ -191,9 +191,9 @@

 		private function _DecodeDRI():void {
-            _DecodeLength();
-            if (ctx.length < 2) { throw new Error(RESULT_SYNTAX_ERROR); }
-            ctx.rstinterval = ctx.data.readUnsignedShort();
+			_DecodeLength();
+			if (ctx.length < 2) { throw new Error(RESULT_SYNTAX_ERROR); }
+			ctx.rstinterval = ctx.data.readUnsignedShort();
 			ctx.data.position += ctx.length - 2;
 			_Skip(ctx.length);
 		}
@@ -208,7 +208,7 @@
 			if (ctx.length < (4 + 2 * ctx.ncomp)) { throw new Error(RESULT_SYNTAX_ERROR); }
 			if (ctx.data.readUnsignedByte() != ctx.ncomp) { throw new Error(RESULT_UNSUPPORTED); }
 			_Skip(1);
-			for (i = 0;  i < ctx.ncomp;  ++i) {
+			for (i = 0;	 i < ctx.ncomp;	 ++i) {
 				c = ctx.comp[i];
 				if (ctx.data.readUnsignedByte() != c.cid) { throw new Error(RESULT_SYNTAX_ERROR); }
 				if ((b = ctx.data.readUnsignedByte()) & 0xEE) { throw new Error(RESULT_SYNTAX_ERROR); }
@@ -221,12 +221,12 @@
 			var d2:int = ctx.data.readUnsignedByte();
 			if (d0 || (d1 != 63) || d2) { throw new Error(RESULT_UNSUPPORTED); }
 			_Skip(ctx.length);
-			for (mby = 0;  mby < ctx.mbheight;  ++mby) {
+			for (mby = 0;  mby < ctx.mbheight;	++mby) {
 				for (mbx = 0;  mbx < ctx.mbwidth;  ++mbx) {
-					for (i = 0;  i < ctx.ncomp;  ++i) {
+					for (i = 0;	 i < ctx.ncomp;	 ++i) {
 						c = ctx.comp[i];
-						for (sby = 0;  sby < c.ssy;  ++sby) {
-							for (sbx = 0;  sbx < c.ssx;  ++sbx) {
+						for (sby = 0;  sby < c.ssy;	 ++sby) {
+							for (sbx = 0;  sbx < c.ssx;	 ++sbx) {
 								c.pixels.position = ((mby * c.ssy + sby) * c.stride + mbx * c.ssx + sbx) << 3;
 								_DecodeBlock(c, c.pixels);
 							}
@@ -265,25 +265,25 @@
 			for (coef = 0; coef < 64; coef += 8) {
 				_RowIDCT(ctx.block, coef);
 			}
-			for (coef = 0;  coef < 8;  ++coef) {
+			for (coef = 0;	coef < 8;  ++coef) {
 				_ColIDCT(ctx.block, out, coef, c.stride);
 			}
 		}

 		private function _GetVLC(vlc:Vector.<VlcCode>, code:IntValue):int {
-            var value:int = _ShowBits(16);
-            var bits:int = vlc[value].bits;
-            if (!bits) { throw new Error(RESULT_SYNTAX_ERROR); }
-            _SkipBits(bits);
-            value = vlc[value].code;
-            if (code) code.value = value;
-            bits = value & 15;
-            if (!bits) return 0;
-            value = _GetBits(bits);
-            if (value < (1 << (bits - 1)))
-                value += ((-1) << bits) + 1;
-            return value;
+			var value:int = _ShowBits(16);
+			var bits:int = vlc[value].bits;
+			if (!bits) { throw new Error(RESULT_SYNTAX_ERROR); }
+			_SkipBits(bits);
+			value = vlc[value].code;
+			if (code) code.value = value;
+			bits = value & 15;
+			if (!bits) return 0;
+			value = _GetBits(bits);
+			if (value < (1 << (bits - 1)))
+				value += ((-1) << bits) + 1;
+			return value;
 		}

@@ -295,141 +295,141 @@
 		private static const W7:int = 565;

 		private function _RowIDCT(blk:Vector.<int>, offset:int):void {
-            var x0:int, x1:int, x2:int, x3:int, x4:int, x5:int, x6:int, x7:int, x8:int;
-            var i0:int = offset;
-            var i1:int = offset + 1;
-            var i2:int = offset + 2;
-            var i3:int = offset + 3;
-            var i4:int = offset + 4;
-            var i5:int = offset + 5;
-            var i6:int = offset + 6;
-            var i7:int = offset + 7;
-            if (!((x1 = blk[i4] << 11)
-                | (x2 = blk[i6])
-                | (x3 = blk[i2])
-                | (x4 = blk[i1])
-                | (x5 = blk[i7])
-                | (x6 = blk[i5])
-                | (x7 = blk[i3])))
-            {
-                blk[i0] = blk[i1] = blk[i2] = blk[i3] = blk[i4] = blk[i5] = blk[i6] = blk[i7] = blk[i0] << 3;
-                return;
-            }
-            x0 = (blk[i0] << 11) + 128;
-            x8 = W7 * (x4 + x5);
-            x4 = x8 + (W1 - W7) * x4;
-            x5 = x8 - (W1 + W7) * x5;
-            x8 = W3 * (x6 + x7);
-            x6 = x8 - (W3 - W5) * x6;
-            x7 = x8 - (W3 + W5) * x7;
-            x8 = x0 + x1;
-            x0 -= x1;
-            x1 = W6 * (x3 + x2);
-            x2 = x1 - (W2 + W6) * x2;
-            x3 = x1 + (W2 - W6) * x3;
-            x1 = x4 + x6;
-            x4 -= x6;
-            x6 = x5 + x7;
-            x5 -= x7;
-            x7 = x8 + x3;
-            x8 -= x3;
-            x3 = x0 + x2;
-            x0 -= x2;
-            x2 = (181 * (x4 + x5) + 128) >> 8;
-            x4 = (181 * (x4 - x5) + 128) >> 8;
-            blk[i0] = (x7 + x1) >> 8;
-            blk[i1] = (x3 + x2) >> 8;
-            blk[i2] = (x0 + x4) >> 8;
-            blk[i3] = (x8 + x6) >> 8;
-            blk[i4] = (x8 - x6) >> 8;
-            blk[i5] = (x0 - x4) >> 8;
-            blk[i6] = (x3 - x2) >> 8;
-            blk[i7] = (x7 - x1) >> 8;
+			var x0:int, x1:int, x2:int, x3:int, x4:int, x5:int, x6:int, x7:int, x8:int;
+			var i0:int = offset;
+			var i1:int = offset + 1;
+			var i2:int = offset + 2;
+			var i3:int = offset + 3;
+			var i4:int = offset + 4;
+			var i5:int = offset + 5;
+			var i6:int = offset + 6;
+			var i7:int = offset + 7;
+			if (!((x1 = blk[i4] << 11)
+				| (x2 = blk[i6])
+				| (x3 = blk[i2])
+				| (x4 = blk[i1])
+				| (x5 = blk[i7])
+				| (x6 = blk[i5])
+				| (x7 = blk[i3])))
+			{
+				blk[i0] = blk[i1] = blk[i2] = blk[i3] = blk[i4] = blk[i5] = blk[i6] = blk[i7] = blk[i0] << 3;
+				return;
+			}
+			x0 = (blk[i0] << 11) + 128;
+			x8 = W7 * (x4 + x5);
+			x4 = x8 + (W1 - W7) * x4;
+			x5 = x8 - (W1 + W7) * x5;
+			x8 = W3 * (x6 + x7);
+			x6 = x8 - (W3 - W5) * x6;
+			x7 = x8 - (W3 + W5) * x7;
+			x8 = x0 + x1;
+			x0 -= x1;
+			x1 = W6 * (x3 + x2);
+			x2 = x1 - (W2 + W6) * x2;
+			x3 = x1 + (W2 - W6) * x3;
+			x1 = x4 + x6;
+			x4 -= x6;
+			x6 = x5 + x7;
+			x5 -= x7;
+			x7 = x8 + x3;
+			x8 -= x3;
+			x3 = x0 + x2;
+			x0 -= x2;
+			x2 = (181 * (x4 + x5) + 128) >> 8;
+			x4 = (181 * (x4 - x5) + 128) >> 8;
+			blk[i0] = (x7 + x1) >> 8;
+			blk[i1] = (x3 + x2) >> 8;
+			blk[i2] = (x0 + x4) >> 8;
+			blk[i3] = (x8 + x6) >> 8;
+			blk[i4] = (x8 - x6) >> 8;
+			blk[i5] = (x0 - x4) >> 8;
+			blk[i6] = (x3 - x2) >> 8;
+			blk[i7] = (x7 - x1) >> 8;
 		}

 		private function _ColIDCT(blk:Vector.<int>, out:ByteArray, offset:int, stride:int):void {
-            var x0:int, x1:int, x2:int, x3:int, x4:int, x5:int, x6:int, x7:int, x8:int;
-            var p:int = out.position + offset;
+			var x0:int, x1:int, x2:int, x3:int, x4:int, x5:int, x6:int, x7:int, x8:int;
+			var p:int = out.position + offset;
 			if (!((x1 = blk[8*4+offset] << 8)
-                | (x2 = blk[8*6+offset])
-                | (x3 = blk[8*2+offset])
-                | (x4 = blk[8*1+offset])
-                | (x5 = blk[8*7+offset])
-                | (x6 = blk[8*5+offset])
-                | (x7 = blk[8*3+offset])))
-            {
-                x1 = _Clip(((blk[offset] + 32) >> 6) + 128);
-                for (x0 = 8;  x0;  --x0) {
-                	out[p] = x1;
+				| (x2 = blk[8*6+offset])
+				| (x3 = blk[8*2+offset])
+				| (x4 = blk[8*1+offset])
+				| (x5 = blk[8*7+offset])
+				| (x6 = blk[8*5+offset])
+				| (x7 = blk[8*3+offset])))
+			{
+				x1 = _Clip(((blk[offset] + 32) >> 6) + 128);
+				for (x0 = 8;  x0;  --x0) {
+					out[p] = x1;
 					p += stride;
-                }
-                return;
-            }
-            x0 = (blk[offset] << 8) + 8192;
-            x8 = W7 * (x4 + x5) + 4;
-            x4 = (x8 + (W1 - W7) * x4) >> 3;
-            x5 = (x8 - (W1 + W7) * x5) >> 3;
-            x8 = W3 * (x6 + x7) + 4;
-            x6 = (x8 - (W3 - W5) * x6) >> 3;
-            x7 = (x8 - (W3 + W5) * x7) >> 3;
-            x8 = x0 + x1;
-            x0 -= x1;
-            x1 = W6 * (x3 + x2) + 4;
-            x2 = (x1 - (W2 + W6) * x2) >> 3;
-            x3 = (x1 + (W2 - W6) * x3) >> 3;
-            x1 = x4 + x6;
-            x4 -= x6;
-            x6 = x5 + x7;
-            x5 -= x7;
-            x7 = x8 + x3;
-            x8 -= x3;
-            x3 = x0 + x2;
-            x0 -= x2;
-            x2 = (181 * (x4 + x5) + 128) >> 8;
-            x4 = (181 * (x4 - x5) + 128) >> 8;
-            out[p] = _Clip(((x7 + x1) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x3 + x2) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x0 + x4) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x8 + x6) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x8 - x6) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x0 - x4) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x3 - x2) >> 14) + 128); p += stride;
-            out[p] = _Clip(((x7 - x1) >> 14) + 128);
+				}
+				return;
+			}
+			x0 = (blk[offset] << 8) + 8192;
+			x8 = W7 * (x4 + x5) + 4;
+			x4 = (x8 + (W1 - W7) * x4) >> 3;
+			x5 = (x8 - (W1 + W7) * x5) >> 3;
+			x8 = W3 * (x6 + x7) + 4;
+			x6 = (x8 - (W3 - W5) * x6) >> 3;
+			x7 = (x8 - (W3 + W5) * x7) >> 3;
+			x8 = x0 + x1;
+			x0 -= x1;
+			x1 = W6 * (x3 + x2) + 4;
+			x2 = (x1 - (W2 + W6) * x2) >> 3;
+			x3 = (x1 + (W2 - W6) * x3) >> 3;
+			x1 = x4 + x6;
+			x4 -= x6;
+			x6 = x5 + x7;
+			x5 -= x7;
+			x7 = x8 + x3;
+			x8 -= x3;
+			x3 = x0 + x2;
+			x0 -= x2;
+			x2 = (181 * (x4 + x5) + 128) >> 8;
+			x4 = (181 * (x4 - x5) + 128) >> 8;
+			out[p] = _Clip(((x7 + x1) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x3 + x2) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x0 + x4) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x8 + x6) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x8 - x6) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x0 - x4) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x3 - x2) >> 14) + 128); p += stride;
+			out[p] = _Clip(((x7 - x1) >> 14) + 128);
 		}

 		private function _Convert():void {
-            var i:int;
-            var c:Component;
-			for (i = 0;  i < ctx.ncomp;  ++i) {
-            	c = ctx.comp[i];
-                while ((c.width < ctx.width) || (c.height < ctx.height)) {
-                    if (c.height < ctx.height) _UpsampleV(c);
-                    if (c.width < ctx.width) _UpsampleH(c);
-                }
-                if ((c.width < ctx.width) || (c.height < ctx.height)) { throw new Error(RESULT_INTERNAL_ERROR); }
-			}
-            if (ctx.ncomp == 3) {
-                // convert to RGB
-                var x:int, yy:int;
-                const prgb:ByteArray = ctx.rgb;
-                const py:ByteArray  = ctx.comp[0].pixels;
-                const pcb:ByteArray = ctx.comp[1].pixels;
-                const pcr:ByteArray = ctx.comp[2].pixels;
-                var iprgb:int = 0;
-                var ipy:int = 0;
-                var ipcb:int = 0;
-                var ipcr:int = 0;
-                for (yy = ctx.height;  yy;  --yy) {
-					for (x = 0;  x < ctx.width;  ++x) {
+			var i:int;
+			var c:Component;
+			for (i = 0;	 i < ctx.ncomp;	 ++i) {
+				c = ctx.comp[i];
+				while ((c.width < ctx.width) || (c.height < ctx.height)) {
+					if (c.height < ctx.height) _UpsampleV(c);
+					if (c.width < ctx.width) _UpsampleH(c);
+				}
+				if ((c.width < ctx.width) || (c.height < ctx.height)) { throw new Error(RESULT_INTERNAL_ERROR); }
+			}
+			if (ctx.ncomp == 3) {
+				// convert to RGB
+				var x:int, yy:int;
+				const prgb:ByteArray = ctx.rgb;
+				const py:ByteArray	= ctx.comp[0].pixels;
+				const pcb:ByteArray = ctx.comp[1].pixels;
+				const pcr:ByteArray = ctx.comp[2].pixels;
+				var iprgb:int = 0;
+				var ipy:int = 0;
+				var ipcb:int = 0;
+				var ipcr:int = 0;
+				for (yy = ctx.height;  yy;	--yy) {
+					for (x = 0;	 x < ctx.width;	 ++x) {
 						var y:int = py[ipy + x] << 8;
 						var cb:int = pcb[ipcb + x] - 128;
 						var cr:int = pcr[ipcr + x] - 128;
 						prgb[iprgb++] = 255; // alpha
-						prgb[iprgb++] = _Clip((y            + 359 * cr + 128) >> 8); // red
-						prgb[iprgb++] = _Clip((y -  88 * cb - 183 * cr + 128) >> 8); // green
-						prgb[iprgb++] = _Clip((y + 454 * cb            + 128) >> 8); // blue
+						prgb[iprgb++] = _Clip((y			+ 359 * cr + 128) >> 8); // red
+						prgb[iprgb++] = _Clip((y -	88 * cb - 183 * cr + 128) >> 8); // green
+						prgb[iprgb++] = _Clip((y + 454 * cb			   + 128) >> 8); // blue
 					}
 					ipy += ctx.comp[0].stride;
 					ipcb += ctx.comp[1].stride;
@@ -439,18 +439,18 @@
 				ctx.image = new BitmapData(ctx.width, ctx.height, true, 0x0);
 				ctx.image.setPixels(ctx.image.rect, ctx.rgb);

-            } else if (ctx.comp[0].width != ctx.comp[0].stride) {
-            	throw new Error(RESULT_UNSUPPORTED);
-//                // grayscale -> only remove stride
-//                unsigned char *pin = &ctx.comp[0].pixels[ctx.comp[0].stride];
-//                unsigned char *pout = &ctx.comp[0].pixels[ctx.comp[0].width];
-//                int y;
-//                for (y = ctx.comp[0].height - 1;  y;  --y) {
-//                    memcpy(pout, pin, ctx.comp[0].width);
-//                    pin += ctx.comp[0].stride;
-//                    pout += ctx.comp[0].width;
-//                }
-//                ctx.comp[0].stride = ctx.comp[0].width;
+			} else if (ctx.comp[0].width != ctx.comp[0].stride) {
+				throw new Error(RESULT_UNSUPPORTED);
+//				  // grayscale -> only remove stride
+//				  unsigned char *pin = &ctx.comp[0].pixels[ctx.comp[0].stride];
+//				  unsigned char *pout = &ctx.comp[0].pixels[ctx.comp[0].width];
+//				  int y;
+//				  for (y = ctx.comp[0].height - 1;	y;	--y) {
+//					  memcpy(pout, pin, ctx.comp[0].width);
+//					  pin += ctx.comp[0].stride;
+//					  pout += ctx.comp[0].width;
+//				  }
+//				  ctx.comp[0].stride = ctx.comp[0].width;
 			}
 		}

@@ -474,30 +474,30 @@

 		private function _UpsampleH(c:Component):void {
-            const xmax:int = c.width - 3;
-            var x:int, y:int;
-            var org:ByteArray = c.pixels;
+			const xmax:int = c.width - 3;
+			var x:int, y:int;
+			var org:ByteArray = c.pixels;
 			var out:ByteArray = new ByteArray();
 			out.length = ((c.width * c.height) << 1) * 4;
 			var iorg:int = 0;
-            var iout:int = 0;
-            for (y = c.height;  y;  --y) {
-                out[iout + 0] = CF(CF2A * org[iorg + 0] + CF2B * org[iorg + 1]);
+			var iout:int = 0;
+			for (y = c.height;	y;	--y) {
+				out[iout + 0] = CF(CF2A * org[iorg + 0] + CF2B * org[iorg + 1]);
 				out[iout + 1] = CF(CF3X * org[iorg + 0] + CF3Y * org[iorg + 1] + CF3Z * org[iorg + 2]);
-                out[iout + 2] = CF(CF3A * org[iorg + 0] + CF3B * org[iorg + 1] + CF3C * org[iorg + 2]);
-                for (x = 0;  x < xmax;  ++x) {
-                    out[iout + (x << 1) + 3] = CF(CF4A * org[iorg + x] + CF4B * org[iorg + x + 1] + CF4C * org[iorg + x + 2] + CF4D * org[iorg + x + 3]);
-                    out[iout + (x << 1) + 4] = CF(CF4D * org[iorg + x] + CF4C * org[iorg + x + 1] + CF4B * org[iorg + x + 2] + CF4A * org[iorg + x + 3]);
-                }
+				out[iout + 2] = CF(CF3A * org[iorg + 0] + CF3B * org[iorg + 1] + CF3C * org[iorg + 2]);
+				for (x = 0;	 x < xmax;	++x) {
+					out[iout + (x << 1) + 3] = CF(CF4A * org[iorg + x] + CF4B * org[iorg + x + 1] + CF4C * org[iorg + x + 2] + CF4D * org[iorg + x + 3]);
+					out[iout + (x << 1) + 4] = CF(CF4D * org[iorg + x] + CF4C * org[iorg + x + 1] + CF4B * org[iorg + x + 2] + CF4A * org[iorg + x + 3]);
+				}
 				iorg += c.stride;
 				iout += c.width << 1;
-                out[iout - 3] = CF(CF3A * org[iorg - 1] + CF3B * org[iorg - 2] + CF3C * org[iorg - 3]);
-                out[iout - 2] = CF(CF3X * org[iorg - 1] + CF3Y * org[iorg - 2] + CF3Z * org[iorg - 3]);
-                out[iout - 1] = CF(CF2A * org[iorg - 1] + CF2B * org[iorg - 2]);
-            }
-            c.width <<= 1;
-            c.stride = c.width;
-            c.pixels = out;
+				out[iout - 3] = CF(CF3A * org[iorg - 1] + CF3B * org[iorg - 2] + CF3C * org[iorg - 3]);
+				out[iout - 2] = CF(CF3X * org[iorg - 1] + CF3Y * org[iorg - 2] + CF3Z * org[iorg - 3]);
+				out[iout - 1] = CF(CF2A * org[iorg - 1] + CF2B * org[iorg - 2]);
+			}
+			c.width <<= 1;
+			c.stride = c.width;
+			c.pixels = out;
 		}

@@ -515,12 +515,12 @@
 				iorg = x;
 				iout = x;
 				out[iout] = CF(CF2A * org[iorg + 0] + CF2B * org[iorg + s1]);	 iout += w;
-				out[iout] = CF(CF3X * org[iorg + 0] + CF3Y * org[iorg + s1] + CF3Z * org[iorg + s2]);  iout += w;
+				out[iout] = CF(CF3X * org[iorg + 0] + CF3Y * org[iorg + s1] + CF3Z * org[iorg + s2]);  iout += w;
 				out[iout] = CF(CF3A * org[iorg + 0] + CF3B * org[iorg + s1] + CF3C * org[iorg + s2]);  iout += w;
 				iorg += s1;
 				for (y = c.height - 3;	y;	--y) {
 					out[iout] = CF(CF4A * org[iorg - s1] + CF4B * org[iorg + 0] + CF4C * org[iorg + s1] + CF4D * org[iorg + s2]);	iout += w;
-					out[iout] = CF(CF4D * org[iorg - s1] + CF4C * org[iorg + 0] + CF4B * org[iorg + s1] + CF4A * org[iorg + s2]);	iout += w;
+					out[iout] = CF(CF4D * org[iorg - s1] + CF4C * org[iorg + 0] + CF4B * org[iorg + s1] + CF4A * org[iorg + s2]);	iout += w;
 					iorg += s1;
 				}
 				iorg += s1;
@@ -543,7 +543,7 @@

 		private function _SkipMarker():void {
-            _DecodeLength();
+			_DecodeLength();
 			ctx.data.position += ctx.length;
 			_Skip(ctx.length);
 		}
@@ -610,9 +610,9 @@

 		private function _GetBits(bits:int):int {
-            var res:int = _ShowBits(bits);
-            _SkipBits(bits);
-            return res;
+			var res:int = _ShowBits(bits);
+			_SkipBits(bits);
+			return res;
 		}


Changed _control type from Array to Object.

--- net/flashpunk/utils/Input.as
+++ net/flashpunk/utils/Input.as
@@ -259,7 +259,7 @@
 		/** @private */ private static var _release:Vector.<int> = new Vector.<int>(256);
 		/** @private */ private static var _pressNum:int = 0;
 		/** @private */ private static var _releaseNum:int = 0;
-		/** @private */ private static var _control:Array = [];
+		/** @private */ private static var _control:Object = {};
 		/** @private */ private static var _mouseWheelDelta:int = 0;
 	}
 }


Renamed mouseAbsX/Y() to mouseScreenX/Y() because the prior name was stupid and confusing.

--- net/flashpunk/utils/Input.as
+++ net/flashpunk/utils/Input.as
@@ -74,7 +74,7 @@
 		/**
 		 * The absolute mouse x position on the screen (unscaled).
 		 */
-		public static function get mouseAbsX():int
+		public static function get mouseFlashX():int
 		{
 			return FP.stage.mouseX;
 		}
@@ -82,7 +82,7 @@
 		/**
 		 * The absolute mouse y position on the screen (unscaled).
 		 */
-		public static function get mouseAbsY():int
+		public static function get mouseFlashY():int
 		{
 			return FP.stage.mouseY;
 		}


test kline update

test kline update

--- test/src/TestKLine.as
+++ test/src/TestKLine.as
@@ -130,7 +130,7 @@
 						}
 					}

-					var h:Number =  (stage.stageHeight - 2 * oy) / numline;
+					var h:Number =  int((stage.stageHeight - 2 * oy) / numline);
 					for (var i:int = 0; i <= numline; i++ ){
 						var y:Number = getY(minV + i, minV, maxV, s, h);
 						drawDashLine(kline.graphics, 0, y, w-ox, y,2);
@@ -166,7 +166,7 @@
 		}

 		private function getY(v:Number, min:Number, max:Number,s:Number,h:Number):Number{
-			return (max - v)  * h;
+			return Math.round((max - v)  * h)+.5;
 		}

 		private function drawDashLine(ctx:Graphics, x1:Number, y1:Number, x2:Number, y2:Number, dashLen:Number=5):void


If command contains compiler tokens, escape the $ because it may be expanded on bash

--- src/ASConfigC.as
+++ src/ASConfigC.as
@@ -671,6 +671,10 @@
 			try
 			{
 				var command:String = escapePath(this._javaExecutable) + " " + this._compilerArgs.join(" ");
+				if(process.platform !== "win32")
+				{
+					command = command.replace(/\$\{/g, "\\${");
+				}
 				if(this._additionalOptions)
 				{
 					command += " " + this._additionalOptions;


return the breakpoint that was added from Commands.add()

--- vivified/core/vivi_initialize.as
+++ vivified/core/vivi_initialize.as
@@ -78,6 +78,7 @@
   ret.toString = function () {
     return "function call " + name;
   };
+  return ret;
 };
 Commands.list = function () {
   var a = Breakpoint.list;


Transferred from the Adobe Open Source Subversion Repository

Revision: 17316
Author:   klin@adobe.com
Date:     2010-08-13T19:04:51.716189Z

Log Message:
-----------
Fix batch of bugs in DataGrid and also add basic border and background styles.

DataGrid.as - Added style metadata for borderAlpha, borderColor, borderVisible, contentBackgroundAlpha, and contentBackgroundColor.
Grid.as - Add backing variable for variableRowHeight so it doesn't depend on gridDimensions.fixedRowHeight anymore.
GridLayout.as - Modified updateTypicalCellSizes() to set the fixedRowHeight to the maximum height of the typical cells when no rowHeight is set and variableRowHeight is false. Also, measuredHeight is now calculated only using the typical item instead of the content.
GridDimensions.as - Added getTypicalContentHeight() for GridLayout to calculate the measuredHeight. Also, we now reset the data structure when the columnCount is 0.
GridColumn.as - Invalidate the grid when dataField and labelFunction are set.
GridEvent.as - Fixed misspelled event constants.
DataGridSkin.mxml - Changed background color to white, caret color to dark blue, and removed the rowBackground.

QE notes: No
Doc notes: No
Bugs: SDK-26895, SDK-26897, SDK-26934, SDK-27166, SDK-27170, SDK-27176, SDK-27216, SDK-27264
Reviewer: Hans
Tests run: checkintests, DataGrid
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/events/GridEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1281511 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
@@ -131,6 +131,14 @@
             return;

         _columnCount = value;
+        if (_columnCount == 0)
+        {
+            rowList.removeAll();
+            recentNode = null;
+            recentNode2 = null;
+            return;
+        }
+
         rowList.numColumns = value;

         var i:int;
@@ -1056,6 +1064,25 @@

         return contentWidth;
     }
+
+    /**
+     *  Returns the content height which is maximum cell height of the
+     *  typical item times the total number of rows including gaps.
+     *  If rowCountOverride is specified, then we only include that many rows.
+     */
+    public function getTypicalContentHeight(rowCountOverride:int = -1):Number
+    {
+        const nRows:int = (rowCountOverride == -1) ? rowCount : rowCountOverride;
+        var contentHeight:Number = 0;
+
+        if (nRows > 1)
+            contentHeight += (nRows - 1) * rowGap;
+
+        if (!isNaN(fixedRowHeight))
+            return contentHeight + nRows * fixedRowHeight;
+
+        return contentHeight + nRows * defaultRowHeight;
+    }

     /**
      *  Return the preferred bounds width of the grid's typicalItem when rendered with the item renderer
@@ -1316,7 +1343,7 @@
             case CollectionEventKind.MOVE: return dataProviderCollectionMove(event);
             case CollectionEventKind.REFRESH: return dataProviderCollectionRefresh(event);
             case CollectionEventKind.RESET: return dataProviderCollectionReset(event);
-            case CollectionEventKind.UPDATE: return dataProviderCollectionReplace(event); return true;
+            case CollectionEventKind.UPDATE: return true;
                 break;
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3584
Author:   chaase@adobe.com
Date:     2008-10-11T03:42:39.082244Z

Log Message:
-----------
Fixed sdk-17145 and sdk-17137. Rotate's angleBy parameter now functions and multiple Rotates operating at the same time on the same target no longer do completely unpredictable things (they still overwrite each others' results, but at least not causing the object to fly off the stage).

reviewed by Jason
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284456 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/RotateInstance.as
@@ -14,10 +14,6 @@

 import mx.effects.PropertyValuesHolder;
 import mx.events.AnimationEvent;
-
-import mx.core.mx_internal;
-import mx.effects.EffectManager;
-import mx.styles.IStyleClient;

 //  Let (phi) be angle between r=(Ox,Oy - Cx,Cy) and -X Axis.
 //   (theta) be clockwise further angle of rotation.
@@ -106,6 +102,11 @@
      * @private
      */
     private var originalOffsetY:Number;
+
+    /**
+     * @private
+     */
+    private var lastRotation:Number;

     //--------------------------------------------------------------------------
     //
@@ -191,7 +192,8 @@
      */
     override public function play():void
     {
-        var radVal:Number = Math.PI * target.rotation / 180;
+        lastRotation = getCurrentValue("rotation");
+        var radVal:Number = Math.PI * lastRotation / 180;

         // Default to the center
         if (isNaN(originX))
@@ -207,7 +209,7 @@
         centerY = getCurrentValue("y") +
                   originX * Math.sin(radVal) +
                   originY * Math.cos(radVal);
-
+
         if (isNaN(angleFrom))
             if (!isNaN(angleTo) && !isNaN(angleBy))
                 angleFrom = angleTo - angleBy;
@@ -219,9 +221,6 @@

         if (isNaN(angleTo))
         {
-            angleTo = (target.rotation == 0) ?
-                      ((angleFrom > 180) ? 360 : 0) :
-                      getCurrentValue("rotation");
             if (isNaN(angleBy) &&
                 propertyChanges &&
                 propertyChanges.end["rotation"] !== undefined)
@@ -237,10 +236,10 @@

         originalOffsetX = originX * Math.cos(radVal) - originY * Math.sin(radVal);
         originalOffsetY = originX * Math.sin(radVal) + originY * Math.cos(radVal);
-
+
         newX = Number((centerX - originalOffsetX).toFixed(1)); // use a precision of 1
         newY = Number((centerY - originalOffsetY).toFixed(1)); // use a precision of 1
-
+
         propertyValuesList =
             [new PropertyValuesHolder("rotation", [angleFrom, angleTo])];

@@ -257,17 +256,28 @@
     {
         var targetX:Number = getCurrentValue("x");
         var targetY:Number = getCurrentValue("y");
-
-        // If somebody else has changed our position
+        var targetRotation:Number = getCurrentValue("rotation");
+
+        // If somebody else has changed the rotation
+        if (Math.abs(targetRotation - lastRotation) > 0.1)
+        {
+            var radValCurr:Number = Math.PI * target.rotation / 180;
+            originalOffsetX = originX * Math.cos(radValCurr) -
+                originY * Math.sin(radValCurr);
+            originalOffsetY = originX * Math.sin(radValCurr) +
+                originY * Math.cos(radValCurr);
+        }
+
+        // If somebody else has changed the position
         if (Math.abs(newX - targetX) > 0.1)
             centerX = targetX + originalOffsetX;
-
+
         if (Math.abs(newY - targetY) > 0.1)
             centerY = targetY + originalOffsetY;
-
+
         var rotateValue:Number = Number(event.value);
         var radVal:Number = Math.PI * rotateValue / 180;
-
+
         newX = centerX - originX * Math.cos(radVal) + originY * Math.sin(radVal);
         newY = centerY - originX * Math.sin(radVal) - originY * Math.cos(radVal);

@@ -280,6 +290,9 @@
         // Now have the superclass handle the actual rotation as well as any
         // other event processing details
         super.updateHandler(event);
+
+        // Cache the rotation we set for possible future adjustment of offsets
+        lastRotation = getCurrentValue("rotation");
     }
 }


Improve sound sync in Flash player

Improve sound sync in Flash player

Now accounts for dropped audio -- where we didn't even get issued
a SampleData event -- in addition to time spent playing silence
due to being starved for data from Vorbis.

--- src/ogv.as
+++ src/ogv.as
@@ -96,7 +96,9 @@
         private var sound:Sound = null;
         private var soundChannel:SoundChannel = null;
         private var audioBuffers:Vector.<Vector.<ByteArray>> = new Vector.<Vector.<ByteArray>>();
-        private var fudgeFactor:Number = 0;
+        private var starvedAudioTime:Number = 0; // seconds; amount of time spent "playing" when starved for audio
+        private var totalBufferedAudio:Number = 0; // seconds; total amount of audio time we've processed
+        private var droppedAudioTime:Number = 0; // seconds; amount of audio time not accounted for, assumed dropped

         // Log debug stuff to the JS console for convenience
         private function log(str:String):void {
@@ -711,7 +713,7 @@
             if (soundChannel == null) {
                 return 0;
             } else {
-                return soundChannel.position / 1000 - fudgeFactor;
+                return soundChannel.position / 1000 - starvedAudioTime - droppedAudioTime;
             }
         }

@@ -720,6 +722,7 @@
             var samplesWritten:int = 0;
             var leftSample:Number, rightSample:Number;

+            droppedAudioTime = (event.position / targetRate) - totalBufferedAudio;
             while (samplesWritten < audioBufferSize) {

                 if (audioBuffers.length == 0) {
@@ -727,7 +730,7 @@
                     // Out of data? Write some silence to round it out,
                     // and wait for the next set of data...
                     droppedAudio++;
-                    fudgeFactor += (audioBufferSize - samplesWritten) / 44100;
+                    starvedAudioTime += (audioBufferSize - samplesWritten) / 44100;
                     while (samplesWritten < audioBufferSize) {
                         event.data.writeFloat(0.0);
                         event.data.writeFloat(0.0);
@@ -767,6 +770,7 @@
                     }
                 }
             }
+            totalBufferedAudio += samplesWritten / targetRate;
         }
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20519
Author:   dloverin@adobe.com
Date:     2011-03-01T21:46:51.824127Z

Log Message:
-----------
DataGrid Item Editor fixes.

 * Block the data grid from seeing keystrokes entered into the editor.
 * Handle focusOuts in components owned by the editor.
 * RTE when the ColorPicker dispatches an “enter” event.

QE notes: None.
Doc notes: None.
Bugs: SDK-29750, SDK-29747
Reviewer: Hans
Tests run: cyclone
Is noteworthy for integration: No.

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1281382 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/DataGridEditor.as
@@ -16,6 +16,7 @@
 import flash.display.InteractiveObject;
 import flash.events.Event;
 import flash.events.FocusEvent;
+import flash.events.IEventDispatcher;
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.events.TimerEvent;
@@ -43,8 +44,6 @@
 import spark.components.Grid;
 import spark.events.GridEvent;
 import spark.events.GridItemEditorEvent;
-import mx.core.IVisualElementContainer;
-import flash.events.IEventDispatcher;

 use namespace mx_internal;

@@ -1440,10 +1439,14 @@
     private function editor_focusOutHandler(event:FocusEvent):void
     {
         //trace("editor_focusOutHandler " + event.relatedObject);
-        if (event.relatedObject &&
-            dataGrid.contains(event.relatedObject))
-        {
-            return;
+
+        // If the focus goes to a component that is owned by the editor,
+        // then don't end the editor session.
+        if (event.relatedObject)
+        {
+            var component:IUIComponent = getIUIComponent(event.relatedObject);
+            if (component && editorOwns(component))
+                return;
         }

         // ignore textfields losing focus on mousedowns
@@ -1463,12 +1466,15 @@

     /**
      *  @private
-     *  Handle the ENTER event by closing the editor.
-     */
-    private function editor_enterHandler(event:FlexEvent):void
+     *  Special case for TextArea control. See editor_keyDownHandler.
+     *  ColorPicker also dispatches the "enter" event so keep the
+     *  parameter of type Event, not FlexEvent.
+     */
+    private function editor_enterHandler(event:Event):void
     {
         //trace("FlexEvent" );
-        gotFlexEnterEvent = true;
+        if (event is FlexEvent)
+            gotFlexEnterEvent = true;
     }

     /**
@@ -1482,7 +1488,7 @@
         if (event.isDefaultPrevented())
         {
             // Special case the ENTER key since TextArea cancels the ENTER when it
-            // doesn't use it but instead if dispatched an FlexEvent.ENTER.
+            // doesn't use it but instead it dispatches an FlexEvent.ENTER.
             // The problem is the ENTER event does not have the control and
             // shift key flags we need.
             if (!(event.charCode == Keyboard.ENTER && gotFlexEnterEvent))
@@ -1544,9 +1550,14 @@
                             restoreFocusableChildrenFlags();
                         }
                     }
-                }
-            }
-        }
+                }
+            }
+        }
+
+        // Prevent the DataGrid from processing any keystrokes that were
+        // received by the editor. We don't cancel the keystokes here
+        // because on AIR that cancels text input into the text field.
+        event.stopPropagation();
     }

     /**


don't delete the local environment settings

--- bin/otp.replace.as
+++ bin/otp.replace.as
@@ -150,8 +150,8 @@
     docs_log="docs.$os_type.$otp_label.txt"
     install_log="install.$os_type.$otp_label.txt"

-    $GIT clean -fdqx -e /env -e /.idea/ -e '*.iml' -e '/*.txt' \
-    || $GIT clean -f -f -dqx -e /env -e /.idea/ -e '*.iml' -e '/*.txt' \
+    $GIT clean -fdqx -e /env -e /env.local -e /.idea/ -e '*.iml' -e '/*.txt' \
+    || $GIT clean -f -f -dqx -e /env -e /env.local -e /.idea/ -e '*.iml' -e '/*.txt' \
     || true

     [[ $makejobs -lt 2 ]] || export MAKEFLAGS="-j$makejobs"


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284851 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package spark.formatters
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20131
Author:   deeptika@adobe.com
Date:     2011-02-04T12:08:16.873115Z

Log Message:
-----------
Passing series object instead of chart object to the dataFunction.

QE notes:
Doc notes:
Bugs: FLEXDMV-1634 (Using dataFunction along with PIL gives RTE)
Reviewer:
Tests run:
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/ColumnChart.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/charts/src/mx/charts/BarChart.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1252826 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/charts/src/mx/charts/BarChart.as
+++ frameworks/projects/charts/src/mx/charts/BarChart.as
@@ -574,7 +574,7 @@
  				else if (barSeries.labelField != null)
 					barSeries.measuringField.text = v.labelText = v.item[barSeries.labelField];
 				else if (barSeries.dataFunction != null)
-					barSeries.measuringField.text = v.labelText = barSeries.dataFunction(this, v.item, 'xNumber');
+					barSeries.measuringField.text = v.labelText = barSeries.dataFunction(barSeries, v.item, 'xNumber');
 				else
 					barSeries.measuringField.text = v.labelText = v.item[barSeries.xField];


better trace message

better trace message

--- WeaveCore/src/weave/core/StageUtils.as
+++ WeaveCore/src/weave/core/StageUtils.as
@@ -302,7 +302,7 @@
 			}

 			if (_previousFrameElapsedTime > 3000)
-				trace(_previousFrameElapsedTime);
+				trace('Previous frame took', _previousFrameElapsedTime, 'ms');

 			// update mouse coordinates
 			_lastMousePoint.x = _stage.mouseX;


remove setting velocity in 'run'-states update function. this was just a test and will be replaced by actual character movement controlled by user-input


add protected ScriptController.scene property


Fixed tooltips.

Fixed tooltips.

--- source/fairygui/GObject.as
+++ source/fairygui/GObject.as
@@ -499,7 +499,36 @@
 		}

 		public function set tooltips(value: String):void {
-			this._tooltips = value;
+			if(_tooltips)
+			{
+				this.off(Event.ROLL_OVER, this, this.__rollOver);
+				this.off(Event.ROLL_OUT, this, this.__rollOut);
+			}
+
+			_tooltips = value;
+			if(_tooltips)
+			{
+				this.on(Event.ROLL_OVER, this, this.__rollOver);
+				this.on(Event.ROLL_OUT, this, this.__rollOut);
+			}
+		}
+
+		private function __rollOver(evt:Event):void
+		{
+			Laya.timer.once(100, this, this.__doShowTooltips);
+		}
+
+		private function __doShowTooltips():void
+		{
+			var r:GRoot = this.root;
+			if(r)
+				this.root.showTooltips(_tooltips);
+		}
+
+		private function __rollOut(evt:Event):void
+		{
+			Laya.timer.clear(this, this.__doShowTooltips);
+			this.root.hideTooltips();
 		}

 		public function get blendMode():String


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1251287 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/automation/src/mx/automation/codec/TabObjectCodec.as
+++ frameworks/projects/automation/src/mx/automation/codec/TabObjectCodec.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.automation.codec
 {