{ "info": { "author": "Philip Horger", "author_email": "philip.horger@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: MacOS :: MacOS X", "Operating System :: Microsoft :: Windows", "Operating System :: POSIX", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Topic :: Communications", "Topic :: Internet", "Topic :: Security :: Cryptography" ], "description": "Encrypted JSON Transport Protocol\n---------------------------------\n\nEJTP is an overlay protocol that allows the pluggable use of underlying transports, such as UDP, TCP, HTTP, IRC, Email and carrier pigeon to provide a cryptographically secure network of unreliable message forwarding. You can think of it as a bit like a more general-purpose and security-minded successor to XMPP, using JSON rather than XML as its frame medium.\n\nOn top of a simple frame format, EJTP boasts a consistent and simple format for describing encryption credentials, which is useful even without the rest of EJTP. The ejtp-crypto script makes it easy for other projects to take advantage of this pending a native port of ejtp.crypto to languages other than Python.\n\nThe intention of EJTP is to make it trivial to establish secure and NAT-oblivious distributed services across a common network of message relays. Your system only has to worry about exchanging encryption credentials and establishing a connection with a relay host, helping to pave the way toward distributed apps that run entirely in HTML5 (pending a port of the project to JS). You can be serverless *and* smartphone-friendly.\n\nOptionally supports elliptic curve cryptography if the PyECC_ module is installed.\n\nFor more technical and in-depth information, visit the `Github project `_.\n\n.. _PyECC: https://pypi.python.org/pypi/PyECC", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/campadrenalin/EJTP-lib-python/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "ejtp", "package_url": "https://pypi.org/project/ejtp/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ejtp/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/campadrenalin/EJTP-lib-python/" }, "release_url": "https://pypi.org/project/ejtp/0.9.7p1/", "requires_dist": null, "requires_python": null, "summary": "Encrypted JSON Transport Protocol library", "version": "0.9.7p1" }, "last_serial": 919111, "releases": { "0.9.3": [ { "comment_text": "", "digests": { "md5": "16dcc37feb9be076bd545752a5cc46b5", "sha256": "9e9baf067b543bff551f16fd2a8aa02fc1de9af03e4691f7d0b7de65356c2ce9" }, "downloads": -1, "filename": "ejtp-0.9.3.tar.gz", "has_sig": false, "md5_digest": "16dcc37feb9be076bd545752a5cc46b5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45417, "upload_time": "2013-03-06T06:57:07", "url": "https://files.pythonhosted.org/packages/61/0e/067c2233f191f184d3ce75e943e58b31d0d2233271a51934b802394aebc9/ejtp-0.9.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "867e9a3cc1f7e70605d828ea874eadf0", "sha256": "cb90f436b811d8f0657b6c898720d2da813a79f153ff462b4970adbe88384eb3" }, "downloads": -1, "filename": "ejtp-0.9.3.zip", "has_sig": false, "md5_digest": "867e9a3cc1f7e70605d828ea874eadf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 81756, "upload_time": "2013-03-06T06:57:23", "url": "https://files.pythonhosted.org/packages/3b/9a/ede16182475850b82f20df42144a1f8d3d915de1c642bcc1fad2c5b2a1fd/ejtp-0.9.3.zip" } ], "0.9.3m1": [ { "comment_text": "", "digests": { "md5": "faf318e4d92f3770b4f1277c301e60b0", "sha256": "a1584bcf4223ce4cd18c6faa818a4d128963d824292c52851920c6a4e8cc8aa0" }, "downloads": -1, "filename": "ejtp-0.9.3m1.tar.gz", "has_sig": false, "md5_digest": "faf318e4d92f3770b4f1277c301e60b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46776, "upload_time": "2013-03-07T03:11:24", "url": "https://files.pythonhosted.org/packages/43/4f/0e4629c529aca3e65a3161d090e6d5abed1391b06c43c5f8f0666562eaee/ejtp-0.9.3m1.tar.gz" }, { "comment_text": "", "digests": { "md5": "40128b865f4caff2aae2f216a0fb70e4", "sha256": "a841b0072650f4400d7e430f196fa174a23e13702e232f0600038b1c9a4f970a" }, "downloads": -1, "filename": "ejtp-0.9.3m1.zip", "has_sig": false, "md5_digest": "40128b865f4caff2aae2f216a0fb70e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83438, "upload_time": "2013-03-07T03:11:29", "url": "https://files.pythonhosted.org/packages/8e/d8/5f951ab569615d572d153f34ea240a2a9aaf4eeac93b657ab612ce586ae3/ejtp-0.9.3m1.zip" } ], "0.9.3m2": [ { "comment_text": "", "digests": { "md5": "8ee68c412a8693ae66ee7c523b78c52d", "sha256": "7dbc950f6339f919e051cd3666ee44918beab38e0673101bb74298220d151a4f" }, "downloads": -1, "filename": "ejtp-0.9.3m2.tar.gz", "has_sig": false, "md5_digest": "8ee68c412a8693ae66ee7c523b78c52d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46771, "upload_time": "2013-03-07T03:14:59", "url": "https://files.pythonhosted.org/packages/1a/85/acaaf251b4202165fa08b63711eb8e2af2af0627457f47fe19781f3c0018/ejtp-0.9.3m2.tar.gz" }, { "comment_text": "", "digests": { "md5": "e1805bb09c04d1f25a350270d17824d3", "sha256": "70493fd21e8028a41605ad3b62f244a45606390c472f24773bcf6ddc75eec8e0" }, "downloads": -1, "filename": "ejtp-0.9.3m2.zip", "has_sig": false, "md5_digest": "e1805bb09c04d1f25a350270d17824d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83440, "upload_time": "2013-03-07T03:15:08", "url": "https://files.pythonhosted.org/packages/cb/11/02f36e03c107cb4d0e709b6a6f1afda9030c1d1ffc95b1b77dac63a20464/ejtp-0.9.3m2.zip" } ], "0.9.3m3": [ { "comment_text": "", "digests": { "md5": "d12eeddb5c4aff998ca807c0076330cc", "sha256": "73a53d477d6ffc5b1fe92934288be99179e98a41eef1cbddb641a9bf14476b9a" }, "downloads": -1, "filename": "ejtp-0.9.3m3.tar.gz", "has_sig": false, "md5_digest": "d12eeddb5c4aff998ca807c0076330cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46764, "upload_time": "2013-03-07T06:06:14", "url": "https://files.pythonhosted.org/packages/16/cb/6ddaa2985e09e44656b9ab5dc2ee5a4025f4e66a503b6403b925a52c0709/ejtp-0.9.3m3.tar.gz" }, { "comment_text": "", "digests": { "md5": "f6935b940fdb0aeb24f29baf23eb0fa3", "sha256": "bb0faab994a3006ca1cd80a530e795175c11e4d8bf9df42fe7b42a401d19437f" }, "downloads": -1, "filename": "ejtp-0.9.3m3.zip", "has_sig": false, "md5_digest": "f6935b940fdb0aeb24f29baf23eb0fa3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83433, "upload_time": "2013-03-07T06:06:19", "url": "https://files.pythonhosted.org/packages/7c/f0/40db9e34d708a4117eab758fd2d67efa83e2e32b58132439d63c1da0cb31/ejtp-0.9.3m3.zip" } ], "0.9.3m4": [ { "comment_text": "", "digests": { "md5": "1b1ccaf03c48b03eef96383405a9379e", "sha256": "341498f5a2fd9e07dd5f235461e0375f18034bcf3a180638a6ada4a0a4a7d9fb" }, "downloads": -1, "filename": "ejtp-0.9.3m4.tar.gz", "has_sig": false, "md5_digest": "1b1ccaf03c48b03eef96383405a9379e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46771, "upload_time": "2013-03-07T06:10:38", "url": "https://files.pythonhosted.org/packages/35/09/5fc2c459fa8de197c2f5d8b2da203918fe25eed2a77f27773f921d61ed77/ejtp-0.9.3m4.tar.gz" }, { "comment_text": "", "digests": { "md5": "facc5bb87ab7ac072fcbdee31b9a72a5", "sha256": "1c62d8619fb6acdaeb74741ce3a58dd094a8b5fa699acb744c8752677a29c671" }, "downloads": -1, "filename": "ejtp-0.9.3m4.zip", "has_sig": false, "md5_digest": "facc5bb87ab7ac072fcbdee31b9a72a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 83433, "upload_time": "2013-03-07T06:10:41", "url": "https://files.pythonhosted.org/packages/26/66/a17bef10592e7c4bea01bb4730ba1af207132f95b108209e37473195ca63/ejtp-0.9.3m4.zip" } ], "0.9.3m5": [ { "comment_text": "", "digests": { "md5": "0ec196d4db40f9c1d0127829d0e11aa1", "sha256": "c1e1d50ed7148d96249f2aa9fd4f78e9016fcf01b5c3dd2144dde88bbf98f048" }, "downloads": -1, "filename": "ejtp-0.9.3m5.tar.gz", "has_sig": false, "md5_digest": "0ec196d4db40f9c1d0127829d0e11aa1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47317, "upload_time": "2013-03-11T06:59:09", "url": "https://files.pythonhosted.org/packages/8d/4f/5e75dda9332c72d4e610a0216e4ad64843c4885a6abb0dd7743419c31c4a/ejtp-0.9.3m5.tar.gz" }, { "comment_text": "", "digests": { "md5": "2d2335f2cccc4a030d90e2fba0e9d348", "sha256": "cb059ce9fd1e2e0dd9cf351b134ab7e4e303db9d91a2e606350784a279ee30bc" }, "downloads": -1, "filename": "ejtp-0.9.3m5.zip", "has_sig": false, "md5_digest": "2d2335f2cccc4a030d90e2fba0e9d348", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86633, "upload_time": "2013-03-11T06:59:14", "url": "https://files.pythonhosted.org/packages/ae/57/da641be26a81841b1c8518be762079c99f6dfc2e93a6fbff31b7e77ac8d6/ejtp-0.9.3m5.zip" } ], "0.9.3m6": [ { "comment_text": "", "digests": { "md5": "cbc77738b115dc14ab3a78553d3de8c9", "sha256": "6e2358eddb99f64d89479fcc91ae543102d4114cc25c6195937b30433031b70c" }, "downloads": -1, "filename": "ejtp-0.9.3m6.tar.gz", "has_sig": false, "md5_digest": "cbc77738b115dc14ab3a78553d3de8c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47324, "upload_time": "2013-03-12T05:35:36", "url": "https://files.pythonhosted.org/packages/9e/38/e639a448d94ac5995aeffcfa0a91d8d973f305e1f6f31032350e2eac29b9/ejtp-0.9.3m6.tar.gz" }, { "comment_text": "", "digests": { "md5": "8eedf67f9224a387d97485e22b16d2dd", "sha256": "9f2a0fff0c510668d2bcc7e0684067c05231cadf45e0b3bdde11cb26216d36ab" }, "downloads": -1, "filename": "ejtp-0.9.3m6.zip", "has_sig": false, "md5_digest": "8eedf67f9224a387d97485e22b16d2dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86638, "upload_time": "2013-03-12T05:35:43", "url": "https://files.pythonhosted.org/packages/41/5e/963a1113327b64bedbf833cba13a6572d5dbdcb993ce062c067084cd93db/ejtp-0.9.3m6.zip" } ], "0.9.3m7": [ { "comment_text": "", "digests": { "md5": "5345dd26f43e320678026fb785f74577", "sha256": "e0dbb8565ba38472f659177f3ebc9bce7e6c6de1593bc17318a406c359d079fb" }, "downloads": -1, "filename": "ejtp-0.9.3m7.tar.gz", "has_sig": false, "md5_digest": "5345dd26f43e320678026fb785f74577", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47337, "upload_time": "2013-03-12T06:01:45", "url": "https://files.pythonhosted.org/packages/90/ba/896a4741256a8cda09b02f26e4d142ffb6f6e6c3fdc618f3aa6103f7038e/ejtp-0.9.3m7.tar.gz" }, { "comment_text": "", "digests": { "md5": "0bf6d2cff75fb77101ca4242234c5898", "sha256": "0775d1d368af58529b69f49cc1661feb683f81bcb372fbffe779921608e1c012" }, "downloads": -1, "filename": "ejtp-0.9.3m7.zip", "has_sig": false, "md5_digest": "0bf6d2cff75fb77101ca4242234c5898", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86653, "upload_time": "2013-03-12T06:01:50", "url": "https://files.pythonhosted.org/packages/bf/66/08c5733a473afada0bd029c7eee3bd5fcad1301680d00d249521cff576d0/ejtp-0.9.3m7.zip" } ], "0.9.3m8": [ { "comment_text": "", "digests": { "md5": "0867ace285356b2b9976fbc948b0e2f2", "sha256": "1351409421da4b6329e4d30db7838dc51a7ade0187dccdac0ac920452a5ae97c" }, "downloads": -1, "filename": "ejtp-0.9.3m8.tar.gz", "has_sig": false, "md5_digest": "0867ace285356b2b9976fbc948b0e2f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47348, "upload_time": "2013-03-12T06:06:39", "url": "https://files.pythonhosted.org/packages/b2/26/c9e522c5b7cca5825372c292d90194a881400c94d61d689e976d64b4de84/ejtp-0.9.3m8.tar.gz" }, { "comment_text": "", "digests": { "md5": "dcc4fa87957761583a54074a0c4d302a", "sha256": "10f8b93f78bae6bb299cc8d1dcbf6be3ed781e99515de2b6e984d3bcc9ee4188" }, "downloads": -1, "filename": "ejtp-0.9.3m8.zip", "has_sig": false, "md5_digest": "dcc4fa87957761583a54074a0c4d302a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86672, "upload_time": "2013-03-12T06:06:43", "url": "https://files.pythonhosted.org/packages/62/c7/4fed692f847ba204d3c6101ce0c03d2a5f5400a3ced047d37a395b5e5c71/ejtp-0.9.3m8.zip" } ], "0.9.4": [ { "comment_text": "", "digests": { "md5": "39c8a66d3a51f04460992be838999cf9", "sha256": "96c82c0a70140cb95981fa16e159c3cd6edaebf2e0ace5c86e362b5c37b8d018" }, "downloads": -1, "filename": "ejtp-0.9.4.tar.gz", "has_sig": false, "md5_digest": "39c8a66d3a51f04460992be838999cf9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47376, "upload_time": "2013-04-01T23:25:33", "url": "https://files.pythonhosted.org/packages/7c/33/667e9dc6065867472e5430dbb645bba78db4c123e2fd4ed7cc0c01b6f175/ejtp-0.9.4.tar.gz" }, { "comment_text": "", "digests": { "md5": "c485090879aea0ff07b5a10d8603e705", "sha256": "ce1054916605374fe7badc1994078d56fb949a759bad895f956d1ad67119661f" }, "downloads": -1, "filename": "ejtp-0.9.4.zip", "has_sig": false, "md5_digest": "c485090879aea0ff07b5a10d8603e705", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86451, "upload_time": "2013-04-01T23:25:36", "url": "https://files.pythonhosted.org/packages/8a/95/f1e5e82fe1667e7b680ffea2b6086a24262ab633d24643e256f27ec16344/ejtp-0.9.4.zip" } ], "0.9.5": [ { "comment_text": "", "digests": { "md5": "73b84fc39aaf535e5734cecd953ed088", "sha256": "a4922f184c085daa62dccc5998b2044293984b3c9d11fcf49596922a79b124d7" }, "downloads": -1, "filename": "ejtp-0.9.5.tar.gz", "has_sig": false, "md5_digest": "73b84fc39aaf535e5734cecd953ed088", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49850, "upload_time": "2013-05-16T02:30:42", "url": "https://files.pythonhosted.org/packages/d6/97/b19b5efc577094aa141b60593e36d3281329e2ef372638fa6467cb126b8b/ejtp-0.9.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "48193777e10dd9934b35c6c4854fea84", "sha256": "a0859fb3e3e199a550591f18d8d0a2ac81c84eb5c8356fb9b2b27c34a17bd358" }, "downloads": -1, "filename": "ejtp-0.9.5.zip", "has_sig": false, "md5_digest": "48193777e10dd9934b35c6c4854fea84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90007, "upload_time": "2013-05-16T02:30:45", "url": "https://files.pythonhosted.org/packages/ea/30/eb861b7a8239d9cc55866b72e5bce5cb7629ccea197ce096163c9364f93b/ejtp-0.9.5.zip" } ], "0.9.6": [ { "comment_text": "", "digests": { "md5": "fd2e35ffad33de3b9ca19cf969bb8e1b", "sha256": "462cb7baa4193cbd955be9b50402175f06cc2d588effdc40dda1feb7064dd3e3" }, "downloads": -1, "filename": "ejtp-0.9.6.tar.gz", "has_sig": false, "md5_digest": "fd2e35ffad33de3b9ca19cf969bb8e1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45519, "upload_time": "2013-06-06T05:48:35", "url": "https://files.pythonhosted.org/packages/13/53/73a92fe6bc9bae23bb21b84be2a104b2775d65ce5dfd088594af6efc2506/ejtp-0.9.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "2d7e3065806f45a352bdc3e0274e10a0", "sha256": "bc609d640fdf7b4fd45f5e5b5496e49dde7b810cf22f428a94776b05c2aa1fd9" }, "downloads": -1, "filename": "ejtp-0.9.6.zip", "has_sig": false, "md5_digest": "2d7e3065806f45a352bdc3e0274e10a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 84181, "upload_time": "2013-06-06T05:48:37", "url": "https://files.pythonhosted.org/packages/d2/00/bbf4ca182381119859e48334234f38884b529410871fc3bc193a4208274f/ejtp-0.9.6.zip" } ], "0.9.7": [ { "comment_text": "", "digests": { "md5": "57bc75c3d237681dac1610c6cc8859b5", "sha256": "f21e7405310d2a51e3fa8acc7bf81d1357446879b8bae4238a9c2d278827aa00" }, "downloads": -1, "filename": "ejtp-0.9.7-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "57bc75c3d237681dac1610c6cc8859b5", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 103747, "upload_time": "2013-11-14T07:01:18", "url": "https://files.pythonhosted.org/packages/80/5a/0d5df10f8e58bb150d6ebb31908f08269e89de5041b1db34f7c460a59d2e/ejtp-0.9.7-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "42285ca3413c6ba773b75760edf6057c", "sha256": "b91da8ab241d76968e67fa9d3796f8416d95e89b715c185a56cc9ee8d23413dd" }, "downloads": -1, "filename": "ejtp-0.9.7.tar.gz", "has_sig": false, "md5_digest": "42285ca3413c6ba773b75760edf6057c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52291, "upload_time": "2013-11-14T07:01:02", "url": "https://files.pythonhosted.org/packages/04/ba/71a5b7ec77284546f6d1c0e9efafcb714ae3fa9e0a8ce73b5779155af3d1/ejtp-0.9.7.tar.gz" } ], "0.9.7p1": [ { "comment_text": "", "digests": { "md5": "dab90abdf31dce155d7770d6fb0ab2da", "sha256": "f2f25b9be3745e2dbad507adf83f9401e2256454ac1f01be5f57da2f54e08de1" }, "downloads": -1, "filename": "ejtp-0.9.7p1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dab90abdf31dce155d7770d6fb0ab2da", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 103713, "upload_time": "2013-11-14T07:10:46", "url": "https://files.pythonhosted.org/packages/f9/92/248c5bb7ebe3d5c29299a39a12a7e451ad3adafb1fdd6295c1ddf5975c2c/ejtp-0.9.7p1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a02281fa307d6b29934873cc63eb4f65", "sha256": "c9275f6afcb47cae31ccd920dd66deaee264ce118f09e3b93d0bc6222d653847" }, "downloads": -1, "filename": "ejtp-0.9.7p1.tar.gz", "has_sig": false, "md5_digest": "a02281fa307d6b29934873cc63eb4f65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52309, "upload_time": "2013-11-14T07:10:58", "url": "https://files.pythonhosted.org/packages/92/40/3c106c32ac28b26076a0ca41179cd0f664b171d7ee04a1af1b7f02948b1d/ejtp-0.9.7p1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dab90abdf31dce155d7770d6fb0ab2da", "sha256": "f2f25b9be3745e2dbad507adf83f9401e2256454ac1f01be5f57da2f54e08de1" }, "downloads": -1, "filename": "ejtp-0.9.7p1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dab90abdf31dce155d7770d6fb0ab2da", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 103713, "upload_time": "2013-11-14T07:10:46", "url": "https://files.pythonhosted.org/packages/f9/92/248c5bb7ebe3d5c29299a39a12a7e451ad3adafb1fdd6295c1ddf5975c2c/ejtp-0.9.7p1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a02281fa307d6b29934873cc63eb4f65", "sha256": "c9275f6afcb47cae31ccd920dd66deaee264ce118f09e3b93d0bc6222d653847" }, "downloads": -1, "filename": "ejtp-0.9.7p1.tar.gz", "has_sig": false, "md5_digest": "a02281fa307d6b29934873cc63eb4f65", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52309, "upload_time": "2013-11-14T07:10:58", "url": "https://files.pythonhosted.org/packages/92/40/3c106c32ac28b26076a0ca41179cd0f664b171d7ee04a1af1b7f02948b1d/ejtp-0.9.7p1.tar.gz" } ] }