Skype End User License Agreement
IMPORTANT – PLEASE READ CAREFULLY

* IMPORTANT: version française sur (French version available at)
  http://www.skype.com/go/eula-fr
* IMPORTANT: 注意：简体中文《最终用户许可协议》在此浏览 (Simplified Chinese version
  available at) http://www.skype.com/go/eula-sc

No Emergency Calls: The Skype software is not intended to support or carry emergency calls to any type of hospital, law enforcement agency, medical care unit or any other kind of emergency services. Additional arrangements must be made to access emergency services. It is your responsibility to purchase, separately from Skype Software, traditional wireless or landline telephone service that offers access to emergency services.

This Agreement: This agreement, and any new versions, between Skype Software S.a.r.l (Skype) and you, covers all your use of Skype Software from any terminals where Skype Software has been installed, by you or by third parties, and by using Skype software you accept the following.

Jurisdiction’s Restrictions: If the law of your country prohibits you from downloading or using our software because you’re under the age limit or because our products are not allowed in your country, please don’t use it.

License and Restrictions
License. Subject to the terms of this Agreement, Skype hereby grants you a limited, personal, non-commercial, non-exclusive, non-sublicensable, non-assignable, free of charge license to download, install and use the Skype Software on your computer, phone or PDA for the sole purpose of personally using the internet communication applications provided by Skype and any other applications that may be explicitly provided by Skype. For the avoidance of doubt, you are allowed to use Skype software at work, in accordance with the terms of this Agreement. The Skype software is the software distributed by Skype for internet communication applications, including without limitation the Skype API, UI and documentation (online or offline), as well as any future programming fixes, updates and upgrades thereof.

No Modifications. You will not undertake, cause, permit or authorize the modification, creation of derivative works, translation, reverse engineering, decompiling, disassembling or hacking of the Skype Software or any part thereof.

Third Parties. The Skype Software may be incorporated into, and may incorporate itself, software and other technology owned and controlled by third parties. Any such third party software or technology that is incorporated in the Skype Software falls under the scope of this Agreement.

Exclusive Ownership. Any and all IP rights to or arising from the Skype Software are and shall remain the exclusive property of Skype and/or its licensors. Nothing in this Agreement intends to transfer any such IP rights to, or to vest any such IP rights in, you. You are only entitled to the limited use of the IP rights granted to you in this Agreement. You will not take any action to jeopardize, limit or interfere with Skype’s IP rights. Any unauthorized use of Skype’s IP rights is a violation of this Agreement as well as a violation of intellectual property laws and treaties, including without limitation copyright laws and trademark laws. All title and IP rights in and to any third party content that is not contained in the Skype Software, but may be accessed through use of the Skype Software, is the property of the respective content owners and may be protected by applicable copyright or other intellectual property laws and treaties.

Additional Terms
The following policies are incorporated into this Agreement and provide additional terms and conditions:

The Skype Etiquette provides guidelines to treat properly and respectfully the other members of Skype’s community
Distribution of Skype Software. You will not sell, assign, rent, lease, distribute, export, import, act as an intermediary or provider, or otherwise grant rights to third parties with regard to the Skype Software or any part thereof. For the right to distribute you will have to agree to and meet with the Distribution Terms
Skype API. Under this Agreement you are not allowed to use the Skype API unless you agreed to and comply with the API Terms of Use
Skype Promotional Materials. Nothing in this Agreement will give you any right to use the Skype Promotional Materials.
Your Confidential Information and Your Privacy. Skype is committed to respecting your privacy and the confidentiality of your personal data. The Privacy Policy sets out how Skype may use of your personal data, the traffic data as well as the content contained in your communication(s).
The following agreements are related to additional services provided by Skype’s affiliates:

Additional services (SkypeIn, SkypeOut, Voicemail, Skypecasts, etc.) are provided by Skype Communications s.a.r.l. and subject to the Terms of Service
The use of www.skype.com website is subject to the Terms of Use
Any other exceptions. If you are interested in doing anything else than permitted under this Agreement or by one of the above agreements, you will have to obtain Skype’s prior written consent and explicitly agree upon any further (commercial) terms.

What you should and should not expect from Skype
No Warranties. Installing Skype Software enables you to communicate with other Skype Software users. Skype cannot guarantee that you will always be able to communicate with other Skype Software users, nor can Skype guarantee that you can communicate without disruptions, delays or communication-related flaws or that all your communications shall always be delivered to other Skype Software users. Skype will not be liable for any such disruptions, delays or other omissions in any communication experienced when using Skype Software.

Content of Communications. You acknowledge and understand that the content of the communication spread by the use of the Skype Software is entirely the responsibility of the person from whom such content originated. You, therefore, may be exposed to content that is offensive, harmful to minors, indecent or otherwise objectionable. Skype will not be liable for any type of communication spread by means of the Skype Software.

Utilization of Your Computer. Skype Software may utilize the processor and bandwidth of the computer (or other applicable device) you are utilizing, for the limited purpose of facilitating the communication between Skype Software users. Skype Software will use its commercially reasonable efforts to protect the privacy and integrity of the computer resources (or other applicable device) you are utilizing and of your communication, however Skype cannot give any warranties in this respect.

New Versions of the Skype Software. Skype, in its sole discretion, reserves the right to add additional features or functions, or to provide programming fixes, updates and upgrades, to the Skype Software. Skype, in its sole discretion, may modify or discontinue or suspend your ability to use any version of the Skype Software, and/or disable any Skype Software you may already have accessed or installed without any notice to you, for the repair, improvement, and/or upgrade of the underlying technology or for any other justifiable reason, Skype will not accept any liability in relation to the direct or indirect damages caused by the release and/or the absence of release of new versions of the Skype Software.

What we expect from you
Lawful purposes. You will at any and all times meet with your obligations hereunder, as well as any and all laws, regulations and policies that may apply to the use of the Skype Software in your country, including applicable rules that govern the export or import of software. You will use the Skype Software solely for lawful purposes. In this respect you may not, without limitation (a) intercept or monitor, damage or modify any communication which is not intended for you, (b) use any type of spider, virus, worm, trojan-horse, time bomb or any other codes or instructions that are designed to distort, delete, damage or disassemble the Skype Software or the communication, (c) send any unsolicited commercial communication not permitted by applicable law, (d) expose any other user to material which is offensive, harmful to minors, indecent or otherwise objectionable or (e) endanger any part of any system or Internet connection of Skype or any third party.

Indemnification. You agree on demand to indemnify, defend and hold Skype, affiliates and Skype staff harmless from and against any and all liability and costs, including reasonable attorneys’ fees incurred by such parties, in connection with or arising out of your (a) violation or breach of any term of this Agreement or any applicable law or regulation, whether or not referenced herein, or (b) violation of any rights of any third party, or (c) use or misuse of the Skype Software, or (d) communication spread by means of the Skype Software.

Term, Termination, Updates
Term. This Agreement will be effective as of the date you first install Skype software and will remain effective until terminated by either Skype or you as set forth below.

Termination You may terminate this Agreement with immediate effect at any time. Without limiting other remedies, Skype may limit, suspend, or terminate this license and your use of Skype Software, prohibit access to Skype Website and delete your user account and/or user ID, with immediate effect, if we think that you are in breach of this Agreement, creating problems, legal liabilities (actual or potential), acting inconsistently with the letter or spirit of our policies, which can be found at www.skype.com/company/legal/terms/etiquette.html, infringing someone else’s intellectual property rights, engaging in fraudulent, immoral or illegal activities, or for other similar reasons. Skype shall effect such termination by providing notice to you to the email address you have provided (if any), and/or by preventing your access to your account. We reserve the right to cancel user accounts that have been inactive for more than one (1) year.

Upon termination of this Agreement, (a) all licenses and rights to use the Skype Software shall immediately terminate, and (b) you will immediately cease any and all use of the Skype Software, and (c) you will immediately remove the Skype Software from all hard drives, networks and other storage media and destroy all copies of the Skype Software in your possession or under your control.

Skype will not be liable in respect of any damage caused by the termination of this Agreement.

Update. Skype reserves the right to modify this Agreement at any time by publishing the revised Agreement on the Skype Website. The revised Agreement shall become effective within thirty (30) days of such publication or provision to you, unless you expressly accept the revised Agreement earlier by clicking on the accept button. Your express acceptance or your continued use of the Skype Software after expiry of the notice period of thirty (30) days, shall constitute your acceptance to be bound by the terms and conditions of the revised Agreement. You can find the latest version of this Agreement at www.skype.com/company/legal/eula.

Disclaimer of Warranties and Limitation of Liability
No warranties. THE SKYPE SOFTWARE IS PROVIDED “AS IS” WITH ALL FAULT AND WITH NO WARRANTIES WHATSOEVER; SKYPE DOES NOT, EITHER EXPRESSED, IMPLIED OR STATUTORY, MAKE ANY WARRANTIES, CLAIMS OR REPRESENTATIONS WITH RESPECT TO THE SKYPE SOFTWARE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OR CONDITIONS OF QUALITY, PERFORMANCE, NON-INFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR USE OR A PARTICULAR PURPOSE. SKYPE FURTHER DOES NOT REPRESENT OR WARRANT THAT THE SKYPE SOFTWARE WILL ALWAYS BE AVAILABLE, ACCESSIBLE, UNINTERRUPTED, TIMELY, SECURE, ACCURATE, COMPLETE AND ERROR-FREE OR WILL OPERATE WITHOUT PACKET LOSS, NOR DOES SKYPE WARRANT ANY CONNECTION TO OR TRANSMISSION FROM THE INTERNET, OR ANY QUALITY OF CALLS MADE THROUGH THE SKYPE SOFTWARE.

Specific Disclaimer of Liability for Emergency Services. Skype does not provide connections to emergency services in conjunction with the Skype Software. Neither Skype nor its officers or employees may be held liable for any claim, damage, or loss, and you hereby waive any and all such claims or causes of action, arising from or relating to the use of Skype Software to contact emergency services’ personnel.

Your own Risk. You acknowledge and agree that the entire risk arising out of the use or performance of the Skype Software remains with you, to the maximum extent permitted by law.

No Liability. The Skype Software is being provided to you free of charge. ACCORDINGLY, YOU ACKNOWLEDGE AND AGREE THAT SKYPE, ITS AFFILIATES, ITS LICENSORS AND THE SKYPE STAFF WILL HAVE NO LIABILITY IN CONNECTION WITH OR ARISING FROM YOUR USE OF THE SKYPE SOFTWARE, AS SET FORTH BELOW. YOUR ONLY RIGHT OR REMEDY WITH RESPECT TO ANY PROBLEMS OR DISSATISFACTION WITH THE SKYPE SOFTWARE IS TO IMMEDIATELY UNINSTALL AND CEASE USE OF SUCH SKYPE SOFTWARE.

Limitation of Liability. IN NO EVENT SHALL SKYPE, ITS AFFILIATES, ITS LICENSORS OR THE SKYPE STAFF BE LIABLE, WHETHER IN CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), PRODUCT LIABILITY OR ANY OTHER FORM OF LIABILITY, FOR ANY INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES (INCLUDING WITHOUT LIMITATION ANY LOSS OF OR CORRUPTION TO DATA, INTERRUPTION, COMPUTER FAILURE OR PECUNIARY LOSS) ARISING OUT OF THE USE OR INABILITY TO USE THE SKYPE SOFTWARE, EVEN IF SKYPE, ITS AFFILIATES OR THE SKYPE STAFF HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

Jurisdiction Limitations. As some jurisdictions do not allow some of the exclusions or limitations as set forth above, some of these exclusions or limitations may not apply to you. In such event the liability will be limited as far as legally possible under the applicable legislation.

Miscellaneous
Entire Agreement. The terms and conditions of this Agreement constitute the entire agreement between you and Skype with respect to the subject matter hereof and will supersede and replace all prior understandings and agreements, in whatever form, regarding the subject matter.

Partial Invalidity. Should any term or provision hereof be deemed invalid, void or enforceable either in its entirety or in a particular application, the remainder of this Agreement shall nonetheless remain in full force and effect.

No waiver. If Skype does not take action against all breaches of these Agreement, it does not mean that is waives its right at a later time to enforce the same.

Assignment You are not allowed to assign this Agreement or any rights hereunder. Skype is allowed at its sole discretion to assign this Agreement or any rights hereunder to any third party, without giving prior notice.

Applicable Law and Competent Court. This Agreement shall be governed by and construed in accordance with the laws of Luxembourg without giving effect to any conflict of laws or provisions whether contained in Luxembourg law or the laws of your current state or country of residence. Any legal proceedings arising out of or relating to this Agreement will be subject to the jurisdiction of the courts of the district of Luxembourg.

Language. The original English version of this Agreement may have been translated into other languages. In the event of inconsistency or discrepancy between the English version and any other language version of this Agreement, the English language version shall prevail.

© Skype – Last revised: 15.03 2007.
