Read Me

Welcome to Adobe® Flash® Media Streaming Server 3 and Flash Media Interactive Server 3!  This document contains late-breaking product information and updates concerning this release.

New Product Configurations
Minimum system requirements
Install your software
Uninstall your software
What's new in this release

Known issues
Other resources
Notices, Terms, Conditions, and Attribution

New Product Configurations

Flash Media Server 2 Professional, Origin and Edge editions are now part of a brand new single server called Flash Media Interactive Server.  Now you can develop advanced custom streaming or interactive services that are scalable and have no limit for bandwidth or the number of connections.   This also means that Profiles used with the FMS2 Professional Edition are no longer required!  This makes it easier to estimate your server requirements.

A new version of the server, called Flash Media Streaming Server 3 lets you deliver video on demand and live streaming services using all the power of the Interactive Server.  This version of the server also has no limit on connections or bandwidth.  The server is setup out of the box with 2 services, live and vod that let you get started with video streaming very quickly.   Simply place your .flv, .f4v or .mp4 files in to the vod folder, and start streaming.

The Flash Media Server family is a great way to start protecting your valuable and private content and deliver more video and video services then ever before.

Minimum system requirements

The Flash Media Server 3 system requirements for production environments are:

OS

Version

Memory

Processor

Microsoft® Windows

Windows Server® 2003 SP1
(All 32-bit editions)

2 GB minimum,
4 GB recommended

3.2 GHz Intel® Pentium® 4 processor (dual Intel Xeon® or faster recommended)

Linux®

Red Hat® 4
32-bit only

2 GB minimum,
4 GB recommended

3.2 GHz Intel® Pentium® 4 processor (dual Intel Xeon® or faster recommended)

The Flash Media Server 3 system requirements for development environments are:

OS

Version

Memory

Processor

Microsoft® Windows

Windows XP® SP2

1 GB

1 GHz Intel® Pentium® 4 processor
or faster

Install your software

To install Flash Media Server on Windows :

  1. Double-click the installer application and follow the on-screen instructions.
  2. Enter a serial number. If you don’t enter a serial number, Flash Media Development Server installs.
  3. During the installation process you will be asked to enter a user name and password for the first valid server administrator. These values are written to the fms.ini file which is located in the conf folder after installation. (You can use the Administration Console to add other administrators later.)
  4. Accept the default server ports or enter new port numbers.
  5. The final installation step gives you the opportunity to view the Readme.htm file, start Flash Media Server, and select the option to start Flash Media Server manually when you reboot your computer. Select any options you'd like, and click Finish.

The installation is complete. If you configured it to start automatically, the Flash Media Server service starts.

  1. To start the server manually, select Start > Programs > Adobe > Flash Media Server 3 > Start Adobe Flash Media Server 3 and Start Flash Media Administration Server 3
  2. To open the Flash Media Administration Console, select Start > Programs > Adobe > Flash Media Server 3 > Flash Media Administration Console.

To install Flash Media Server on Linux:

  1. Log in as a root user (required to install Flash Media Server).
  2. Open a shell window and switch to the directory with the installation file, FlashMediaServer3.tar.gz
  3. Unzip and untar the installation file. A directory with the installation program is created.
  4. Switch to the directory that was just unzipped.
  5. Start the installation program with the following command: ./installFMS
  6. The installation program starts and displays a welcome message.
  7. Press Enter to start the installation. Follow the installation instructions on your screen. During the process you will be asked to
    • Enter a serial number. If you don’t enter a serial number, Flash Media Development Server installs.
    • Enter the installation directory and ports which the server will use
    • Enter an administrative user name and password for the first valid server administrator. These values are written to the fms.ini file which is located inside of the conf folder after the installation.
    • Enter a user for Flash Media Server processes to run as. The default is the "nobody" user. (The user you select is also the owner of the Flash Media Server files.) Your choices are written to the fms.ini file. You can edit the fms.ini file to modify this and other security properties later, if needed.
  8. Review the summary of the installation options you have chosen, which are displayed in the installer.
  9. To start the server manually, go to the installation directory (default is /opt/adobe/fms/). Use the command ./fmsmgr server start to start Flash Media Server and ./fmsmgr adminserver start to start Flash Media Administration Server.

The installation is complete. If you configured it to start automatically, the Flash Media Server service starts.

Uninstall your software

To uninstall Flash Media Server from a Windows computer:

  1. Select Start > Programs > Adobe > Flash Media Server 3 > Uninstall Adobe Flash Media Server 3
  2. In the confirmation dialog box, click Yes to uninstall Flash Media Server.
  3. Flash Media Server is removed from your computer. A second confirmation dialog box appears when the process is complete.

To uninstall Flash Media Server from a Linux computer:

  1. Log on to the server where Flash Media Server was installed.
  2. Switch to the root user, or a user with root permissions. Normally you would use su - root to switch to the root user.
  3. At the UNIX shell prompt, enter cd /opt/adobe/fms.
  4. By default, /opt/adobe/fms is the directory where Flash Media Server is installed. If you installed the server in a different directory, replace /opt/adobe/fms with the actual installation location.
  5. Execute the uninstall script ./uninstallFMS.
  6. Follow the displayed uninstall instructions. 

What's new in this release

The following features are new in this release:

Out-of-the-box streaming services

Video on demand service
Simply place a video into the vod folder and you can stream video immediately. Use the Flash CS3 and Flash 8 FLVPlayback component with the vod service to stream video to Flash Player 8 and 9 without writing any code. You can also write your own client applications for the vod service in ActionScript 2.0 or ActionScript 3.0. To provision customers, the application can be renamed and duplicated on a server an unlimited number of times.

Live publishing point
Use Adobe® Flash® Media Encoder and the live service to capture and stream live video to Flash Player 8 and 9 without writing any code. You can also write your own client applications for the live service in ActionScript 2.0 or ActionScript 3.0. To create multiple publishing points, the application can be renamed and duplicated on a server an unlimited number of times.

Live publishing enhancements

Data keyframes
Publishers can encode metadata into live streams. All recipients receive the metadata when they subscribe to the live stream. This prevents late-comers from missing important information about a video or event.

Multipoint publish
The new Server-side ActionScript NetStream class lets you publish live streams to multiple origin servers which then push the content to users. “Push publishing” lets you scale live broadcasts and stream data to a Content Delivery Network capable of delivering your stream to millions of users.

Security enhancements

Encrypted RTMP (RTMPE)
A 128-bit encrypted edition of Real-Time Messaging Protocol (RTMP). This protocol is more lightweight than SSL but still provides a high level of security. Flash Player 9.0.115.0 or higher is required for this feature.

Verify SWF files
Verify the authenticity of SWF files before they can connect to any server resources. This guarantees that the only clients that connect to your application or service are clients you created or authorized. Flash Player 9.0.115.0 or higher is required for this feature.

Access stream data
The read/write ACLs (Access Control List) have been extended with two new permission types to control access to the stream audio and video data in the client. Applications can extract a video frames as bitmaps if allowed by the server. The Server-side ActionScript API and the Authorization plug-in API have been updated to support this feature.

Performance improvements

Published performance benchmarks
Load testing statistics will be published on adobe.com. The statistics are derived from careful testing and reflect real-world scenarios, including random connection and streaming patterns. Flash Media Server 3 shows substantial performance improvement on both Windows and Linux platforms due to a new and very efficient scheduler and significantly reduced system call overhead.

Distribute applications over multiple processes
This feature is available on Flash Media Interactive Server only.

Specify the scope at which application instances are assigned to server processes and select any number of server processes over which to distribute those instances. Possible scopes are adaptors, virtual hosts, applications, instances, or connections. The ability to fine-tune process distribution lets you get maximum performance from the server for different types of applications.

Limit connection requests
Configure the server to limit surges of incoming connections to maintain server performance. This prevents a sudden, large event such as a popular news story from disrupting the playback of video for users who are already connected.

Close idle connections
Configure the server to disconnect longstanding idle connections to free core processes to run additional applications.

Native bandwidth detection
Server-to-client bandwidth detection now occurs in the native server code instead of in a Server-Side ActionScript script. Native bandwidth uses less memory and less CPU power, which provides better performance and better scalability. In addition, bandwidth is now measured between the edge server and the client, for clients connecting through an edge server, instead of between the client and the origin.

Configure optimal memory use for the stream cache
Set a limit on the amount of memory used by the stream cache.  The cache also uses a new replacement policy that increases the likelihood of keeping the most requested data segments in the cache.

Plug-in support

File plug-in
This feature is available on Flash Media Interactive Server only.

The File plug-in C++ API lets you customize the way the server handles file access. For example, you could create a content management solution that makes HTTP requests to access the bytes needed to stream video.

Authorization plug-in
This feature is available on Flash Media Interactive Server only.

The Authorization plug-in C++ API gives you access to server events and lets you authorize or not authorize certain events, such as playing or seeking through a file. You can also disconnect clients and dispatch an arbitrary message to a server-side script. This provides a powerful bridge between plug-ins and the Server-Side ActionScript API which makes Authorization plug-ins extensible.

Access plug-in

This feature is available on Flash Media Interactive Server only.

The Access plug-in C++ API lets you control access to the server. The Access plug-in adds another layer of security to the server; it intercepts connection requests and lets you examine the client and the server to determine whether requests should be accepted, rejected, or redirected before the requests reach the server’s script layer.

Administration tools

FMSCheck Tool
A command line tool that performs a deep health check on a running Flash Media Server. For example, you can check whether a stream can be played, whether a stream can be published, and whether application-level connections are being accepted. Because this tool doesn’t have a GUI, it’s easy to integrate into a wide range of environments.

FLVCheck Tool
A command line tool which verifies that .flv files, as well as files encoded in third-party, non-Adobe technology, can be streamed on the server without error. Because this tool doesn’t have a GUI, it’s easy to integrate into a wide range of environments. For .flv files, you can optionally insert or update the file’s metadata to accurately reflect the play duration.

Simplified configuration

The most commonly used configuration parameters have been moved from the XML files to the fms.ini file. This lets you configure the server from one location.

Platform and standards compliance

H.264 video and HE-AAC audio support
Flash Player 9.0.115.0 or higher and AIR support video and audio encoded in H.264 and HE-AAC from within MPEG-4 standard file formats. These formats stream high quality video at lower bit rates. This support lets developers leverage industry standard tools including Adobe Premiere and Adobe After Effects to create and deliver compelling video content. All editions of Flash Media Server 3 can stream H.264 and HE-AAC content to Flash Player 9.0.115.0 or higher and AIR.

302-Redirect Connection
NetConnection.Connect.Reject status info has been enhanced to convey redirect information in a standard manner. To this end all relevant APIs – Access plug-in, Authorization plug-in and the Server-side ActionScript API have all been updated to support the redirect capability which improves application interoperability.

AMF3 support

All server editions support the new Action Message Format (AMF) for data serialization introduced in Flash Player 9 and ActionScript 3.0.

IPv6 compliance
All editions of Flash Media Server 3 adhere to the IPv6 standard, a next-generation standard that extends the addressing capability of Internet Protocol.

64-bit file support
Support for larger than 2 Gigabyte FLV and MP3 files.

Known Issues

For the list of known issues in this release, please refer to the Release Notes.

Other resources

Flash Media Server Documentation Center
Flash Media Server Product Home
Flash Media Server Developer Center
Flash Media Server End User License Agreement
Flash Media Server Online Forums

Flash Video Streaming Service
Flash Media Solutions Providers

Flash Player Product Home

Notices, Terms, Conditions, and Attribution

Copyright © 1993-2008 Adobe Systems Incorporated and its licensors. All Rights Reserved. Adobe, the Adobe logo, and Flash are trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other countries. Other marks are the property of their respective owners. Protected by U.S. Patents. Patents pending in the U.S. and/or other countries.

This computer program is protected by copyright law and international treaties. Unauthorized use, reproduction, or distribution of this program, or any portion of it, may result in severe civil and criminal penalties, and will be prosecuted to the maximum extent possible under the law. Notices, terms and conditions pertaining to third party software are located at http://www.adobe.com/go/thirdparty/ and incorporated by reference herein.

Portions include software under the following terms:


Sorenson™ Spark™ video compression and decompression technology licensed from Sorenson Media, Inc.


Portions licensed under the Mozilla Public License Version 1.1, available at www.mozilla.org.
Portions of this file are subject to the Netscape Public License Version 1.1 (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.mozilla.org/NPL/
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for the specific language governing rights and limitations under the License.
The Original Code is Mozilla Communicator client code, released March 31, 1998.
The Initial Developer of the Original Code is Netscape Communications Corporation. Portions created by Netscape are Copyright (C) 1998-1999 Netscape Communications Corporation. All Rights Reserved.


Portions Copyright (C) 1995-1997 Eric Young (eay@mincom.oz.au) All rights reserved.
 
This package is an SSL implementation written by Eric Young (eay@mincom.oz.au).
The implementation was written so as to conform with Netscapes SSL.
This library is free for commercial and non-commercial use as long as the following conditions are adhered to. The following conditions apply to all code found in this distribution including RC4, RSA, lhash, DES, etc... The SSL documentation included with this distribution is covered by the same copyright terms except the  holder is Tim Hudson (tjh@cryptosoft.com).
Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed.
If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used. This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package.
 
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
 
1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.
 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
 3. All advertising materials mentioning features or use of this software must display the following acknowledgement: "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com"
The word 'cryptographic' can be left out if the routines from the library  being used are not cryptographic related :-).
 4. If you include any Windows specific code (or a derivative thereof) from  the apps directory (application code) you must include an acknowledgement:  "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
The license and distribution terms for any publicly available version or derivative of this code cannot be changed.  i.e. this code cannot simply be copied and put under another distribution license [including the GNU Public License.]


This software is based in part on the work of the Independent JPEG Group.


Portions Copyright (c) 1998-2001 The OpenSSL Project.  All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software must display the following acknowledgment: "This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to endorse or promote products derived from this software without prior written permission. For written permission, please contact openssl-core@openssl.org.
5. Products derived from this software may not be called "OpenSSL" nor may "OpenSSL" appear in their names without prior written permission of the OpenSSL Project.
6. Redistributions of any form whatsoever must retain the following acknowledgment:
"This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit (http://www.openssl.org/)"
THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT "AS IS" AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


This product includes cryptographic software written by Eric Young (eay@cryptsoft.com).  This product includes software written by Tim Hudson (tjh@cryptsoft.com).
Original SSLeay License
Portions Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
All rights reserved.
This package is an SSL implementation written by Eric Young (eay@cryptsoft.com).
The implementation was written so as to conform with Netscapes SSL.
This library is free for commercial and non-commercial use as long as the following conditions are adhered to.  The following conditions apply to all code found in this distribution, be it the RC4, RSA, lhash, DES, etc., code; not just the SSL code.  The SSL documentation included with this distribution is covered by the same copyright terms except that the holder is Tim Hudson (tjh@cryptsoft.com).
Copyright remains Eric Young's, and as such any Copyright notices in the code are not to be removed.
If this package is used in a product, Eric Young should be given attribution as the author of the parts of the library used.
This can be in the form of a textual message at program startup or in documentation (online or textual) provided with the package.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the copyright notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software must display the following acknowledgement:  "This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)"  The word 'cryptographic' can be left out if the routines from the library being used are not cryptographic related :-).
4. If you include any Windows specific code (or a derivative thereof) from the apps directory (application code) you must include an acknowledgement: "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"
THIS SOFTWARE IS PROVIDED BY ERIC YOUNG "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The license and distribution terms for any publicly available version or derivative of this code cannot be changed.  i.e. this code cannot simply be copied and put under another distribution license [including the GNU Public License.]


Portions Copyright (c) 1992-2003 by P.J. Plauger.  ALL RIGHTS RESERVED.
Consult your license regarding permissions and restrictions.
This file is derived from software bearing the following restrictions:
Portions Copyright (c) 1994
Hewlett-Packard Company
Permission to use, copy, modify, distribute and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation.
Hewlett-Packard Company makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.


This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (http://www.openssl.org/)


Copyright © 1996–2005, Daniel Stenberg, <daniel@haxx.se>. All rights reserved.

Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in this Software without prior written authorization of the copyright holder.


Thai Open Source Software Center, Ltd.
Expat XML Parser Copyright © 1998, 1999, 2000. Thai Open Source Software Center Ltd.
Expat XML Parser is subject to the following license terms:
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


Jordan Russell
Copyright © 1997–2005 Jordan Russell. All rights reserved.  

This software is provided "as-is," without any express or implied warranty. In no event shall the author be held liable for any damages arising from the use of this software.  Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter and redistribute it, provided that the following conditions are met:  

1.       All redistributions of source code files must retain all copyright notices that are currently in place, and this list of conditions without modification.

2.       All redistributions in binary form must retain all occurrences of the above copyright notice and web site addresses that are currently in place (for example, in the About boxes).  

3.       The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software to distribute a product, an acknowledgment in the product documentation would be appreciated but is not required.  

4.       Modified versions in source or binary form must be plainly marked as such, and must not be misrepresented as being the original software.    


Portions Copyright (c) 2006-2007 Sven Suursoho
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.