http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as
new file mode 100644
index 0000000..540afb7
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/InstallerComponentVO.as
@@ -0,0 +1,60 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.model
+{
+       [Bindable]
+       public class InstallerComponentVO
+       {
+               public var label:String;
+               public var message:String;
+               public var required:Boolean;
+               public var selected:Boolean;
+               public var installed:Boolean=false;
+               public var aborted:Boolean=false;
+               public var answered:Boolean = false;
+               public var licenseName:String;
+               public var licenseURL:String;
+               public var key:String;
+               
+               public function InstallerComponentVO(label:String,
+                                                                               
         message:String,
+                                                                               
         licenseName:String,
+                                                                               
         licenseURL:String,
+                                                                               
         key:String,
+                                                                               
         required:Boolean,
+                                                                               
         selected:Boolean=false,
+                                                                               
         installed:Boolean=false,
+                                                                               
         aborted:Boolean=false,
+                                                                               
         answered:Boolean=false
+                                                                               
        )
+               {
+                       this.label = label;
+                       this.message = message;
+                       this.key = key;
+                       this.required = required;
+                       this.selected = selected;
+                       this.installed = installed;
+                       this.aborted = aborted;
+                       this.answered = answered;
+                       this.licenseName = licenseName;
+                       this.licenseURL = licenseURL;
+               }
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as
new file mode 100644
index 0000000..ccdde59
--- /dev/null
+++ b/flex-installer/installer/src/org/apache/flex/packageflexsdk/model/OS.as
@@ -0,0 +1,67 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.model
+{
+       import flash.system.Capabilities;
+       
+       import org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
+       
+       public class OS
+       {
+               public const WINDOWS:String = "windows";
+               public const MAC:String = "mac";
+               public const LINUX:String = "linux";
+               
+               public var os:String = null;
+               
+               public function OS()
+               {
+                       setOS();
+               }
+               
+               public function isWindows():Boolean {
+                       return os == WINDOWS;
+               }
+               
+               public function isMac():Boolean {
+                       return os == MAC;
+               }
+               
+               public function isLinux():Boolean {
+                       return os == LINUX;
+               }
+               
+               public function isOther():Boolean {
+                       return !(isWindows() || isMac() || isLinux());
+               }
+               
+               private function setOS():void {
+                       var operatingSystem:String = Capabilities.os;
+                       
+                       if (operatingSystem.search("Mac OS") != -1) {
+                               os = MAC;
+                       } else if (operatingSystem.search("Windows") != -1) {
+                               os = WINDOWS;
+                       } else if (operatingSystem.search("Linux") != -1) {
+                               os = LINUX;
+                       }
+               }
+       }
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as
new file mode 100644
index 0000000..8743ac1
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/resource/ViewResourceConstants.as
@@ -0,0 +1,222 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.resource
+{
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.IEventDispatcher;
+import flash.utils.Dictionary;
+import flash.utils.Proxy;
+import flash.utils.flash_proxy;
+
+import mx.collections.ArrayCollection;
+import mx.events.PropertyChangeEvent;
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+[Bindable(event="propertyChange")]
+public dynamic class ViewResourceConstants extends Proxy implements 
IEventDispatcher
+{
+       
+       
//--------------------------------------------------------------------------
+       //
+       //    Class constants
+       //
+       
//--------------------------------------------------------------------------
+       
+       public static const BUNDLE_NAME:String = "resourceStrings";
+       
+       public static const DEFAULT_LANGUAGE:String = "en_US";
+       
+       
//--------------------------------------------------------------------------
+       //
+       //    Class properties
+       //
+       
//--------------------------------------------------------------------------
+       
+       //----------------------------------
+       //    instance
+       //----------------------------------
+       
+       private static var _instance:ViewResourceConstants;
+       
+       public static function get instance():ViewResourceConstants
+       {
+               if (!_instance)
+                       _instance = new ViewResourceConstants(new SE());
+               
+               return _instance;
+       }
+               
+       
//--------------------------------------------------------------------------
+       //
+       //    Constructor
+       //
+       
//--------------------------------------------------------------------------
+       
+       public function ViewResourceConstants(se:SE) 
+       {
+               _eventDispatcher = new EventDispatcher();
+               
+               //RuntimeLocale.instance.installResources();
+       }
+               
+       
//--------------------------------------------------------------------------
+       //
+       //    Variables
+       //
+       
//--------------------------------------------------------------------------
+       
+       private var _content:Dictionary;
+       
+       private var _eventDispatcher:EventDispatcher;
+       
+       private var _resourceManager:IResourceManager = 
ResourceManager.getInstance();
+       
+       
//--------------------------------------------------------------------------
+       //
+       //    Methods
+       //
+       
//--------------------------------------------------------------------------
+       
+       //----------------------------------
+       //    addEventListener
+       //----------------------------------
+       
+       public function addEventListener(type:String, listener:Function, 
+                                                                        
useCapture:Boolean = false, priority:int = 0, 
+                                                                        
useWeakReference:Boolean = false):void
+       {
+               _eventDispatcher.addEventListener(type, listener, useCapture, 
priority, useWeakReference);
+       }
+       
+       //----------------------------------
+       //    dispatchEvent
+       //----------------------------------
+       
+       public function dispatchEvent(event:Event):Boolean
+       {
+               return _eventDispatcher.dispatchEvent(event);
+       }
+       
+    //----------------------------------
+    //    hasProperty
+    //----------------------------------
+    
+    override flash_proxy function hasProperty(name:*):Boolean
+    {
+        return _content[name] != null;
+    }
+    
+       //----------------------------------
+       //    getProperty
+       //----------------------------------
+       
+       override flash_proxy function getProperty(name:*):*
+       {
+               if (!_content[name])
+               {
+                       var errorString:String = "The key was not found in the 
resource strings (key: '" + name + "').";
+                       
+                       trace(errorString);
+                       
+                       throw new Error(errorString);
+               }
+               
+               return _content[name];
+       }
+       
+    //----------------------------------
+    //    setProperty
+    //----------------------------------
+    
+    override flash_proxy function setProperty(name:*, value:*):void
+    {
+        _content[name] = value;    
+    }
+    
+       //----------------------------------
+       //    hasEventListener
+       //----------------------------------
+       
+       public function hasEventListener(type:String):Boolean
+       {
+               return _eventDispatcher.hasEventListener(type);
+       }
+       
+       //----------------------------------
+       //    removeEventListener
+       //----------------------------------
+       
+       public function removeEventListener(type:String, listener:Function, 
+                                                                               
useCapture:Boolean = false):void
+       {
+               _eventDispatcher.removeEventListener(type, listener, 
useCapture);
+       }
+       
+       //----------------------------------
+       //    update
+       //----------------------------------
+       
+       public function update(event:Event = null):void
+       {
+               _content = new Dictionary();
+               
+               var messageStringsContentDefault:Object;
+               var messageStringsContentLocalized:Object;
+               
+               var n:int = _resourceManager.localeChain.length;
+               messageStringsContentDefault = 
+                               
_resourceManager.getResourceBundle(_resourceManager.localeChain[n - 1], 
BUNDLE_NAME).content;
+               
+               if (n > 1)
+                       messageStringsContentLocalized = 
+                               
_resourceManager.getResourceBundle(_resourceManager.localeChain[0], 
BUNDLE_NAME).content;
+               
+               var useLocalizedString:Boolean;
+               var event:Event;
+               for (var key:String in messageStringsContentDefault)
+               {
+                       useLocalizedString = messageStringsContentLocalized && 
+                               messageStringsContentLocalized[key] &&
+                               messageStringsContentLocalized[key] != "";
+                       
+                       _content[key] = (useLocalizedString) ? 
+                               messageStringsContentLocalized[key] : 
messageStringsContentDefault[key];
+                       
+                       event = PropertyChangeEvent.createUpdateEvent(this, 
key, "", _content[key]);
+                       dispatchEvent(event);
+               }
+       }
+       
+       //----------------------------------
+       //    willTrigger
+       //----------------------------------
+       
+       public function willTrigger(type:String):Boolean
+       {
+               return _eventDispatcher.willTrigger(type);
+       }
+               
+}
+}
+
+class SE {}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
new file mode 100644
index 0000000..07a85c4
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/ApacheURLLoader.as
@@ -0,0 +1,127 @@
+/**
+ 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.
+
+ */
+
+/**
+ *
+ * This is a really hackey way to intercept all the HTTPS calls and send them 
via
+ * as3httpdclient instead of the browser-captured URLLoader.  Don't follow this
+ * example -- refactor your application to avoid having to do this.
+ *
+ */
+package org.apache.flex.packageflexsdk.util
+{
+    import com.adobe.net.URI;
+
+    import flash.events.ErrorEvent;
+
+    import flash.events.Event;
+    import flash.events.HTTPStatusEvent;
+    import flash.events.IOErrorEvent;
+    import flash.events.SecurityErrorEvent;
+    import flash.net.URLLoader;
+    import flash.net.URLRequest;
+    import flash.utils.ByteArray;
+
+    import org.httpclient.HttpClient;
+    import org.httpclient.events.HttpDataListener;
+    import org.httpclient.events.HttpRequestEvent;
+    import org.httpclient.events.HttpResponseEvent;
+    import org.httpclient.events.HttpStatusEvent;
+
+    public class ApacheURLLoader extends URLLoader
+    {
+
+        private var httpsData:ByteArray = new ByteArray();
+
+        public function ApacheURLLoader(request:URLRequest = null)
+        {
+            super(request);
+        }
+
+        override public function load(request:URLRequest):void
+        {
+            if (request.url.indexOf("https://";) != 0)
+            {
+                super.load(request);
+            }
+            else
+            {
+                var httpsClient:HttpClient = new HttpClient();
+                var httpsClientListener:HttpDataListener = new 
HttpDataListener();
+
+                httpsClientListener.onConnect = 
function(event:HttpRequestEvent):void
+                {
+                    var e:Event = new Event(Event.OPEN);
+                    dispatchEvent(e);
+                };
+
+                httpsClientListener.onComplete = 
function(event:HttpResponseEvent):void
+                {
+                    var e:HTTPStatusEvent = new 
HTTPStatusEvent(HTTPStatusEvent.HTTP_RESPONSE_STATUS);
+                    // we are unable to emulate the full event since the 
built-in event handlers for status and
+                    // many others are marked as private on the set functions.
+                    dispatchEvent(e);
+                };
+
+                httpsClientListener.onDataComplete = 
function(event:HttpResponseEvent, incomingData:ByteArray):void
+                {
+                    data = new ByteArray();
+                    data.writeBytes(incomingData);
+                    data.position=0;
+                    var e:Event = new Event(Event.COMPLETE);
+                    dispatchEvent(e);
+                };
+
+                httpsClientListener.onStatus = 
function(event:HttpStatusEvent):void
+                {
+                    var e:HTTPStatusEvent = new 
HTTPStatusEvent(HTTPStatusEvent.HTTP_STATUS);
+                    // we are unable to emulate the full event since the 
built-in event handlers for status and
+                    // many others are marked as private on the set functions.
+                    dispatchEvent(e);
+                };
+
+                httpsClientListener.onError = function(event:ErrorEvent):void
+                {
+                    var e:IOErrorEvent = new 
IOErrorEvent(IOErrorEvent.NETWORK_ERROR);
+                    e.text = event.text;
+                    dispatchEvent(e);
+                };
+
+                // ProgressEvent is not available in this manner.
+                // We can't emulate the HTTP Status Event.  It is internal to 
the Flash Player and won't
+                //    let us override the status item.
+
+                this.httpsData = new ByteArray();
+                httpsClient.get(new URI(request.url), httpsClientListener);
+            }
+
+        }
+
+        private function httpsSecurityError(event:SecurityErrorEvent):void
+        {
+            dispatchEvent(event.clone());
+        }
+
+        private function httpsIOError(event:IOErrorEvent):void
+        {
+            dispatchEvent(event.clone());
+        }
+
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as
new file mode 100644
index 0000000..bf0a371
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/CalcButtonWidth.as
@@ -0,0 +1,61 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.util
+{
+       import flash.events.Event;
+       
+       import spark.components.Button;
+
+       public class CalcButtonWidth
+       {
+               protected static var PADDING:int = 20;
+               
+               protected var hiddenButton:Button;
+               
+               public function CalcButtonWidth(hiddenButton:Button)
+               {
+                       this.hiddenButton = hiddenButton;
+               }
+               
+               public function buttonWidth(button:Button):int {
+                       var width:int = 0;
+                       
+                       hiddenButton.label = button.label;
+                       hiddenButton.validateNow();
+                       width = hiddenButton.measuredWidth + PADDING;
+                       
+                       if (button.width != width) {
+                               button.width = width;
+                       }
+                       
+                       return width;
+               }
+               
+               public function maxButtonWidth(buttons:Array):int {
+                       var width:int = 0;
+                       
+                       for each (var button:Button in buttons) {
+                               width = Math.max(width, buttonWidth(button));
+                       }
+                       
+                       return width;
+               }
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as
new file mode 100644
index 0000000..2a2602c
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/DownloadUtil.as
@@ -0,0 +1,94 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.util
+{
+       import flash.desktop.NativeProcess;
+       import flash.desktop.NativeProcessStartupInfo;
+       import flash.events.ErrorEvent;
+       import flash.events.Event;
+       import flash.events.IOErrorEvent;
+       import flash.events.NativeProcessExitEvent;
+       import flash.events.ProgressEvent;
+       import flash.filesystem.File;
+       import flash.net.URLLoader;
+       import flash.net.URLLoaderDataFormat;
+       import flash.net.URLRequest;
+       import flash.system.Capabilities;
+
+       public class DownloadUtil
+       {
+               public static function download(url:String, 
completeFunction:Function, errorFunction:Function=null, 
progressFunction:Function=null):void
+               {
+                       var loader:URLLoader = new URLLoader();
+                       var req:URLRequest = new URLRequest(url);
+                       req.idleTimeout = 60000;
+                       
+                       loader.dataFormat = URLLoaderDataFormat.BINARY; 
+                       loader.addEventListener(Event.COMPLETE, 
completeFunction,false,0,true);
+                       
+                       if (errorFunction != null)
+                       {
+                               
loader.addEventListener(ErrorEvent.ERROR,errorFunction,false,0,true);
+                               
loader.addEventListener(IOErrorEvent.IO_ERROR,errorFunction,false,0,true);
+                       }
+                       if(progressFunction != null)
+                       {
+                               loader.addEventListener(ProgressEvent.PROGRESS, 
progressFunction,false,0,true);
+                       }
+                       
+                       loader.load(req);
+               }
+               
+               public static function 
invokeNativeProcess(args:Vector.<String>):void
+               {
+                       var os:String = Capabilities.os.toLowerCase();
+                       var info:NativeProcessStartupInfo = new 
NativeProcessStartupInfo();
+                       var cmdExe:File = (os.indexOf("win") > -1) ? new 
File("C:\\Windows\\System32\\cmd.exe") : null;
+                       if (cmdExe && cmdExe.exists)
+                       {
+                               info.executable = cmdExe;
+                               info.arguments = args;
+                       }
+                       var installProcess:NativeProcess = new NativeProcess();
+                       installProcess.start(info);
+               }
+               
+               public static function 
executeFile(file:File,completeFunction:Function=null):void
+               {
+                       var os:String = Capabilities.os.toLowerCase();
+                       var info:NativeProcessStartupInfo = new 
NativeProcessStartupInfo();
+                       info.executable = file;
+                       var process:NativeProcess = new NativeProcess();
+                       if(completeFunction != null)
+                       {
+                               
process.addEventListener(NativeProcessExitEvent.EXIT, 
completeFunction,false,0,true);
+                       }
+                       process.addEventListener(NativeProcessExitEvent.EXIT, 
handleNativeProcessComplete,false,0,true);
+                       process.start(info);
+               }
+               
+               protected static function 
handleNativeProcessComplete(event:NativeProcessExitEvent):void
+               {
+                       var process:NativeProcess = NativeProcess(event.target);
+                       process.closeInput();
+                       process.exit(true);
+               }
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
new file mode 100644
index 0000000..2dc601b
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/util/MD5CompareUtil.as
@@ -0,0 +1,264 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.util
+{
+
+import flash.events.Event;
+import flash.events.EventDispatcher;
+import flash.events.IOErrorEvent;
+import flash.events.OutputProgressEvent;
+import flash.events.ProgressEvent;
+import flash.filesystem.File;
+import flash.filesystem.FileMode;
+import flash.filesystem.FileStream;
+import flash.net.URLLoader;
+import flash.net.URLLoaderDataFormat;
+import flash.net.URLRequest;
+import flash.utils.ByteArray;
+
+import org.apache.flex.crypto.MD5Stream;
+import org.apache.flex.utilities.common.Constants;
+
+[Event(name="progress", type="flash.events.ProgressEvent")]
+
+public class MD5CompareUtil extends EventDispatcher
+{
+
+       
//--------------------------------------------------------------------------
+       //
+       //    Class constants
+       //
+       
//--------------------------------------------------------------------------
+       
+       public static const MD5_DOMAIN:String = "https://www.apache.org/dist/";;
+       
+       public static const MD5_POSTFIX:String = ".md5";
+       
+    public static const CHUNK_SIZE:int = 2 * 1024 * 1024;
+    
+       
//--------------------------------------------------------------------------
+       //
+       //    Class properties
+       //
+       
//--------------------------------------------------------------------------
+       
+       //----------------------------------
+       //    instance
+       //----------------------------------
+       
+       private static var _instance:MD5CompareUtil;
+       
+       public static function get instance():MD5CompareUtil
+       {
+               if (!_instance)
+                       _instance = new MD5CompareUtil(new SE());
+               
+               return _instance;
+       }
+       
+       
//--------------------------------------------------------------------------
+       //
+       //    Constructor
+       //
+       
//--------------------------------------------------------------------------
+       
+       public function MD5CompareUtil(se:SE) {}
+               
+       
//--------------------------------------------------------------------------
+       //
+       //    Variables
+       //
+       
//--------------------------------------------------------------------------
+       
+       private var _callback:Function;
+       
+       private var _file:File;
+       
+       private var _fileStream:FileStream;
+       
+       private var _remoteMD5Value:String;
+       
+       private var _md5Stream:MD5Stream;
+       
+       private var _urlLoader:URLLoader;
+       
+       
//--------------------------------------------------------------------------
+       //
+       //    Properties
+       //
+       
//--------------------------------------------------------------------------
+       
+       //----------------------------------
+       //    errorMessage
+       //----------------------------------
+       
+       private var _errorMessage:String = "";
+
+       public function get errorMessage():String
+       {
+               return _errorMessage;
+       }
+
+       //----------------------------------
+       //    errorOccurred
+       //----------------------------------
+       
+       private var _errorOccurred:Boolean;
+
+       public function get errorOccurred():Boolean
+       {
+               return _errorOccurred;
+       }
+
+       //----------------------------------
+       //    fileIsVerified
+       //----------------------------------
+       
+       private var _fileIsVerified:Boolean;
+
+       public function get fileIsVerified():Boolean
+       {
+               return _fileIsVerified;
+       }
+       
+       private var _validMD5:Boolean;
+
+       public function get validMD5():Boolean
+       {
+               return _validMD5;
+       }
+
+       
//--------------------------------------------------------------------------
+       //
+       //    Methods
+       //
+       
//--------------------------------------------------------------------------
+       
+       //----------------------------------
+       //    compareSignatures
+       //----------------------------------
+       
+       private function compareSignatures():void
+       {
+               _md5Stream = new MD5Stream();
+               
+               _fileStream = new FileStream();
+               _fileStream.readAhead = CHUNK_SIZE;
+               _fileStream.addEventListener(Event.COMPLETE, 
fileStreamOpenHandler);
+               _fileStream.addEventListener(ProgressEvent.PROGRESS, 
fileStreamOpenHandler);
+               
_fileStream.addEventListener(OutputProgressEvent.OUTPUT_PROGRESS, 
fileStreamOpenHandler);
+               _fileStream.openAsync(_file, FileMode.READ); 
+       }
+       
+       //----------------------------------
+       //    fileStreamOpenHandler
+       //----------------------------------
+       
+       private function fileStreamOpenHandler(event:Event):void
+       {
+               if (event is ProgressEvent)
+               {
+                       _md5Stream.update(_fileStream, 
Math.floor(_fileStream.bytesAvailable / 64) * 64);
+                       
+                       dispatchEvent(event.clone());
+               }
+               else
+               {
+                       if (event.type == Event.COMPLETE)
+                       {
+                               _fileIsVerified = 
(_md5Stream.complete(_fileStream, _file.size) == _remoteMD5Value);
+                _fileStream.close();
+                               
+                               removeEventListeners();
+                               _callback();
+                       }
+               }
+       }
+       
+       //----------------------------------
+       //    urlLoaderResultHandler
+       //----------------------------------
+       
+       private function urlLoaderResultHandler(event:Event):void
+       {
+               _errorOccurred = event is IOErrorEvent;
+               
+               if (!_errorOccurred)
+               {
+                       _remoteMD5Value = String(_urlLoader.data);
+                       
+                       /** 
+                        * We need only the first line; split for both Unix and 
Windows 
+                        * style line delimiters
+                        */
+                       _remoteMD5Value = _remoteMD5Value.split("\n")[0];
+                       _remoteMD5Value = _remoteMD5Value.split("\r")[0];
+                       
+                       // Valid MD5 hashes are 32 hexidecimal characters
+                       _validMD5 = (_remoteMD5Value.search(new 
RegExp("[a-fA-F0-9]{32}")) == 0);
+
+                       compareSignatures();
+               }
+               else
+               {
+                       _errorMessage = String(IOErrorEvent(event).text);
+               }
+       }
+       
+       //----------------------------------
+       //    verifyMD5
+       //----------------------------------
+       
+       public function verifyMD5(localSDKZipFile:File, 
remoteSDKZipPath:String, 
+                                                         
onVerificationComplete:Function):void
+       {
+               _file = localSDKZipFile;
+               
+               _callback = onVerificationComplete;
+               
+               _urlLoader = new URLLoader();
+               _urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
+               _urlLoader.addEventListener(Event.COMPLETE, 
urlLoaderResultHandler);
+               _urlLoader.addEventListener(IOErrorEvent.IO_ERROR, 
urlLoaderResultHandler);
+               if (remoteSDKZipPath.substr(0, Constants.URL_PREFIX.length) != 
Constants.URL_PREFIX &&
+                       remoteSDKZipPath.substr(0, 
Constants.FILE_PREFIX.length) != Constants.FILE_PREFIX &&
+                       remoteSDKZipPath.search("http") != 0)
+               {
+                       _urlLoader.load(new URLRequest(MD5_DOMAIN + 
remoteSDKZipPath + MD5_POSTFIX));
+               }
+               else
+               {
+                       _urlLoader.load(new URLRequest(remoteSDKZipPath + 
MD5_POSTFIX));
+               }
+       }
+       
+       private function removeEventListeners():void
+       {
+               _fileStream.removeEventListener(Event.COMPLETE, 
fileStreamOpenHandler);
+               _fileStream.removeEventListener(ProgressEvent.PROGRESS, 
fileStreamOpenHandler);
+               
_fileStream.removeEventListener(OutputProgressEvent.OUTPUT_PROGRESS, 
fileStreamOpenHandler);
+               _urlLoader.removeEventListener(Event.COMPLETE, 
urlLoaderResultHandler);
+               _urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, 
urlLoaderResultHandler);
+       }
+       
+}
+}
+
+class SE {}

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml
new file mode 100644
index 0000000..b055286
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/UpdaterDialog.mxml
@@ -0,0 +1,204 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<s:TitleWindow xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                          xmlns:s="library://ns.adobe.com/flex/spark" 
+                          xmlns:mx="library://ns.adobe.com/flex/mx" 
+                          width="600" height="412" 
+                          title="Update available"
+                          xmlns:controls="ws.tink.spark.controls.*"
+                          
skinClass="ws.tink.spark.skins.controls.UpdaterDialogSkin">
+       
+       <fx:Script><![CDATA[
+               
+               import air.update.events.DownloadErrorEvent;
+               import air.update.events.StatusUpdateEvent;
+               import air.update.events.UpdateEvent;
+               
+               import 
com.riaspace.nativeApplicationUpdater.utils.HdiutilHelper;
+               
+               import mx.controls.Alert;
+               import mx.core.Application;
+               import mx.core.FlexGlobals;
+               import mx.events.CloseEvent;
+               import mx.utils.DisplayUtil;
+               
+               import org.apache.flex.packageflexsdk.util.DownloadUtil;
+               import org.apache.flex.utilities.common.Constants;
+               import org.apache.flex.utilities.common.Tools;
+               
+               [Bindable] 
+               private var _newVersion:String;
+               
+               private var _fileWindows:File;
+               private var _fileMac:File;
+               
+               protected function handleYesBtnClick(event:MouseEvent):void
+               {
+                       currentState = "downloading";
+                       downloadUpdater();
+               }
+               
+               protected function downloadUpdater():void
+               {
+                       var applicationExtension:String = 
Tools.getApplicationExtension();
+                       var downloadCompleteHandler:Function =  
+                               (applicationExtension == 
Constants.APPLICATION_EXTENSION_WIN) ? 
+                               handleWindowsInstallerDownloadComplete : 
handleMacInstallerDownloadComplete;
+                               
+                       var main:Object = FlexGlobals.topLevelApplication;
+                       
+                       var url:String = 
+                               main.installerAppPath + 
main.installerAppFileName + applicationExtension;
+                       
+                       DownloadUtil.download(url, downloadCompleteHandler, 
handleDownloadError, handleDownloadProgress);
+               }
+               
+               protected function 
handleWindowsInstallerDownloadComplete(event:Event):void
+               {
+                       _fileWindows = File.createTempFile();
+                       writeFileToDirectory(_fileWindows,event.target.data);
+                       installFromFile(_fileWindows);
+               }
+               
+               protected function installFromFile(file:File):void
+               {
+                       DownloadUtil.executeFile(file);
+                       setTimeout(NativeApplication.nativeApplication.exit, 
200);
+               }
+               
+               protected function 
handleMacInstallerDownloadComplete(event:Event):void
+               {
+                       _fileMac = File.createTempFile();
+                       writeFileToDirectory(_fileMac,event.target.data);
+                       var hdiutilHelper:HdiutilHelper = new 
HdiutilHelper(_fileMac);
+                       hdiutilHelper.addEventListener(Event.COMPLETE, 
handleHdiutilHelperComplete);
+                       hdiutilHelper.addEventListener(ErrorEvent.ERROR, 
handleHdiutilHelperError);
+                       hdiutilHelper.attach();
+               }
+               
+               private function handleHdiutilHelperComplete(event:Event):void
+               {
+                       var hdiutilHelper:HdiutilHelper = event.target as 
HdiutilHelper;
+                       hdiutilHelper.removeEventListener(Event.COMPLETE, 
handleHdiutilHelperComplete);
+                       hdiutilHelper.removeEventListener(ErrorEvent.ERROR, 
handleHdiutilHelperError);
+                       
+                       var attachedDmg:File = new 
File(hdiutilHelper.mountPoint);
+                       var files:Array = attachedDmg.getDirectoryListing();
+                       
+                       if (files.length == 1)
+                       {
+                               var installFileFolder:File = 
File(files[0]).resolvePath("Contents/MacOS");
+                               var installFiles:Array = 
installFileFolder.getDirectoryListing();
+                               
+                               if (installFiles.length == 1)
+                               {
+                                       installFromFile(installFiles[0]);
+                               }
+                               else
+                                       dispatchEvent(new 
ErrorEvent(ErrorEvent.ERROR, false, false, 
+                                               "Contents/MacOS folder should 
contain only 1 install file!"));
+                       }
+                       else
+                       {
+                               dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, 
false, false, 
+                                       "Mounted volume should contain only 1 
install file!"));
+                       }
+               }
+               
+               private function handleHdiutilHelperError(event:ErrorEvent):void
+               {
+                       var hdiutilHelper:HdiutilHelper = event.target as 
HdiutilHelper;
+                       hdiutilHelper.removeEventListener(Event.COMPLETE, 
handleHdiutilHelperComplete);
+                       hdiutilHelper.removeEventListener(ErrorEvent.ERROR, 
handleHdiutilHelperError);
+                       
+                       dispatchEvent(new ErrorEvent(ErrorEvent.ERROR, false, 
false, 
+                               "Error attaching dmg file!"));
+               }
+               
+               protected function 
handleDownloadProgress(event:ProgressEvent):void
+               {
+                       var bytesTotal:int = event.bytesTotal;
+                       var bytesLoaded:int = event.bytesLoaded;
+                       var percentLoaded:int = 
Math.round(bytesLoaded*100/bytesTotal);
+                       progressBar.percent = percentLoaded;
+               }
+               
+               
+               private function handleDownloadError(event:Event):void
+               {
+                       Alert.show("Error downloading update file, try again 
later.");
+               }
+               
+               public function set latestVersion(value:String):void
+               {
+                       _newVersion = value;
+               }
+               
+               private function 
writeFileToDirectory(file:File,data:ByteArray):void
+               {
+                       var fs:FileStream = new FileStream();
+                       fs.open(file, FileMode.WRITE);
+                       fs.writeBytes(data); 
+                       fs.close();
+               }
+               
+               protected function handleNoBtnClick(event:MouseEvent):void
+               {
+                       dispatchEvent(new CloseEvent(CloseEvent.CLOSE));
+               }
+               
+       ]]></fx:Script>
+       
+       <s:states>
+               <s:State name="normal" />
+               <s:State name="downloading" />
+       </s:states>
+       
+       <s:HGroup width="100%" 
+                       top="210" 
+                         horizontalCenter="0" 
+                         verticalAlign="top">
+               <s:VGroup width="100%" 
+                                 horizontalAlign="center">
+                       <s:Label text="New version ({_newVersion}) is 
available."
+                                        fontSize="14"/>
+                       <s:Label text="Do you want to download and install it?" 
+                                        fontSize="14"/>
+                       <controls:ProgressBar id="progressBar" 
+                                                                 width="80%" 
+                                                                 height="21" />
+                       <s:Spacer height="20" />
+                       <s:HGroup>
+                               <s:Button id="btnYes" 
+                                                 height="30"
+                                                 styleName="mainBtnStyle"
+                                                 label="UPDATE" 
+                                                 
click="handleYesBtnClick(event)" 
+                                                 enabled.downloading="false" />
+                               <s:Button id="btnNo" 
+                                                 height="30"
+                                                 styleName="negativeBtnStyle"
+                                                 label="DON'T UPDATE" 
+                                                 
click="handleNoBtnClick(event)"
+                                                 enabled.downloading="false" />
+                       </s:HGroup>
+               </s:VGroup>
+       </s:HGroup>
+</s:TitleWindow>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml
new file mode 100644
index 0000000..1ac829e
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AboutDialog.mxml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                 xmlns:s="library://ns.adobe.com/flex/spark" 
+                 xmlns:mx="library://ns.adobe.com/flex/mx" width="400" 
height="300">
+       <fx:Declarations>
+               <!-- Place non-visual elements (e.g., services, value objects) 
here -->
+       </fx:Declarations>
+</s:Window>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml
new file mode 100644
index 0000000..1fe3731
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/AdobeLicense.mxml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                 xmlns:s="library://ns.adobe.com/flex/spark" 
+                 xmlns:mx="library://ns.adobe.com/flex/mx" width="810" 
height="800" showStatusBar="false"
+                 title="Adobe Flex SDK License Agreement">
+       <fx:Script>
+               <![CDATA[
+                       import 
org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
+                       
+                       import spark.events.IndexChangeEvent;
+                       [Bindable]private var adobelicenseTextStr:String = 
"Adobe Flex SDK License Agreement:  All files contained in this Adobe Flex SDK 
download are subject to and governed by the " +
+                                                                               
                                "Adobe Flex SDK License Agreement specified 
here: 
http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf,
 " +
+                                                                               
                                "By downloading, modifying, distributing, using 
and/or accessing any files in this Adobe Flex SDK, " +
+                                                                               
                                "you agree to the terms and conditions of the 
applicable end user license agreement.  " +
+                                                                               
                                "In addition to the Adobe license terms, you 
also agree to be bound by the third-party terms specified here: " +
+                                                                               
                                
"http://www.adobe.com/products/eula/third_party/. " +
+                                                                               
                                "Adobe recommends that you review these 
third-party terms."
+                       
+                       protected function 
tabbar1_changeHandler(event:IndexChangeEvent):void
+                       {
+                               if(event.target.selectedItem.toString() == 
"Adobe Flex SDK License Agreement" )
+                               {
+                                       htmlTabs.selectedChild = 
adobeLicenseHTML;
+                               }
+                               else if(event.target.selectedItem.toString() == 
"Third Party Terms" )
+                               {
+                                       htmlTabs.selectedChild = thirdPartyHTML;
+                               }
+                       }
+                       
+               ]]>
+       </fx:Script>
+       <s:layout>
+               <s:VerticalLayout />
+       </s:layout>
+       <s:TextArea 
+               width="100%" 
+               height="75" 
+               fontSize="12" 
+               text="{adobelicenseTextStr}" 
+               verticalScrollPolicy="off" 
+               editable="false"/>
+       <s:TabBar change="tabbar1_changeHandler(event)">
+               <s:ArrayCollection>
+                       <fx:String>Adobe Flex SDK License Agreement</fx:String>
+                       <fx:String>Third Party Terms</fx:String>
+               </s:ArrayCollection>
+       </s:TabBar>
+       <mx:ViewStack id="htmlTabs" width="100%" height="100%">
+               <s:NavigatorContent id="adobeLicenseHTML" width="100%" 
height="100%">
+                       <mx:HTML width="100%" height="100%" 
location="http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf";
 />
+               </s:NavigatorContent>
+               <s:NavigatorContent id="thirdPartyHTML" width="100%" 
height="100%">
+                       <mx:HTML width="100%" height="100%" 
location="http://www.adobe.com/products/eula/third_party/pdfs/flex4_5_sdk_opensource_legal_notices.pdf";
 />
+               </s:NavigatorContent>
+       </mx:ViewStack>
+       <s:HGroup width="100%" height="50" verticalAlign="middle" 
paddingRight="15">
+               <s:Spacer width="100%" />
+               <s:Button 
label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}" click="close()" 
styleName="genericBtnStyle"  />
+       </s:HGroup>
+</s:Window>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml
new file mode 100644
index 0000000..977d149
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/ConsoleWindow.mxml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009";
+                 xmlns:s="library://ns.adobe.com/flex/spark"
+                 xmlns:mx="library://ns.adobe.com/flex/mx"
+                 title="Install Log" width="600" height="300" 
showStatusBar="false"
+                 >
+
+       <fx:Script>
+               <![CDATA[
+        import mx.binding.utils.BindingUtils;
+        import mx.binding.utils.ChangeWatcher;
+        import mx.collections.ArrayCollection;
+
+        import org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
+
+        [Bindable]
+        public var messages:ArrayCollection = new ArrayCollection();
+
+        public function closeWindow(event:MouseEvent):void {
+            close();
+        }
+
+        private function handleCopyBtnClick(event:MouseEvent):void {
+            var logText:String = "";
+
+            for each (var str:Object in messages) {
+                logText += str.toString() + "\n";
+            }
+
+            Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, 
logText);
+        }
+
+        private function logTxtArea_copyHandler(event:Event):void {
+            var message:String = "";
+            var messages:List = event.currentTarget as List;
+            var clipBoardData:String;
+
+            for each (message in messages.selectedItems) {
+                clipBoardData += message + "\n";
+            }
+            if (clipBoardData) {
+                Clipboard.generalClipboard.clear();
+                
Clipboard.generalClipboard.setData(ClipboardFormats.TEXT_FORMAT, clipBoardData, 
false);
+            }
+        }
+        ]]>
+       </fx:Script>
+
+       <s:List id="logTxtArea" dataProvider="{messages}"
+            allowMultipleSelection="true"
+            copy="logTxtArea_copyHandler(event)"
+                       top="0"
+                       bottom="35"
+                       left="0"
+                       right="0"
+                       fontFamily="openSansSemibold"
+                       fontSize="14">
+               <s:layout>
+                       <s:VerticalLayout gap="0" horizontalAlign="justify" />
+               </s:layout>
+       </s:List>
+       <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_COPY_LOG}"
+                         click="handleCopyBtnClick(event)"
+                         styleName="genericBtnStyle"
+                         left="7.5"
+                         bottom="7.5"/>
+       <s:Button label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}"
+                         click="closeWindow(event)"
+                         right="7.5"
+                         bottom="7.5"
+                         styleName="genericBtnStyle"  />
+</s:Window>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml
new file mode 100644
index 0000000..5b48716
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/MPLLicense.mxml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:Window xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                 xmlns:s="library://ns.adobe.com/flex/spark" 
+                 xmlns:mx="library://ns.adobe.com/flex/mx" width="600" 
height="300" showStatusBar="false"
+                 title="Mozilla Public License Version 1.1">
+       <fx:Script>
+               <![CDATA[
+                       import 
org.apache.flex.packageflexsdk.resource.ViewResourceConstants;
+                       [Bindable]private var mplTextStr:String = "Mozilla 
Public License Version 1.1:" +  
+                               "The contents of the file(s) are subject to the 
Mozilla Public License Version 1.1." +
+                               "You may not use the file(s) except in 
compliance with the License. " +
+                               "You may obtain a copy of the License here: 
http://www.mozilla.org/MPL/. " +
+                               "By downloading, modifying, distributing, using 
and/or accessing the file(s), " +
+                               "you agree to the terms and conditions of the 
applicable license agreement.";
+               ]]>
+       </fx:Script>
+       <s:layout>
+               <s:VerticalLayout />
+       </s:layout>
+       <s:TextArea 
+               width="100%" 
+               height="100%" 
+               fontSize="14" 
+               text="{mplTextStr}" 
+               editable="false"/>
+       <s:HGroup width="100%" height="50" verticalAlign="middle" 
paddingRight="15" >
+               <s:Spacer width="100%" />
+               <s:Button 
label="{ViewResourceConstants.instance.BTN_LABEL_CLOSE}" click="close()" 
styleName="genericBtnStyle"  />
+       </s:HGroup>
+</s:Window>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml
new file mode 100644
index 0000000..4838882
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/components/Tracker.mxml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009";
+                xmlns:s="library://ns.adobe.com/flex/spark"
+                xmlns:mx="library://ns.adobe.com/flex/mx" width="400" 
height="300">
+       <fx:Script>
+               <![CDATA[
+                       import org.apache.flex.utilities.common.Constants;
+                       public function 
trackInstallerSuccess(sdkLabel:String=null,version:String=null,os:String=null):void
+                       {
+                               if(version == null && os == null)
+                               {
+                                       trackInstallerHTML.location = 
Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_SUCCESS;
+                               }
+                               else
+                               {
+                                       trackInstallerHTML.location = 
Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_SUCCESS + "?label=" + 
sdkLabel + "&version=" + version + "&os=" + os;
+                               }
+                       }
+                       
+                       public function 
trackInstallerFailure(sdkLabel:String=null,version:String=null,os:String=null):void
+                       {
+                               if(version == null && os == null)
+                               {
+                                       trackInstallerHTML.location = 
Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_FAILURE;
+                               }
+                               else
+                               {
+                                       trackInstallerHTML.location = 
Constants.APACHE_FLEX_URL + Constants.INSTALLER_TRACK_FAILURE + "&label=" + 
sdkLabel + "&version=" + version + "&os=" + os;
+                               }
+                       }
+                       
+               ]]>
+       </fx:Script>
+       <mx:HTML id="trackInstallerHTML" width="100%" height="100%" />
+</s:Group>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml
new file mode 100644
index 0000000..4469d26
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/controls/MultiStepProgressIndicator.mxml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                                         
xmlns:s="library://ns.adobe.com/flex/spark" 
+                                         
xmlns:mx="library://ns.adobe.com/flex/mx">
+       <fx:Declarations>
+               <!-- Place non-visual elements (e.g., services, value objects) 
here -->
+       </fx:Declarations>
+       <fx:Script>
+               <![CDATA[
+                       import mx.collections.ArrayCollection;
+                       [Bindable] public var steps:ArrayCollection;
+               ]]>
+       </fx:Script>
+       <s:DataGroup dataProvider="{steps}" 
itemRenderer="ws.tink.spark.controls.StepRenderer">
+               <s:layout>
+                       <s:HorizontalLayout gap="12"/>
+               </s:layout>
+       </s:DataGroup>
+</s:Group>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as
new file mode 100644
index 0000000..ab02321
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/events/InstallItemSelectionEvent.as
@@ -0,0 +1,36 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.flex.packageflexsdk.view.events
+{
+       import flash.events.Event;
+       
+       import org.apache.flex.packageflexsdk.model.InstallerComponentVO;
+       
+       public class InstallItemSelectionEvent extends Event
+       {
+               public static var INSTALL_ITEM_SELECTION_CHANGED:String = 
"installItemSelectionChanged";
+               public var item:InstallerComponentVO;
+               
+               public function InstallItemSelectionEvent(type:String, 
bubbles:Boolean=false, cancelable:Boolean=false)
+               {
+                       super(type, bubbles, cancelable);
+               }
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml
----------------------------------------------------------------------
diff --git 
a/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml
 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml
new file mode 100644
index 0000000..e6ec22c
--- /dev/null
+++ 
b/flex-installer/installer/src/org/apache/flex/packageflexsdk/view/itemrenderers/OptionalInstallItemRenderer.mxml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements.  See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License.  You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+-->
+<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"; 
+                               xmlns:s="library://ns.adobe.com/flex/spark" 
+                               xmlns:mx="library://ns.adobe.com/flex/mx" 
+                               autoDrawBackground="true" width="100%">
+       <s:layout>
+               <s:HorizontalLayout verticalAlign="middle" gap="5" 
paddingLeft="5" />
+       </s:layout>
+       <fx:Metadata>
+               [Event(name="installItemSelectionChanged", 
type="org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent")]
+       </fx:Metadata>
+       
+       <fx:Script>
+               <![CDATA[
+                       import 
org.apache.flex.packageflexsdk.model.InstallerComponentVO;
+                       import 
org.apache.flex.packageflexsdk.view.events.InstallItemSelectionEvent;
+                       
+                       protected function 
checkbox1_changeHandler(event:Event):void
+                       {
+                               var e:InstallItemSelectionEvent = new 
InstallItemSelectionEvent(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED,true);
+                               data.selected = event.target.selected; 
+                               e.item = InstallerComponentVO(data);
+                               dispatchEvent(e);
+                       }
+                       
+                       protected function 
text_changeHandler(checkbox:CheckBox):void
+                       {
+                               checkbox.selected = ! checkbox.selected;
+                                                               
+                               var e:InstallItemSelectionEvent = new 
InstallItemSelectionEvent(InstallItemSelectionEvent.INSTALL_ITEM_SELECTION_CHANGED,true);
+                               data.selected = checkbox.selected; 
+                               e.item = InstallerComponentVO(data);
+                               dispatchEvent(e);
+                       }
+               ]]>
+       </fx:Script>
+       
+       <s:CheckBox id="checkbox1" selected="{data.selected}" enabled="true" 
change="checkbox1_changeHandler(event)"  />
+       <s:Label text="{data.label}" fontFamily="openSansBold" fontSize="11" 
click="text_changeHandler(checkbox1)" width="100%" />
+       
+</s:ItemRenderer>

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/de_DE.properties
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/properties/de_DE.properties 
b/flex-installer/installer/src/properties/de_DE.properties
new file mode 100644
index 0000000..dd2a913
--- /dev/null
+++ b/flex-installer/installer/src/properties/de_DE.properties
@@ -0,0 +1,131 @@
+################################################################################
+##
+##  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.
+##
+################################################################################
+ASK_BLAZEDS=Apache Flex kann optional Adobe BlazeDS einbinden. Dieses Feature 
benötigt flex-messaging-common.jar aus dem Adobe Flex SDK. Die Adobe SDK 
Lizenzvereinbarung für Adobe Flex 4.6 gilt für diese Jar-Datei. Diese Lizenz 
ist nicht mit der Apache V2 Lizenz vereinbar. Möchten Sie diese Jar-Datei aus 
dem Adobe Flex SDK installieren?
+ASK_FONTSWF=Apache Flex kann optional das Feature \"Einbetten von 
Schriftarten\" einbinden. Dieses Feature benötigt verschieden Schriftarten 
Jar-Dateien aus dem Adobe Flex SDK. Die Adobe SDK Lizenzvereinbarung für Adobe 
Flex 4.6 gilt für diese Jar-Dateien. Diese Lizenz ist nicht mit der Apache V2 
Lizenz vereinbar. Möchten Sie diese Jar-Dateien aus dem Adobe Flex SDK 
installieren?
+ASK_OSMF=Das Open Source Media Framework (OSMF) welches von den 
Videokomponenten verwendet wird ist unter der Mozilla Public License Version 
1.1 lizensiert. Möchten Sie das Open Source Media Framework (OSMF) jetzt 
installieren?
+ASK_TLF=Das Adobe Text Layout Framework (TLF) welches von den Spark 
Textkomponeten verwendet wird ist unter der Mozilla Public License Version 1.1 
lizensiert.  Möchten Sie das Adobe Text Layout Framework (TLF) jetzt 
installieren?
+ASK_APACHE_FLEX=Das Apache Flex SDK verwendet die Apache License V2. Möchten 
Sie jetzt das Apache Flex SDK installieren?
+ASK_ADOBE_AIR_SDK=Das Adobe AIR SDK verwendet die Adobe SDK 
Lizenzvereinbarung. Möchten SIe jetzt das Adobe AIR SDK installieren?
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Die Adobe Flash Player playerglobal.swc 
verwendet die Adobe SDK Lizenzvereinbarung. Möchten SIe jetzt die Adobe Flash 
Player playerglobal.swc installieren?
+ASK_SWFOBJECT=Das SWFObject utility verwendet die MIT License (MIT).  Möchten 
SIe jetzt das SWFObject utility installieren?
+ASK_OFL_FONTS=The FlatSpark theme uses fonts licensed under the Open Font 
License.  Do you want to install the Font Awesome and Lato Fonts?
+BTN_LABEL_ADOBE_LICENSE=ADOBE LIZENZ ANZEIGEN
+BTN_LABEL_BROWSE=ÖFFNEN
+BTN_LABEL_CLOSE=SCHLIEßEN
+BTN_LABEL_INSTALL=INSTALLIEREN
+BTN_LABEL_INSTALL_LOG=PROTOKOLL ANZEIGEN
+BTN_LABEL_MPL_LICENSE=MPL LIZENZ ANZEIGEN
+BTN_LABEL_NEXT=WEITER
+BTN_LABEL_NEXT=ZURÜCK
+BTN_DISCLAIMER=Haftungsausschluss
+BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=APACHE FLEX ORDNER ÖFFNEN
+ERROR_CONFIG_XML_LOAD=Fehler beim Laden der XML Konfigurationsdatei: 
+ERROR_DIR_NOT_EMPTY=Das ausgewählte Verzeichnis ist nicht leer
+ERROR_INVALID_AIR_SDK_URL_MAC=Adobe AIR SDK URL für Mac in 
Konfigurationsdatei ungültig
+ERROR_INVALID_AIR_SDK_URL_WINDOWS=Adobe AIR SDK URL für Windows in 
Konfigurationsdatei ungültig
+ERROR_INVALID_FLASH_PLAYER_SWC_URL=Flash Player swc URL in Konfigurationsdatei 
ungültig
+ERROR_INVALID_FLEX_SDK_DIRECTORY=Ungültiges Flex SDK Verzeichnis ausgewählt
+ERROR_INVALID_SDK_URL=Apache Flex SDK URL in Konfigurationsdatei ungültig
+ERROR_MIRROR_FETCH=Fehler beim ermitteln eines mirrors für den Download der 
Apache Flex SDK Binaries: 
+ERROR_NATIVE_PROCESS_ERROR=Native Process Fehler Kann Adobe AIR SDK nicht 
entpacken
+ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Native Process nicht unterstützt. Kann 
Adobe AIR SDK nicht entpacken
+ERROR_UNABLE_TO_COPY_FILE=Kopieren von Datei fehlgeschlagen
+ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY=Erstellen von Temp Verzeichnis 
fehlgeschlagen
+ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY=Löschen von Temp Verzeichnis 
fehlgeschlagen
+ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK=Download von Adobe AIR Runtime Kit 
fehlgeschlagen
+ERROR_UNABLE_TO_DOWNLOAD_FILE=Downlod fehlgeschlagen von Datei: {0}
+ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=Download von Flash Player swc 
fehlgeschlagen
+ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=Download von Apache Flex SDK fehlgeschlagen
+ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=Installation von Konfigurationsdatei 
fehlgeschlagen
+ERROR_UNABLE_TO_UNZIP=Entpacken von Datei fehlgeschlagen: 
+ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Download von SWFObject fehlgeschlagen
+ERROR_UNSUPPORTED_OPERATING_SYSTEM=Nicht unterstütztes Betriebssystem
+ERROR_VERIFY_FLEX_SDK=Die Signatur der heruntergeladenen Dateien stimmt nicht 
mit der Apache Flex SDK MD5 Signatur überein. Dateien sind fehlerhaft. 
Installation wird abgebrochen.
+FETCH_GEO_IP=Versuche Länderkennung des Benutzer über GeoIP Service zu 
identifizieren...
+FETCH_GEO_IP_DONE=Länderkennung erfolgreich über GeoIP Service identifiziert.
+FETCH_GEO_IP_ERROR=Identifizierung von Länderkennung über GeoIP Service 
fehlgeschlagen
+FETCH_MIRROR_CGI=Versuche mirror URL für Apache Flex SDK über CGI-Skript zu 
ermitteln...
+FETCH_MIRROR_CGI_DONE=Ermitteln von mirror URL über CGI-Skript erfolgreich.
+FETCH_MIRROR_CGI_ERROR=Ermitteln von mirror URL über CGI-Skript 
fehlgeschlagen.
+FETCH_MIRROR_LIST=Versuche mirror Liste von Apache.org zu laden...
+FETCH_MIRROR_LIST_DONE=Laden von mirror Liste von Apache.org erfolgreich.
+FETCH_MIRROR_LIST_PARSED=mirror Liste verarbeitet und unter Verwendung der 
Länderkennung folgende Domain ermittelt: 
+INFO_ABORT_INSTALLATION=Installation abgebrochen
+INFO_APP_INVOKED=Kommandozeilenmodus gestartet verwendete Argumente: 
+INFO_CREATING_FLEX_HOME=Erstelle Apache Flex home
+INFO_CREATING_TEMP_DIR=Erstelle Temp Verzeichnis
+INFO_CURRENT_LANGUAGE=Sprache wählen
+INFO_DOWNLOADING_ADOBE_FLEX_SDK=Lade Adobe Flex SDK von: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=Lade Adobe AIR Runtime Kit für Mac von: 
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=Lade Adobe AIR Runtime Kit für 
Windows von: 
+INFO_DOWNLOADING_FILE_FROM=Lade {0} von: {1} herunter
+INFO_DOWNLOADING_FLEX_SDK=Lade Apache Flex SDK von: 
+INFO_DOWNLOADED=Download abgeschlossen 
+INFO_ENTER_VALID_FLEX_SDK_PATH=Bitte geben Sie einen gültigen Pfad für das 
Flex SDK ein
+INFO_FINISHED_UNTARING=untar abgeschlossen: 
+INFO_FINISHED_UNZIPPING=entpacken abgeschlossen: 
+INFO_INSTALLATION_COMPLETE=Installation abgeschlossen
+INFO_INSTALLING=Installiere...
+INFO_INSTALLING_CONFIG_FILES=Installiere Framework Konfigurationsdateien für 
die Verwendung mit einer IDE
+INFO_INSTALLING_PLAYERGLOBAL_SWC=Installiere Adobe Flash Player 
playerglobal.swc von: 
+INFO_INVOKED_GUI_MODE=GUI Modus gestartet
+INFO_LICENSE_AGREEMENTS=Lizenzvereinbarung
+INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=Dieser Installer wird Software von 
unterschiedlichen Seiten mit unterschiedlichen Lizenzen herunterladen. Bitte 
wählen Sie jedes Element auf der linken Seite aus, lesen Sie die jeweiligen 
Lizenzvereinbarungen und bestätigen Sie mit einem Häkchen, dass Sie den 
jeweiligen Bedingungen zustimmen.
+INFO_SELECT_DIRECTORY=Wählen Sie das Verzeichnis in dem Sie das Apache Flex 
SDK installieren wollen
+INFO_SELECT_DIRECTORY_INSTALL=Installationsverzeichnis wählen
+INFO_UNZIPPING=Entpacke: 
+INFO_VERIFY_FLEX_SDK_DONE=Die Signatur der heruntergeladenen Dateien stimmt 
mit der Apache Flex SDK MD5 Signatur überein. Die Datei ist gültig.
+INFO_WINDOW_TITLE=Installiere Apache Flex SDK {0} für die Verwendung mit 
einer IDE
+INSTALL_AGREE=Ich Stimme zu, Installation Starten
+INSTALL_AGREE_ALL=Ich Stimme allen Optionen und Lizenzen zu, Installation 
starten
+INSTALL_DISAGREE=Ich Stimme nicht zu, nicht installieren
+SELECT_PATH_PROMPT=In welches Verzeichnis soll das Apache Flex SDK installiert 
werden?
+STEP_CREATE_DIRECTORIES=Erstelle Verzeichnisse
+STEP_SELECT_AIR_AND_FLASH_VERSION=Bitte wählen Sie die AIR und Flash Player 
Versionen.
+STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK=Apache Flex SDK (Benötigt)
+STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK=Adobe AIR SDK (Benötigt)
+STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player 
playerglobal.swc (Benötigt)
+STEP_REQUIRED_INSTALL_SWFOBJECT=SWFObject (Benötigt)
+STEP_INSTALL_CONFIG_FILES=Installiere Framework Konfigurationsdateien
+STEP_REQUIRED_INSTALL_OSMF=OSMF (Benötigt)
+STEP_REQUIRED_INSTALL_TLF=Adobe Text Layout Framework (Benötigt)
+STEP_REQUIRED_INSTALL_OFL_FONTS=Font Awesome and Lato Fonts (Benötigt)
+STEP_OPTIONAL_INSTALL_BLAZEDS=Remoting Support (Optional)
+STEP_OPTIONAL_INSTALL_FONTSWF=Adobe Bibliothek zur Einbettung von Schriften 
(Optional)
+STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=Entpacke Adobe AIR Runtime Kit
+STEP_UNZIP_AIR_RUNTIME_KIT=Entpacke Adobe AIR Runtime Kit
+STEP_UNZIP_FLEX_SDK=Entpacke Apache Flex SDK
+STEP_VERIFY_FLEX_SDK=Verifiziere Apache Flex SDK MD5 Signature
+LICENSE_APACHE_V2=Apache V2 Lizenz
+LICENSE_URL_APACHE_V2=http://www.apache.org/licenses/LICENSE-2.0.html
+LICENSE_ADOBE_SDK=Adobe Flex SDK Lizenzvereinbarung
+LICENSE_URL_ADOBE_SDK=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+LICENSE_ADOBE_AIR_SDK=Adobe AIR SDK Lizenzvereinbarung
+LICENSE_URL_ADOBE_AIR_SDK=http://www.adobe.com/products/air/sdk-eula.html
+LICENSE_SWFOBJECT=MIT Lizenz
+LICENSE_URL_SWFOBJECT=http://opensource.org/licenses/mit-license.php
+LICENSE_OSMF=Mozilla Public License Version 1.1
+LICENSE_URL_OSMF=http://www.mozilla.org/MPL/
+LICENSE_TLF=Mozilla Public License Version 1.1
+LICENSE_URL_TLF=http://www.mozilla.org/MPL/
+LICENSE_FONTSWF=Adobe Flex SDK Lizenzvereinbarung
+LICENSE_URL_FONTSWF=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+LICENSE_BLAZEDS=Adobe Flex SDK Lizenzvereinbarung
+LICENSE_URL_BLAZEDS=http://www.adobe.com/products/eulas/pdfs/adobe_flex_software_development_kit-combined-20110916_0930.pdf
+INFO_TRACKING=Anonyme Nutzungsstatistiken werden in Übereinstimmung\n mit 
unserer Datenschutzerklärung gesammelt.

http://git-wip-us.apache.org/repos/asf/flex-utilities/blob/cda78507/flex-installer/installer/src/properties/el_GR.properties
----------------------------------------------------------------------
diff --git a/flex-installer/installer/src/properties/el_GR.properties 
b/flex-installer/installer/src/properties/el_GR.properties
new file mode 100644
index 0000000..5f8a4bf
--- /dev/null
+++ b/flex-installer/installer/src/properties/el_GR.properties
@@ -0,0 +1,123 @@
+################################################################################
+##
+##  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.
+##
+################################################################################
+BTN_LABEL_BROWSE=ΑΝΑΖΗΤΗΣΗ
+BTN_LABEL_CLOSE=ΕΞΟΔΟΣ
+BTN_LABEL_INSTALL=ΕΓΚΑΤΑΣΤΑΣΗ
+BTN_LABEL_INSTALL_LOG=ΑΡΧΕΙΟ ΚΑΤΑΓΡΑΦΗΣ 
ΕΓΚΑΤΑΣΤΑΣΗΣ
+BTN_LABEL_NEXT=ΕΠΟΜΕΝΟ
+BTN_LABEL_BACK=πίσω
+BTN_LABEL_OPEN_APACHE_FLEX_FOLDER=ΑΝΟΙΓΜΑ ΦΑΚΕΛΟΥ APACHE FLEX
+ERROR_CONFIG_XML_LOAD=Πρόεκυψε σφάλμα κατά την 
προσπάθεια φόρτωσης του αρχείου ρυθμίσεων 
XML:
+ERROR_DIR_NOT_EMPTY=Ο κατάλογος που επιλέξατε δεν 
είναι άδειος
+ERROR_INVALID_AIR_SDK_URL_MAC=Λανθασμένο Adobe AIR SDK URL για 
Mac στο αρχείο ρυθμίσεων
+ERROR_INVALID_AIR_SDK_URL_WINDOWS=Λανθασμένο Adobe AIR SDK URL 
για Windows στο αρχείο ρυθμίσεων
+ERROR_INVALID_FLASH_PLAYER_SWC_URL=Λανθασμένο Flash Player swc URL 
στο αρχείο ρυθμίσεων
+ERROR_INVALID_FLEX_SDK_DIRECTORY=Έχετε επιλέξει μη έγκυρο 
κατάλογο για το Flex SDK 
+ERROR_INVALID_SDK_URL=Λανθασμένο Apache Flex SDK URL στο 
αρχείο ρυθμίσεων.
+ERROR_NATIVE_PROCESS_ERROR=Σφάλμα κατά την εκτέλεση 
Native Process.  Δεν είναι δυνατή η αποσυμπίεση 
(untar) του Adobe AIR SDK
+ERROR_NATIVE_PROCESS_NOT_SUPPORTED=Δεν υπάρχει υποστήριξη 
Native Process. Δεν είναι δυνατή η αποσυ
μπίεση(untar)του Adobe AIR SDK
+ERROR_UNABLE_TO_COPY_FILE=Δεν είναι δυνατή η αντιγραφή 
του αρχείου 
+ERROR_UNABLE_TO_CREATE_TEMP_DIRECTORY=Δεν είναι δυνατή η 
δημιουργία προσωρινού καταλόγου
+ERROR_UNABLE_TO_DELETE_TEMP_DIRECTORY=Δεν είναι δυνατή η 
εκκαθάριση των προσωρινών καταλόγων 
εγκατάστασης
+ERROR_UNABLE_TO_DOWNLOAD_AIR_SDK=Δεν είναι δυνατή η λήψη 
του Adobe AIR Runtime Kit
+ERROR_UNABLE_TO_DOWNLOAD_FLASH_PLAYER_SWC=Δεν είναι δυνατή η 
λήψη του Flash Player swc
+ERROR_UNABLE_TO_DOWNLOAD_FLEX_SDK=Δεν είναι δυνατή η λήψη 
του Apache Flex SDK
+ERROR_UNABLE_TO_INSTALL_CONFIG_FILES=Δεν είναι δυνατή η 
εγκατάσταση των αρχείων ρυθμίσεων
+ERROR_UNSUPPORTED_OPERATING_SYSTEM=Δεν υποστηρίζεται το 
λειτουργικό σύστημα
+INFO_ABORT_INSTALLATION=Η εγκατάσταση ματαιώθηκε
+INFO_APP_INVOKED=Κλήση με λειτουργία γραμμής 
εντολών με τα ακόλουθα ορίσματα:
+INFO_CREATING_FLEX_HOME=Δημιουργία αρχικού καταλόγου 
για το Apache Flex
+INFO_CREATING_TEMP_DIR=Δημιουργία προσωρινού 
καταλόγου
+INFO_CURRENT_LANGUAGE=Επιλέξτε Γλώσσα
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_MAC=Γίνεται λήψη του Adobe AIR 
Runtime Kit για Mac από:
+INFO_DOWNLOADING_AIR_RUNTIME_KIT_WINDOWS=Γίνεται λήψη του Adobe 
AIR Runtime Kit για Windows από:
+INFO_DOWNLOADING_FLEX_SDK=Γίνεται λήψη του Apache Flex SDK 
από:
+INFO_DOWNLOADED=Η λήψη ολοκληρώθηκε
+INFO_ENTER_VALID_FLEX_SDK_PATH=Παρακαλώ εισάγετε μια 
έγκυρη διαδρομή καταλόγου για το Flex SDK
+INFO_FINISHED_UNTARING=Η αποσυμπίεση τελείωσε:
+INFO_FINISHED_UNZIPPING=Η αποσυμπίεση τελείωσε:
+INFO_INSTALLATION_COMPLETE=Η εγκατάσταση ολοκληρώθηκε.
+INFO_INSTALLING=Εγκατάσταση...
+INFO_INSTALLING_CONFIG_FILES=Γίνεται εγκατάσταση των 
αρχείων ρυθμίσεων του framework που έχουν ρυ
θμιστεί για χρήση με IDE
+INFO_INSTALLING_PLAYERGLOBAL_SWC=Γίνεται εγκατάσταση του 
Adobe Flash Player playerglobal.swc από:
+INFO_INVOKED_GUI_MODE=Κλήση με λειτουργία γραφικού 
περιβάλλοντος
+INFO_SELECT_DIRECTORY=Επιλέξτε τον κατάλογο στον 
οποίο θέλετε να εγκαταστήσετε το Flex SDK
+INFO_SELECT_DIRECTORY_INSTALL=Επιλέξτε τον κατάλογο 
εγκατάστασης
+INFO_UNZIPPING=Αποσυμπίεση: 
+SELECT_PATH_PROMPT=Πληκτρολογήστε η επιλέξτε μια 
έγκυρη διαδρομή για το Flex SDK
+STEP_SELECT_AIR_AND_FLASH_VERSION=Select AIR and Flash Player versions.
+STEP_CREATE_DIRECTORIES=Δημιουργία Καταλόγων
+STEP_DOWNLOAD_AIR_RUNTIME_KIT=Λήψη Adobe AIR Runtime Kit
+STEP_DOWNLOAD_FLASHPLAYER_SWC=Λήψη Flash Player swc
+STEP_DOWNLOAD_FLEX_SDK=Λήψη Apache Flex SDK
+STEP_INSTALL_CONFIG_FILES=Εγκατάσταση των αρχείων ρυ
θμίσεων του Framework
+STEP_UNZIP_AIR_RUNTIME_KIT=Αποσυμπίεση του Adobe AIR Runtime Kit
+STEP_UNZIP_FLEX_SDK=Αποσυμπίεση του Apache Flex SDK
+ASK_BLAZEDS=Το Apache Flex μπορεί προαιρετικά να 
χρησιμοποιήσει το Adobe BlazeDS. Η λειτουργία αυ
τή απαιτεί το αρχείο flex-messaging-common.jar που 
βρίσκεται στο Adobe Flex SDK. Για το αρχείο αυτό 
ισχύει η συμφωνία χρήσης της άδειας Adobe SDK 
για το Adobe Flex 4.6. Η άδεια αυτή δεν είναι συ
μβατή με την άδεια χρήσης Apache V2. Θέλετε να 
εγκαταστήσετε το αρχείο αυτά απο το Adobe Flex 
SDK;
+ASK_FONTSWF=Το Apache Flex μπορεί προαιρετικά να 
χρησιμοποιήσει την υποστήριξη που παρέχει 
η Adobe για ενσωματωμένες γραματοσειρές. Η 
λειτουργία αυτή απαιτεί κάποια jar αρχεία 
που υπάρχουν στο Adobe Flex SDK. Για τα αρχεία αυ
τά ισχύει η συμφωνία χρήσης της άδειας Adobe 
SDK για το Adobe Flex 4.6. Η άδεια αυτή δεν είναι συ
μβατή με την άδεια χρήσης Apache V2. Θέλετε να 
εγκαταστήσετε τα αρχεία αυτά απο το Adobe Flex 
SDK;
+ASK_OSMF=Για το Open Source Media Framework (OSMF) που 
χρησιμοποιείται απο τα αντικείμενα video 
ισχύει η συμφωνία χρήσης του Mozilla Public License 
Version 1.1. Θέλετε να εγκαταστήσετε το  Για το 
Open Source Media Framework (OSMF);
+ASK_TLF=Για το Adobe Text Layout Framework (TLF) που 
χρησιμοποιείται απο τα αντικείμενα 
κειμένου ισχύει η συμφωνία χρήσης Mozilla Public 
License Version 1.1. Θέλετε να εγκαταστήσετε το Adobe 
Text Layout Framework (TLF);
+ASK_APACHE_FLEX=Για το Apache Flex SDK ισχύει η συμφωνία 
χρήσης του Apache License V2. Θέλετε να 
εγκαταστήσετε το Apache Flex SDK;
+ASK_ADOBE_AIR_SDK=Για το Adobe AIR SDK ισχύει η συμφωνία 
χρήσης του Adobe SDK License. Θέλετε να 
εγκαταστήσετε το Adobe AIR SDK;
+ASK_ADOBE_FLASH_PLAYER_GLOBAL_SWC=Για το Adobe Flash Player 
playerglobal.swc ισχύει η συμφωνία χρήσης του Adobe SDK 
License. Θέλετε να εγκαταστήσετε το Adobe Flash Player 
playerglobal.swc;
+ASK_SWFOBJECT=Για το SWFObject ισχύει η συμφωνία 
χρήσης του MIT License (MIT). Θέλετε να 
εγκαταστήσετε το SWFObject;
+ASK_OFL_FONTS=The FlatSpark theme uses fonts licensed under the Open Font 
License.  Do you want to install the Font Awesome and Lato Fonts?
+BTN_LABEL_ADOBE_LICENSE=ΠΡΟΒΟΛΗ ADOBE LICENSE
+BTN_LABEL_MPL_LICENSE=ΠΡΟΒΟΛΗ MPL LICENSE
+BTN_DISCLAIMER=Αποποίηση Ευθυνών
+ERROR_MIRROR_FETCH=Σφάλμα κατα τη διάρκεια 
ανάκτησης μιας σελίδας για την λήψη των 
αρχείων του Apache Flex SDK
+ERROR_UNABLE_TO_DOWNLOAD_FILE=Αδυνατη λήψη του {0}
+ERROR_UNABLE_TO_UNZIP=Δεν μπορεί να γίνει αποσυ
μπίεση του αρχείου:
+ERROR_UNABLE_TO_DOWNLOAD_SWF_OBJECT=Δεν μπορεί να γίνει 
λήψη του SWFObject
+ERROR_VERIFY_FLEX_SDK=Η επαλήθευση των ληφθέντων 
αρχείων απέτυχε. Η εγκατάσταση σταμάτησε.
+FETCH_GEO_IP=Προσπάθεια λήψης της χώρας 
διαμονής του χρήστη με χρήση της υπηρεσίας 
GeoIP...
+FETCH_GEO_IP_DONE='Εγινε λήψη της χώρας διαμονής 
του χρήστη απο την υπηρεσία GeoIP.
+FETCH_GEO_IP_ERROR=Σφάλμα κατα τη λήψη της χώρας 
διαμονής του χρήστη από την υπηρεσία GeoIP...
+FETCH_MIRROR_CGI=Προσπάθεια ανάκτησης διαθέσιμης 
σελίδας λήψης απο CGI...
+FETCH_MIRROR_CGI_DONE=Έγινε ανάκτηση διαθέσιμης 
σελίδας λήψης απο CGI.
+FETCH_MIRROR_CGI_ERROR=Αποτυχία ανάκτησης 
διαθέσιμης σελίδας λήψης απο CGI.
+FETCH_MIRROR_LIST=Γίνεται προσπάθεια ανάκτησης 
της λίστας διαθέσιμων σελίδων απο Apache.org...
+FETCH_MIRROR_LIST_DONE=Έγινε λήψη των διαθέσιμων 
σελίδων από Apache.org
+FETCH_MIRROR_LIST_PARSED=Έγινε επεξεργασία των 
σελίδων χρησιμοποιώντας τον κωδικό χώρας 
και προέκυψε ο ιστότοπος:
+INFO_DOWNLOADING_ADOBE_FLEX_SDK=Γίνεται λήψη του Adobe Flex SDK 
από:
+INFO_DOWNLOADING_FILE_FROM=Γίνεται λήψη του {0}  από: {1}
+INFO_LICENSE_AGREEMENTS=Άδειες χρήσης
+INFO_NEED_TO_READ_AND_AGREE_TO_LICENSE=Η εφαρμογή θα κάνει 
λήψη λογισμικού απο πολλαπλές ιστοσελίδες 
με διαφορετικές άδειες χρήσης. Παρακαλώ 
επιλέξτε κάθε εγγραφή απο την λίστα 
αριστερά, διαβάστε την άδεια χρήσης και 
βεβαιώθείτε πως συμφωνείτε με τους όρους 
της κάθε άδειας.
+INFO_VERIFY_FLEX_SDK_DONE=Η επαλήθευση των ληφθέντων 
αρχείων είναι επιτυχής.
+INFO_WINDOW_TITLE=Εγκαταστήστε το  Apache Flex SDK {0} για 
χρήση με το  IDE σας
+INSTALL_AGREE=Συμφωνώ, να γίνει εγκατάσταση
+INSTALL_AGREE_ALL=Συμφωνώ με όλες τις άδειες 
χρήσης και τις επιλογές. Να γίνει 
εγκατάσταση.
+INSTALL_DISAGREE=Δεν συμφωνώ. Να μην γίνει 
εγκατάσταση.
+STEP_REQUIRED_INSTALL_APACHE_FLEX_SDK=Apache Flex SDK (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_ADOBE_AIR_SDK=Adobe AIR SDK (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_FLASH_PLAYER_GLOBAL_SWC=Adobe Flash Player 
playerglobal.swc (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_SWFOBJECT=SWFObject (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_OSMF=OSMF (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_TLF=Adobe Text Layout Framework (Απαιτούμενο)
+STEP_REQUIRED_INSTALL_OFL_FONTS=Font Awesome and Lato Fonts 
(Απαιτούμενο)
+STEP_OPTIONAL_INSTALL_BLAZEDS=Remoting Support (Προαιρετικό)
+STEP_OPTIONAL_INSTALL_FONTSWF=Adobe Embedded Font Libraries and Utilities (Π
ροαιρετικό)
+STEP_REQUIRED_UNZIP_AIR_RUNTIME_KIT=Αποσυμπίεση του Adobe AIR 
Runtime Kit
+STEP_VERIFY_FLEX_SDK=Γίνεται επαλήθευση του Apache Flex 
SDK MD5 Signature
+LICENSE_ADOBE_SDK='Αδεια χρήσης Adobe Flex SDK
+LICENSE_ADOBE_AIR_SDK='Αδεια χρήσης Adobe AIR SDK
+LICENSE_FONTSWF='Αδεια χρήσης Adobe Flex SDK
+LICENSE_BLAZEDS='Αδεια χρήσης Adobe Flex SDK
+INFO_TRACKING=Anonymous usage statistics will be collected\nin accordance with 
our privacy policy.
+

Reply via email to