{
  "name": "BFTransmitterBeta",
  "version": "1.0.2",
  "summary": "Offline engine for messaging.",
  "description": "An SDK that enables developers to work in an easy way with mesh networks in mobile devices (iOS/Android) between peers.\n  It offers ways of allowing communications when Internet networks are unavailable or unstable using the Bridgefy mesh network algorithm.\n  Devices can communicate between themselves by forming mesh networks that may or may not include a gateway to the Internet",
  "homepage": "http://bridgefy.me/",
  "license": {
    "type": "Commercial",
    "text": "## BRIDGEFY, INC.\n## SOFTWARE EVALUATION LICENSE AGREEMENT\n***\nThis Software Evaluation License Agreement (the **\"Agreement\"**) applies to all individuals and entities that download the Bridgefy Software (as defined below) (**“Licensee”** or **“you”** or **“your”** and the like) offered by Bridgefy, Inc., a Delaware corporation (**“Bridgefy”**). By copying, installing, or using all or any portion of this software, you acknowledge and agree that you are legally bound to the Agreement and have read and consented to all of its terms. You agree that this agreement is like any written negotiated agreement signed by you. This agreement is enforceable against you. If you do not agree to the terms of this agreement, you may not use the Bridgefy software.\n\nIf the individual indicating acceptance of this Agreement is doing so on behalf of a corporation or other legal entity, then such individual represents that he/she has the authority to bind such entity to these terms and conditions, in which case the terms “you” or “your” shall refer to such entity. If you do not have such authority, or if you do not agree with these terms and conditions, you must not accept this agreement and may not download or use the Bridgefy Software.\n\n* 1. **Definitions**. As used herein, the following terms shall have the meanings given below:\n  * 1.1. “**Bridgefy Software**” shall mean the Bridgefy messaging software development kit and any related software and documentation that is provided by Bridgefy to Licensee in connection with this Agreement.\n  * 1.2. “**Confidential Information**” shall mean all information, whether or not in writing, whether or not patentable and whether or not copyrightable, or a private, secret or confidential nature, owned, possessed or used by Bridgefy, concerning Bridgefy’s business, business relationships or financial affairs, including, without limitation, any algorithm, vendor information, customer information, apparatus, equipment, trade secret, process, research, report, technical or research data, know-how, computer program, software, software documentation, hardware design, technology, product, processes, methods, techniques, projects, developments, marketing or business plan, forecast, unpublished financial statement, budget, license, price, cost, customer, supplier or personnel information or employee list that is communicated to, learned of, developed or otherwise acquired by you in connection with this Agreement. Without limitation, the Bridgefy Software and any information regarding its performance (including as may be generated by Licensee in the court of exercising its license hereunder) constitutes Confidential Information.\n  * 1.3. “**Feedback**” shall mean any and all ideas, suggestions and feedback relating to the Bridgefy Software.\n  * 1.4. \"**Intellectual Property Rights**\" shall mean, with respect to any technology, including Object Code and Source Code, (i) all right, title and interest in and to any patent, letters patent, industrial model, design patent, petty patent, patent of importation, utility model, certificate of invention, and/or other indicia of inventorship and/or invention ownership, and any application for any of the foregoing, and including any such rights granted upon any reissue, division, continuation or continuation-in-part applications now or hereafter filed, related to any such application; (ii) all right, title and interest in and to all trade secret rights arising under the common law, state law, federal law or the laws of any foreign country; (iii) all right, title and interest in and to all semiconductor mask work rights, trademarks, and servicemarks; (iv) all copyright rights and all other literary property and/or other rights of authorship, including moral rights; and (v) all right, title and interest in and to all know-how and show-how, in each case, with respect to the subject technology and existing anywhere in the world.\n  * 1.5. “**Object Code**” shall mean software code in computer executable form that is derived from Source Code by a process known generally as “compilation” or any other process by which Source Code (or intermediate code derived from Source Code) is translated into computer executable form.\n  * 1.6. \"**Source Code**\" shall mean software code in human readable form, including any derivative works, upgrades, updates, improvements or modifications thereof.\n* 2.  **Internal Use Only Evaluation License**..\n  * 2.1. **Limited License**.\n    * 2.1.1. During the term of this Agreement and subject to Licensee’s compliance with all terms and conditions hereof, Bridgefy hereby grants to Licensee a limited, nonexclusive, nontransferable license (without the right to sublicense) to: (i) incorporate the Bridgefy Software into evaluation versions of mobile device applications developed and owned by Licensee and (ii) internally use the Bridgefy Software as so incorporated for the sole purpose of evaluating its performance, in each case solely in Object Code form and in accordance with all applicable documentation provided by Bridgefy.\n    * 2.1.2. Licensee agrees that the Bridgefy Software may be used on no more than ten (10) devices. Furthermore, Licensee agrees that the Licensee (and any of its employees, contractors or agents, as applicable) shall not have any material involvement with development of software or other technology similar to the Bridgefy Software during the term of this Agreement or for a period of six (6) months thereafter.\n    * 2.1.3. The Bridgefy Software may contain functionality that permits Bridgefy to remotely deactivate your use of the Bridgefy Software and/or automatically deactivates your use of the Bridgefy Software at the end of the term of the agreement. You hereby agree not to modify, interfere or otherwise tamper with such functionality.\n    * 2.1.4. The foregoing license is granted to Licensee only and may not be exercised by Licensee through any third party. The Bridgefy Software may not be used by Licensee for any purpose or in any manner other than as expressly set forth herein. Without limiting the generality of the foregoing, Licensee will not, and will not attempt to: (i) copy, distribute, rent, lease, lend, sublicense or transfer the Bridgefy Software, use the Bridgefy Software on a service bureau basis or commercially deploy the Bridgefy Software; (ii) decompile, reverse engineer, or disassemble the Bridgefy Software or otherwise attempt to discover the Source Code of the Bridgefy Software; (iii) modify or create derivative works of the Bridgefy Software; (iv) modify, remove, or obscure any copyright, trademark, patent or other notices or legends that may appear on the Bridgefy Software or during the use and operation thereof; or (v) cause the Bridgefy Software to become subject to the terms of any open source license agreement, in each case electronically or otherwise, in whole or in part.\n  * 2.2. **Ownership**. The Bridgefy Software provided hereunder is the property of Bridgefy or its third party licensors. As between the parties, Bridgefy retains all right, title and ownership interest and all Intellectual Property Rights in and to the Bridgefy Software and any copies, derivative works, upgrades, updates, improvements and modifications thereof, including without limitation, translations, regardless of the form or media in which, or on which, the original and any other copies, derivative works, upgrades, updates, improvements or modifications may exist. Other than the limited license granted in Section 2.1, no other rights or licenses are granted in this Agreement expressly, by implication, estoppel or otherwise. This Agreement is not for a sale of any interest in the Intellectual Property Rights or other proprietary interests embodied in the Bridgefy Software or any copy, derivative work, upgrade, update, improvement or modification thereof. Licensee is not obligated to provide any Feedback to Bridgefy. Licensee agrees that to the extent it provides Feedback to Bridgefy, Bridgefy shall have an unrestricted, perpetual, irrevocable and worldwide right to freely use and exploit such Feedback in any manner without payment of any compensation or attribution to Licensee.\n* 3. **Confidential Information**. Licensee shall not disclose any Confidential Information to any person or entity other than the Licensee’s respective employees who have a need to know hereunder or use the same for any purpose (other than as expressly provided under this Agreement) without prior written approval by Bridgefy, either during or after the term of this Agreement, unless and until such Confidential Information has become public knowledge without fault by Licensee. Licensee shall use all reasonable efforts to protect the Confidential Information from unauthorized use or disclosure, and shall return or destroy all Confidential Information in Licensee’s possession or control upon Bridgefy’s request. Licensee’s obligations under this Section 3 shall not apply to any information that (i) is or becomes known to the general public under circumstances involving no breach by Licensee or others of the terms of this Section 3, (ii) is generally disclosed to third parties by Bridgefy the without restriction on such third parties or (iii) is approved for release by written authorization of Bridgefy.\n* 4. **Term and Termination**. The term of this Agreement shall be for a period of thirty (30) days from the date you first download the Bridgefy Software, unless earlier terminated in accordance with the terms hereof. The term of this Agreement may also be further extended by mutual written agreement of the parties. Either party may terminate this Agreement at any time upon prior written notice to the other party. Upon termination or expiration of this Agreement, the licenses, rights and covenants granted hereunder and the obligations imposed hereunder shall cease, except that Sections 1, 2.1.4, 2.2 and 3 through 8 shall survive. Upon termination or expiration, Licensee shall promptly return to Bridgefy or permanently destroy (as directed by Bridgefy) the Bridgefy Software and any other Confidential Information, including the copy(ies) incorporated within Licensee’s mobile device application(s), and shall provide a certification of compliance with the foregoing upon Bridgefy’s request.\n* 5. **Disclaimer of Warranty**. THE BRIDGEFY SOFTWARE MAY HAVE ERRORS AND BUGS. ALL SOFTWARE DELIVERED HEREUNDER IS FURNISHED \"AS IS\". BRIDGEFY MAKES NO WARRANTIES, WHETHER EXPRESS OR IMPLIED WITH RESPECT TO SUCH SOFTWARE AND DOCUMENTATION DESCRIBING SUCH SOFTWARE, ITS QUALITY, ITS PERFORMANCE, MERCHANTABILITY, NON- INFRINGMENT, OR FITNESS FOR A PARTICULAR PURPOSE.\n* 6. **Jurisdiction** – US Licensees. This Section 6 applies only if Licensee is domiciled within the United States. The exclusive venue for any dispute shall be in the courts in the state of California, county of San Francisco, or if it has or can acquire jurisdiction, in the United States District Court for the Northern District of California, and each of the parties irrevocably submits to each such court in any such dispute and waives any objection it may now or hereafter have to venue or inconvenience of forum. Notwithstanding the foregoing, either party may petition any court of competent jurisdiction for specific performance and other injunctive and equitable relief or in connection with enforcing its intellectual property rights.\n* 7. **Jurisdiction – Non-US Licensees**. This Section 7 only if Licensee is domiciled outside of the United States. If any claim or controversy arises out of this Agreement, it shall be settled by binding arbitration by one arbitrator conducted in accordance with the Rules of Arbitration of the International Chamber of Commerce. The decision of the arbitrator is final and shall be binding on both parties. The site of arbitration shall be San Francisco, California, USA. The English language shall be used in the arbitration proceedings, and all documents, exhibits and other evidence shall also be in the English language. The decision of the arbitrator may be entered as a final judgment in any court of competent jurisdiction. The arbitrator shall not be empowered to award damages in excess of, and/or in addition to, actual damages, and the arbitrator shall deliver a reasoned opinion in connection with his/her decision. Notwithstanding the foregoing, either party may petition any court of competent jurisdiction for specific performance and other injunctive and equitable relief or in connection with enforcing its intellectual property rights.\n* 8. **General**. Licensee acknowledges its obligations to control access to technical data under the U.S. Export Laws and Regulations and agrees to adhere to such laws and regulations. Licensee will not export outside the United States, if a United States company or citizen, or reexport, if a foreign company or citizen, except as permitted by the laws and regulations of the United States. A waiver of any provision of this Agreement will only be valid if provided in writing and will only be applicable to the specific incident and occurrence so waived. The failure by either party to insist upon the strict performance of this Agreement, or to exercise any term hereof, will not act as a waiver of any right, promise or term, which will continue in full force and effect. In the event any provision of this Agreement is determined to be invalid, such invalidity shall not affect the validity of remaining portions of this Agreement, and the parties shall substitute for the invalid provision the valid provision which most closely approximates the intent and effect of such invalid provision. Licensee may not assign or delegate all or any part of its rights or obligations under this Agreement in whole or in part without the prior written consent of Bridgefy. Any attempted assignment or delegation without such consent, except as expressly set forth herein, will be void. This Agreement shall be governed by and construed in accordance with the laws of the State of California, United States of America, without reference to conflict of laws principles. Neither party has any obligation under this Agreement to purchase, license or sell any product or service supplied by the other party. The parties do not intend that any agency or partnership relationship be created between them by this Agreement. This Agreement is the complete and final agreement of the parties with respect to the Bridgefy Software. No addition, modification or amendment to this Agreement is valid unless made in writing and signed by both parties thereto.\n\nBridgefy Evaluation License\nActiveUS 161109548v.2"
  },
  "authors": {
    "Bridgefy": "contact@bridgefy.me"
  },
  "platforms": {
    "ios": "10.0"
  },
  "source": {
    "git": "https://bitbucket.org/bridgefy/bridgefy-ios-dist-beta.git",
    "tag": "v1.0.2"
  },
  "public_header_files": "BFTransmitter.framework/Headers/*.h",
  "source_files": "BFTransmitter.framework/Headers/*.h",
  "preserve_paths": "BFTransmitter.framework",
  "ios": {
    "vendored_frameworks": "BFTransmitter.framework"
  },
  "requires_arc": true,
  "xcconfig": {
    "FRAMEWORK_SEARCH_PATHS": "$(inherited)"
  },
  "pod_target_xcconfig": {
    "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64"
  },
  "user_target_xcconfig": {
    "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64"
  }
}
