Files
Geneweb/geneweb_colab.ipynb
2024-03-05 22:01:20 +01:00

180 lines
26 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/github/geneweb/geneweb/blob/master/geneweb_colab.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_ukucGtwbeI0"
},
"source": [
"# Live test GeneWeb 7.xx exp\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "_ksBSC1Ne5PV"
},
"source": [
"##Upload your Geneweb database\n",
"\n",
"\n",
"The file must be in **.gw format** at the root on your current Colab session. Use the Colab file import button (folder icon one on left) to import it.\n",
"Note that this Colab is a personnal temporary server and that everything including the imported database will be deleted if you stop to use it. It serves only for testing purpose.\n",
"\n",
"![import.gw.database.jpg](data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD/4RDoRXhpZgAASUkqAAgAAAACADIBAgAUAAAAJgAAAGmHBAABAAAAOgAAAEAAAAAyMDIzOjExOjA4IDAxOjA2OjM1AAAAAAAAAAMAAwEEAAEAAAAGAAAAAQIEAAEAAABqAAAAAgIEAAEAAAB2EAAAAAAAAP/Y/+AAEEpGSUYAAQEAAAEAAQAA/9sAQwAGBAUGBQQGBgUGBwcGCAoQCgoJCQoUDg8MEBcUGBgXFBYWGh0lHxobIxwWFiAsICMmJykqKRkfLTAtKDAlKCko/9sAQwEHBwcKCAoTCgoTKBoWGigoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgo/8AAEQgAeAB5AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A+ory7gsoTLdSrFGOMse9Um8QaWtusxvE2McDg5z9MZrP8W2FzPe6RfQQ/aYbKVnlgHVgRgEDuRWbPeTWuqnVDoN5NbSp5QRIgXjI77fQ/wCNeNi8dXpVvZwSS03Unp/NppZbW3uehRwtOpBSvdvzS+Wv3nY2txDdQrNbyLJG3RlORWV4g8QQ6Pc2Fs0ZmuLx2VEDAYVVyzEnsOPzqp4Fsbq0sLyW7gNr9runuEtif9UpxgfpWlqlhpGrzRwajDa3U0OSscmCyZHp1GQP0r0sPKVaknU91tdFt6J/qcWKp+zm40nez/4fb7hLjVHZrSPToEuZrmN5VDy+WoRdoJLAHnLqMYqGTxLYxzJCy3Jmd2jjRIGbzGXIcKQOdpBBNWpNM06e1gtvJi8qHIiWNtpQDggEHI9D+RqtceGtKmeNzbCPy5PMHlsVAOGHGPuj5iTtxk8mtlpoQRWXivS7u/is47gGebBjChuVIJUnIGM4P5VBN4z0uCd1naaOIIjxyNGwEobzOVGOQBGTn3HtnUtdK0yG4jmtbeGORFG3yuBtwQOBwR1xnpk471W/sjQ/PKiG3E0rcASYYld2VHOcDc+VHHzHjk0wF1DxLpunyyJdSSIEO0yeWxTdt3hd2MZ2kHHuKrHxlowh81ppVi3bN5iYLv7JnGN1Wbvw5Y3erG/ufMkJXHknb5edu3dwM7scZz6egp9zp+jQ2uy6S3SIPu3Svg7wv3txOd23nOc96AKo8YaJ5RkN2VUAliY2+X7vXj/bH5H0OEsvFunXl4IYBOY/3Y83yztVnYqqtxxk4/76+tXv7H0oyITZ2zyYBUuAzMFBUHnrgSMM/wC170i6BpivG/2RS6YwzMxJwcjOTzg8jPTjHQUAVm8UafFJMk5lXyWdXdYnZF2s45bHU7G4/wARmO78XadDuEQuJys62/yQthnLAYU45ODu46gVZHh7TYruS5SLZK67Qc8Kfm5APBb525Oep9TTzoWkx2EVo9pALaMoEVuMMqhEx74AAoAvWN3Fe2yzwbthLLhlKkFSVIIPQggj8KnqK0tobS3SC3QJEucAe5yST3JJJJ7k1LQAm4eoo3D1FGxf7o/KjYv90flQAbh6isa+0OK5lmlFzIjyzrOwJLIcRhNpXOMHHPTPStnYv90flRsX+6PyoA5iXwnA8gYXkqrg7o1JVXJcsWO0g55A6/wj0xW9aWsdtpyWivlVTZu7n1P171Z2L/dH5UbF/uj8qAOVt/B8NuoWLUJxhEjBGAUVD8oU9iBwD6FvWg+D4GQg3jI+2VQ0SbNokYMdvOR09a6rYv8AdH5UbF/uj8qAKOj6fFplu0Ub7txBJJPZQMcknHHcmsu98L215dme4uDITcrclXRSNy5AA49CB3+6K6LYv90flRsX+6PyoA5oeF4xCq/bX81EKpNtG8ZKkknPJwu3/dOKqxeEWF0nmXxNtHyoDuGY8fKcMCFXHyjJwefauv2L/dH5UbF/uj8qAKWs2CanYtbPKYw3O5eo4rGl8KxPLu+2yCPzFkCKSAMAgDIYHABGB0GOhrpti/3R+VZ2oaxpentIL26hh8sAuX6KD0ye1AFbStAt9Ov2uUmaQ4wAxJxwB3OBgZAwBxxzW1uHqKq299Y3NjFeQXED2suNkoYbWycDB+vFWti/3R+VAGLrkF5LcA2q3DJtUfu3IGctnpMnt2/PtrWoZbWESAhwgDbuucd+T/M/U1LRQBxlvpniKxt7byrl5nYMbgiTc4JxgL5jMucjk4AxnABps9l4thL/AGW6WQYdlLlWZN02SoBwDiMDG7oSea6vU7+30yze6vHZYVZV+SNnYszBVAVQSSSQAAO9V9F1zT9aFx/Z05d7aTyp4pI2ikibGcMjgMvBzyOaAMzS4/Eceo2jahOk1u2/z1RURU67SOrHtxnueeMHpajuriG0t5J7qWOGCMbnkkYKqj1JPSoLHU7C/jSSxvba4R87WilVgcdcYNAFuiis+11vS7uSWO11KzmeI7ZFSZWKn0ODx0oA0KKKp3WqWFozLd3ttAylQRLIFwWzjr64P5GgC5RSKwZQykFSMgjvS0AFY9zZXf2q9McFlc210VZkuHI6KBjG0gjjNbFFAGPBpLp4efTgYIjJvB2x7kRXcsQAcA4BwMjHt2rN/wCEHsP+f/Wv/BhJ/jXVUUAY2tahd2VzG0UZ+zAKzEQtJu+bD5IPyALzk9fwxWwrB1DKQykZBHQilooAxvFttc3OjBbKBrieO6tZxEhUMwjuI5GA3EDOFPUiuT+HVtqC6/eXesWvk3k0cqSTtFDG9wVnYKG8piGZVAz6AgZPWvQ9n+035155cX1rD4p8y3vrBobWZ2b7delAS6lsxYjKggswJBJx1wOqbS3A7bXrSS+0me3hWNpG2kLIcK2GBweD1x6VinS7yTVrOUWFvZxxSK/7gRuvG7dliAwJBAGB6/WkfxPGiszXOj4XG7GpE4yQOf3fAyQM05/EoW0juvO0lreQkLKuokqcdeRH0Hc9qnnj3HY6ivJNJ+HF9aQa3Hd21jcPfu+2UTkFUOcDBQ45IbI7genPZr4kMiSNbvplyUxlIL9pG5YKOFiJ6kCmJ4qhkQvHe6GyAFiy6pkYHU/6vtRzx7isdRCpSGNDyVUA1xXiLwnqNx4kl1fTbmKQzxpE8Ny7KqhcgrwDlGzyuAc8g1pL4i3GQJPo7NGnmMF1Ikhc43f6vpnjPrUaeKEe2juFn0kxSNtUjUSfmyAR/quo3Ln0zzRzx7hY0PBuktonh21sHeVmi3cSOGK5YnaCOw7e3p0rarlX8TojYa40gDYXLf2kdoAIByfLwPvCnHxKojncXGkMIE8yQLqRJVc4yQI/Xj60c8e47HUUVzEXiIytbiKTSnE7FImXUCQ7ggFQfK+9k9OtM/4SmHcV+2aHuABI/tTnB6H/AFdHPHuKx1VFcxF4kEkkapJpsu50QrBf73AZgM7fLHTOe3Sul2f7TfnVJp7AUrrVbe1umhm3gjywCqlss5YKvH+7+oqzY3KXlnBcxghJUDgHqMjofeo5tPtZrk3E0KSSlVXLgNjaSRjPQ5Jqa2gS2tooIRiOJAignOABgUwHsMqR6ivLtI+Heq2lxFDLd6emmsuy4WKMNI3ykEqWT5Se/J5ya9IsY7qO1ZbyZJZtzkMi7QFLHaPqBgZryTwTpPxBsfEtn/ab3n9lecWnEtysgK4P+0T6Umk9wO+TwdaKJlN1OVmADgxQZYZzyfL55wfc896lm8J201tFBLeXTxRZKKUhOCTkn/V+vP1Gagn03XLjU7pkvpbe2z+7xIPmOWOcYOAAVXHGcZ4NPfR9aEkzRaw6jcfKDHcFXJwpGMkgd889+gNLkj2GSQeFLW3dXgurhGUBRtig4GQf+efqqn8BVc+B9OLq5uLklU8sfLFgLnIGNnY9PTtiprXR9Vi1CGebUnmCMQd0hHy7lPChe4Urgk9d3Wuko5I9hXOci8I2sSusV3dIrqEICQgYByB/q+MHkelJ/wAIhaeTFD9qufKiYtGnlw7UJ64Hl8V0lFHJHsFzl38FafIhR552U9jHD7Z/5Z98DPrgZotfBdlbW80EV5e+VN/rA3lNu5yM5Ttxj0AAHAFdRRRyR7Ac6PCdsv2fF3c/6OxeH93D+7OQeP3fAyBx04HpUB8E6eVZTPcbWJYjZDgkggk/u+vJ5rqaKOSPYLnO2/hKzt2UxXE6gSJKVWOFQShyBxGDjr0x1PrXRUUU0ktgELqHCFhvIyFzyRS1zOt+D7PV9cTU5rq7imSMIBC+wjAYAhh8w++cgEA8Z6Vu6ba/YdPt7XzpZ/JQIZZWLO5A6knuaYCWMt1Las93AsEwZwEVt2VDEKfxGDjtmvJPBPjjxfeeJbPTtUs99rNMVkle0ZGRcHoRgDp3Fey15p4M+IlxrHi+40S+ghVjNLHCYkIwqBjliWOfu4xgUAdRqN14kjnmWxsIZY/MIjdmUfL2JG7P8ulV7u48Thnt44ImZ45ikqKqgYwE5L8HnPQ8+gBq1feIbizkmL6ZI8EbY3o5JI3OM42+kZPXuvrVYeKLqMhJdMZ5N8qkxuQo2DIySv0B9Mg0DJpbzXW0iWP7II9VbJVY13Kq44IYkLnPYkHHb1gnuvFStdPDp8TBS6wRl0w4yu1id3GfmGP/AK1WY/EjtZXNw9g0Qi8vaJJMbt2Mk8ZUDOeR0xVrQdZk1V5FewmtlRQ25+jZ4GOOeQ35A9xQI2KKKKACiiigAooooAKKKKAKej3h1DTYbpkCGTPyg5xgkf0q5XI+H7eVrO2mK3zxiLCCCYKoO992VLAE9O1dNp4mFjALrPnhBvyQTnHfFc2GqyqQXMuh0YilGE3yvqWK808Gaz4Xv/GFzFZ6NBY6qk0saS5BeQjO447AgHn8PTPpdcfo3w90fSPEh1u1e7N4XkfDyAoC4IPGPc966TnNW88RadDJJFdCQJG4BZo8rkMwB/NH/wC+c+mWL4psflWVJ45WLgRlMk7QTnj1xxWrcWFrcIyzW8bBjk8YJ5J6j6n65PqaadLsGJJsbUklmyYV6t949Op7+tAFAa5p17ZTvseeBCisDFkOWOABng80yHxVpcoPlSSNt+8PLPygDcSfYAN/3yR1FX7jSNPnt5YJLSERSgK4RdhIGMcjB7CpV0+zVVUWkG1SCB5Y4IJIP4Ek/iaALNFFFABRRRQAUUUUAFFFFAFbTbNLCyito2Zljzgt1OST/WrNFFKMVFJLZDlJybbCiiimIKKKKACiiigAooooAKKKKACiiigAooooA//Z/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgxIyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdfYmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhovY0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8AAEQgBMwE3AwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A9AooooAKKaWVepAz6mloAWims6r95gPqaXr0ouAtFFFABRRWJeayU1dLOHlR8rEDPzf/AFqmUuVXJclG1+pt0VXtJzMhDfeH603UL1bG280o0jswSONersegpQmpxUkW4tOzLVFZQOuriVhYOOMwKGBA9nJwT/wEVau9SsrEqLy7hgLcgSOATViLdFQSXdtHGkklxEsb8qxcANxng/QZplrqFpfRu1lcwz7OuxwcH3oAtUVQj1GKDTYLnULq1QuBl0f92x/2SetWre4huoVmt5Uljbo6NkGgCWiqlzqdjaTLDc3kEUr9EdwCahstUjfS/tt5JFAgd1LE4UYYgdfpQBo0VBaXltexeZaTxzIDglGBwfSmXmo2Vjt+2XUMBf7vmOBmgC1RUK3ds0LzLPEYo/vuHGF4zyaitdSsb1He1u4Zlj5co4O360AW6KppqunyXK26XsDTMMqgkBJ4z/KlutUsLOZYrq8ghkbkK7gGgC3RUazRPIyJIrOgBZQeQD0pi3ds1v8AaFnjMPTzAw29cdfrxQBPRVOfVLC2uRbz3kEcxxhGkAPPSoZ9WitNSlgupYYYEhSQO7YyxYjH6UAaVFRW9xDdQrNbypLE3R0YEGoEuilxc/aJrZYY2QJhvmXI6NnoSTxQBcoqpbanY3czw215BLIn3kRwSKmFzAbY3AmjMABYybhtwOpzQBLRVKfVtOth+/vrePnHzSAc4B/kR+dRXWqx2t/BHLJCltJA8rSs2AMFQOenO6gDSoqC1u7e9i821njmjzjcjAjPpU9ABRRRQAVl6vqZsykMf32GWP8AdFalcv4gUrqRJ6MgIrmxU3GnodGGgp1LSLUNjcXMYlBGGGQWPJp4knsYShYh36DOQo9a14JElhR4/uMARWTq4/0oHsV/rXBXw8cPT9pTbv8A5msKjqS5ZLQjisbi5XzeMHux61E13Npc4RgT3KZ4I9a3rd0kgRoyNuAPpWF4kljaaGNSC6A7sds4xVSwsKMFVi9fzKpVHUnySWhvxussayIcqwBB9qfVTS1ZdNtw3XZmrdepF3imzikrSaGuGMbBCAxBwSM4NcRY3Mmm6hLJLEJJ1JU7j0Pc13NFaQcU7yVzCpS52nfY5/Sr+W8vwqQhAMliG4Aq9rUUrRW9xDGZWtZ1lMa9WGCDj3wSfwrSoqXGCf7uNkaJyt7zuZR8RaXs/d3QllPAgQEyk+mzrn61WhvLPT9T1BtSkS3kmcNG8xwHj2gBQT6HPFbuBnOBn1oIB6gH60DOQkEMUOnyXEDCzOovJFGUPyptYg7ewzz9K0hc22oa5DNp0iTLFBIJ5YjlcHG1SRwTnnHatS7sxc3FpKX2/ZpDJjGd3ylcfrVkAAYAA+lHS39bWDr/AF3OOs2a3XSbma7S1t/sIRJZIwyK+eQST8pIx+VbegrETd3EF19oSaUEssexCQACV9c8c+1axAIwRkUdKYGBaXdjYT6hDqTxx3Es7NiQczIfu7f73HGBWZbqY9M0iff9ltIZp9xePcIiWYKWHbHIz2rsiASCQOOlFIDF0fyZ9SubuG+W7zGqO0UYEZIJx8w4JH9aQ3Vrp2uXsmoyJD5yp5EsnClQOVB9c5OPetsAAYAwKo3lpevcedZ3whyoVo5YvMT6gZGD+NAHObBJplw9sjQ2yan5ki+VnCYHO30zg49Kuq8F5dvPFqaXjxW0gJgiG3aR0ZgfXkCtvT7MWUDJ5jSyO5kkkYYLMepx2qyAB0AH0pW0t/W1g63/AK3uc3JDHF4S0zy0C7WtmGB0JZcn9TUKzLZ3Wox32ow2ryzM2yaEHzEI+XBJ+bjjArq6QgHGQDjpVPVsFokjlZkfS7eyNu0rm6t/sis6YYMTmMkdsAtUiWwt9Tj0SNCLfzFuhxxsUcj/AL7AP4109FLrf+v6uByEckdtDfWt/qMVvLJLIXhkhDNKCTgrk5bIxjH0qxDJaabrkJvZCBHYRotxMNu35m+8exNdMQCQSBkdKCARgjIoWgMwrC9tYJdS1ENs093Ta4UlXbGGYAdQSQM+1UtZ2mLW96F0M1tlQOWHycV1VVtRsxfWhgL7MujZxn7rA/0oBGTdXljf3OnQ6a8ctxFOrYjHMKDO7d/d44wajmhkGotoio32a4l+07h0Eecuv4tj8GrowACSAOetVobTy76e7d97yhUUYxsUdvzJNAFDSoIjqOsuY1LNOFJI6jy14+nNY1jNa28mgzXgAjjtJcSMPljO5QCfQds12VJR/X4AY+myw3euXV1YkPbGFUeVPuSSAnoe+B3rZpAABgDApaACiiigAqpfWMd6i7+HTlT/AI1boqZRU1yvYcZOLujD+x3sRIQNg90bg1NFpsz2zpKwRjyncqa1qK44YGnF3u2bvESZyradqdu7CMSc9WjfrVix0OV5RJefKgOSuclq6KirjhIJ33KeLm1bYTp0paKK6zlCkyM4zzWJqFt9p10D7DaXeLYHFy2AvzHp8rUTzvZXFwkEUMRS3gVAqDCFnZeuASB6fyoQG07omN7KuSAMnGSegpSQOprHv4bmOOONrzzc3ERR3RdyndzwAAR6cfnUb3E6ym3ll8/yb6JA8iLkqyhuwxnnqAKP6/L/ADA3aKw7C81G6minEU/kSOwYN5XlqvOCMHfngdffgVd0V7ibTYZ7mczSTIr/AHQoXjtgUAX6KKwb5jB4kF2CQsUEayemxnYE/gdp+gNHUOlzeormmumTUrrUx83+iy+Up6bEZQD+J3H6EVburu60zcZJzdbraSYbkA2suOmAPlOe+T70dLh1sa5kRX2F1DYLYJ5wOppk11bwOiTTxRvIcIruAW+metYeoLPbmZ5bn7Q39nzMC8a4ByvYDBHsc/jTbszW91qt1HcOHisY2RSqEA/Pjt2Iz+POeKYf1+X+Z0lFYc17qMt5cLaQzsLd1RVTytjnaCd24hu/b9au2LXEt3dvLOTHHKY0iCgADCnJOMk8mkFy/RRWdrcypZrAd5+0OIz5aM7berYCgnoDQBfkdI0Z5GVEUZLMcACoRfWjSRxi6gLyjdGokGXHqB3rDnY3OhLAss0f2e5jiO6PazLvXbkOuehB6dR6UqCezm1CVbuWR/tcMZMipyD5eeijsSP/AK/NC1/r+u4HR01HSRdyMrL6qcis6B7u5kkuFuvLRJ2jEJUbSqtg5OM5PJHOOnFU7GS4tksnFwWinuZIjFtG0DLnOeuePXHtQBv0VhRajci/tzmeW3uHdQzIix8KxGwA7/4f4uDSRXl4E026e5Z0uyWeHYoCjy2YKDjPYdc0dLgb1FYuk3Wo3MkE0sU3kTJucv5WxMjI2bTux9f0raoAKKz9Y/1Nt/19Rf8AoQqotzeKFuGuSyfbWg8rYoXZvKjnGcj60LUHp/Xr/kbdM8xPNMe9fMA3bc849cVlJc3Ud9/pM0iK0jKkflqY3UZxtYchsD+I+vFVbO71CWL7cIJVSeEu7MItq/KSu3adx9Pmz+FK+lx21sdFRWFJc3yLZ26yXE0s8TTO8KxBhjbwA+BjLe5qe1l1Ca8giuJDBth3yRhVJY7sDJ5AyOuKfWwr6XNaiiigAopm4/8APNv0/wAaNx/55t+n+NAD6KZuP/PNv0/xo3H/AJ5t+n+NAD6KZuP/ADzb9P8AGjcf+ebfp/jQA+imbj/zzb9P8aNx/wCebfp/jQAnkR/aDPt/elNm7PbOcUyS0t5XleSIMZUEb55DKM4GPxNSbj/zzb9P8aNx/wCebfp/jQBXj061jGAjMdyvueRmYlenJOePTpTmsbZpGkMeWaRZSdx+8owD+Qqbcf8Anm36f40bj/zzb9P8aAII9OtY7gzpGQ+S2N7bQT1IXOAffFTQQx28CQxLtjjUKoznAFLuP/PNv0/xo3H/AJ5t+n+NAD6ry2dvM8rSRhjLH5T5J5Xnj9TUu4/882/T/Gjcf+ebfp/jQBEllbJs2xKAkXkqOwTjjH4Cmwada2+7ZGTuXYd7s/y/3RuJwPYcVPuP/PNv0/xo3H/nm36f40AVF0iyVXXymIeMxHdKzfIeqjJ4H06VLLYW0omEkWfPjEUnzH5lGcD9TU24/wDPNv0/xo3H/nm36f40AQS6dazT+c8Z34AbDsobHTcAcN+OamihjiLmNcGRt7c9T/kUu4/882/T/Gjcf+ebfp/jQA+o2gjadJ2XMiKVU5PAOM8fgKXcf+ebfp/jRuP/ADzb9P8AGgCKWyt5nd5I8s5Qt8xGdpyv5GhrG3fzN0efMkWR/mPLLjB/8dH5VLuP/PNv0/xo3H/nm36f40AQNp9q1z55jO/cGI3naWHRiucE++M04WVuEiUR8QuZEG48Mc8/+PGpdx/55t+n+NG4/wDPNv0/xoAqx6VZxzpMkRDxsWT52IQkEHAzgdTwKqW+kuuoRTPHFGkDMy+XI7biQRwp4QcngZrV3H/nm36f40bj/wA82/T/ABoAgt9PtbaXzIYyp5wN7FVz12qThfwAq1TNx/55t+n+NG4/882/T/GgBJoI5wolXcFYOOcYIOQaj+xW/lhPL+US+djcfv7t2fzqXcf+ebfp/jRuP/PNv0/xoArpp1qlx56xkOGLAb22hj1IXOAeTyB3pE0y0jZysRAYEbd7bRnrtXOFz7YqzuP/ADzb9P8AGjcf+ebfp/jQBDNY288caOjARfcZHZWXjHDAg/rTorSCFlaNNpVNgOT0zn+fepNx/wCebfp/jRuP/PNv0/xoAfRTNx/55t+n+NFAD6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoqpPqdlbSmKa5jRx1UnkVH/bWm/8/kf50AX6Kgtby2vAxtplk29dp6VN060ALRTVZXUMpDKRkEHg0UAOqj/aaGJJPs12Q+eBCSRg45xV6sjz2FvETrcCk7vnKp8/Pue3SgC1FqKSSKgtrtdxxloGAH1NXayrectOg/tuCXLD92qplvbg1q0AFZdxq0sd/LaW+nz3LRKrOyMoA3dOpHpWpXP/AGSW68Sah5d7PbbYos+Vt+bhuuQaANaC5llmEb2kkQMQcsxBAOfu8HrU5dcNggleoB6Vz2orcrqN8lqztcDTQFYfeJ3Hn607Tf7CM0P9nqPtIibPlhsjjnzPf/e70Pb+vMOv9eRs2F7HfWkNwg2iVdwVjyBTradplkaSFodjlRvI+YD+LjtXLW1jbwaFpN7HGBdGeLMv8RBbBGfTHGKbcCQ2L/Mi239py+eZELJjJxuAI+XOKP6/L/MP6/P/ACOwDKy7gwIPcGkMiAcuo5x171x0kMbaZe/Z7mB4HlhXbaRNHGrbxkqSSM9M49KtazZabY3MQH2OICJsQ3URMT88kN2f8zQB1VFVNLk87TLaQQtCGjGI2JJXjpzVuh6AgooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAzNPRW1HUtyg/vV6j/ZFJquiQ6k0ZaQxeWCPlUc5pPKv7W+upLeCKaOdgwLSbSMDGOlP+0ar/z4Qf8Af/8A+tQBU0SxXTtTvLdHLgIhyR65rbZQ6lWAKkYIPcVQsILr7bcXV1GkRkVVCK27pnnP41ffdsOwgNjgkZGaAMC4um8PT+TH+/tpAWSHd80R/wAKK09P0/7LvmnfzrqXmSQ/yHoKKAL1RfZoAoXyY8DoNg4qWigCJbeFSCsMYI6EKKloooAKKKKACkAAzgdaWigApKWigBAABgDAoIB6jNLRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABWRdeJ9HtLh7ee9CyxnDARs2D6ZAxWvWH4X/AOYv/wBhOb+lAF3TdZ0/VS4sblZSn3htKkfgQKv1xet6RqS6vdeINPu7dY418wYckkIgDDAGD908Zrq9PuGu9OtrllCtNEkhA6AkA0AWaKKKACiud1jT21TXEtvPMSpbeZ93cM7iOmR/kVJZaBd2Bb7Lqhj3dR5AIP4E0Ab1FY8keq2k1sxvWu0eZUdBbgYU9WyPStigAooooAKK871ZmbVbssScTOOfTJrZ8PrqU1qFS8e3hyRFmNWBI6jn/PBoA6uiue0LUL+bVLizvnDmNCfugYIIHYe9dDQAUnTrS1DdyxQWsss+PKVTuBGcj0oAkVldQykMpGQQeDTq4uw1AtFcQuJo9P3D5o3OYMnjnuKtXsVxpcZutPvbh44yu9JTuBB6MOxBoA6qis/R9TXU7TzMBZFOHUdj/hWhQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAVlQtfagHnhuhbRbmWNBGGzg4ySfcdBWrWcdOuInk+xXhgjkYsUMYfaT1K+lAE2nXL3NsTKoWWN2jcL03A4OKt1maeslhN9hkRnjclopgM7u5De/v3rToAKKKKACuY0u1mvbPWbeC5a2L6pKGdRk7eMgeh966esi68MaNd3D3E9kGlkO5iJGXJ9cA4oA57QoJIPC+qxPcuHS2kEtnIhVoXKsQeecFcH866rQ/8AkBaf/wBe0f8A6CKxYfDenXMWo2SwKiQXgaEklthMMRIPOSp7jP5EAjesZkaP7P5QglgAVoQchR2KnupxwfYjgggAFqiiigDFvLqGw8RLPdMY4mtNgbaSC2/OOKW6120ls5xZXG6cISPkYYHc8jsOfwrZpCAQQRkHqDQBgX+lwLFC8V4Y0kKqzMWczEnjvz+VdBVSLTLKGYTRWyK46EdvoO1W6ACiiigDzvVlZdVuwwIzM559MmuhTUdMlt7aFbt7WOAKwCjnd6Hg9P1zXR0UAYWnSW9xr8k1tK84+z4eRgAM7hgcAdhW7RRQAVFcwR3Vu8EoyjjBqWigDkBp9zpEk8Mts93ZTjaxi68dD7EU2OZRby2bRXg0twP3kqcxNnrxwRntXY01lV1KsAykYIPQigChounRafZBY3EjSfM0g6N6Y9q0ajhhjt4VihQIijAUdqkoAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAphL54Vf++v8A61PooAZl/wC6v/fX/wBajL/3V/76/wDrU+igDBI1RbrUzZwBcXCzBnx+/Aij/dpnpnaQWPA7ZOdppMUE9/JdB5pplzNDK9xJhoZvmXCE4A4K4x/yzBwOKm1DUZoNRkh+3WNlBHFG2+5jJ3M5kGAd6jon86ittJ1K3umuE1C0YnfsQ2jbY97Bnx+8z8zAHknHbA4pNpAbWX/ur/31/wDWoy/91f8Avr/61UfK1j/n+sf/AADf/wCO0eVrH/P9Y/8AgG//AMdpcyAvZf8Aur/31/8AWoy/91f++v8A61Z6rqrlguoaexQ4YC0Y4PXB/e+4p3lax/z/AFj/AOAb/wDx2jmQF7L/AN1f++v/AK1GX/ur/wB9f/WrNmOqQKGl1CxUFlQH7E55JwP+Wvqak8rWP+f6x/8AAN//AI7RzIC9l/7q/wDfX/1qMv8A3V/76/8ArVR8rWP+f6x/8A3/APjtV7i41C2kSObUrFXk+6PsMhz8wXtJ6sPzo5kBrZf+6v8A31/9ajL/AN1f++v/AK1UfK1j/n+sf/AN/wD47R5Wsf8AP9Y/+Ab/APx2jmQF7L/3V/76/wDrUZf+6v8A31/9aqPlax/z/WP/AIBv/wDHaPK1j/n+sf8AwDf/AOO0cyAvZf8Aur/31/8AWoy/91f++v8A61UfK1j/AJ/rH/wDf/47UcJ1SdN8WoWLLuK5+xOOQSD/AMtfUGjmQGll/wC6v/fX/wBajL/3V/76/wDrVR8rWP8An+sf/AN//jtNVdVcsF1DT2KHDAWjHB64P733FHMgNDL/AN1f++v/AK1GX/ur/wB9f/WqgY9XAJN9Y4H/AE5v/wDHabD/AGrPCk0WoWLRyKGU/YnGQen/AC1o5kBo5f8Aur/31/8AWoy/91f++v8A61UfK1j/AJ/rH/wDf/47R5Wsf8/1j/4Bv/8AHaOZAXsv/dX/AL6/+tRl/wC6v/fX/wBas2Y6pAoaXULFQWVAfsTnknA/5a+pqTytY/5/rH/wDf8A+O0cyAvZf+6v/fX/ANajL/3V/wC+v/rVmwnVJ03xahYsu4rn7E45BIP/AC19Qak8rWP+f6x/8A3/APjtHMgL2X/ur/31/wDWoy/91f8Avr/61UfK1j/n+sf/AADf/wCO0eVrH/P9Y/8AgG//AMdo5kBey/8AdX/vr/61GX/ur/31/wDWrPRdVkXcmoaewyRlbRjyDg/8tad5Wsf8/wBY/wDgG/8A8do5kBey/wDdX/vr/wCtRVXSria6st9wYzKsssbGNSqnZIy5AJOPu+tFUBdooooAKKKKACiiigArP1u7lstMkngIEgIAJGcZNaFZXiVWfRpQiliCpwBnuKAOftb26uZrie7SWRj9kK+VCzHYJZCThQeODzVyW2viksqy6hvKTuAJHxuWT92APoTx3HXNUZdQmECT2tzdw3xjWKQLEhRlUsR1U8/N2p2lXms3uoRQSajdCNs7isMWQMf7lTZ3AsK95MGbT5L5rxZJw5ff5W0bwoG75M52Yxz68Zqa3hnnuo44X1JbAyLuMzyq+dj7uW+YLnZ7Z6VpHSrpIytvrF3Gc5/1UBHJyeBGOvNOXTb0M27W7wqT8oEUIIHv8nP6UuVjMi+t7iK5vBAbyPzLlXkdVmkUxlByoVgfvddpzgelXdHgnNzvuLm6mSOJfLLrJEpJZ85VjkkDA+bPY+9XP7Ouf+gzff8AfEH/AMbo/s65/wCgzff98Qf/ABujldrCZm6gksmosJEvZJFuYWhCb/JEYKkk4+XOd33ufwxVOEajLcfK17GkxUyIFnHlHzFyAzk5+UtyoAx+m9/Z1z/0Gb7/AL4g/wDjdH9nXP8A0Gb7/viD/wCN0KLQ2Y19FdwM8SNqDxRyv5UYaYl8qmP3q5IwS2N2VPI4xxsTQtJqtu7RblW3flhkBtyEZ9+M/hS/2dc/9Bm+/wC+IP8A43R/Z1z/ANBm+/74g/8AjdLlYGDbpqH2aYz3t6kzIBKgs52w24ZIO8g9x+7xwcjoKaJJ5BNF/wATOO58gG2jWSZwrlnwWJA4Py/6zt16V0H9nXP/AEGb7/viD/43TRpU4cuNXvQ7AAt5cGSB0/5Z+5p2YXMd31Q6jJJbidJT5iGIpKUGFO1tzHy+SAflXjOCfUuldo4BZy6nFbnd5rSxXUj78DbwGV8Y3dPlz17Vtf2dc/8AQZvv++IP/jdH9nXP/QZvv++IP/jdHKwIL7zhp1kJJLqSPcv2h4EdJGG087V+YfNjIHP61irDfII0Et5aQDeYj9nnlYN5jnLbGBzjafnBB/Ouh/s65/6DN9/3xB/8bo/s65/6DN9/3xB/8bo5WIp+IPPzAYjdNhW/dQCRQ7cYy8edpHONwKnv61VmheG9uSyaisclyrzGFpTmMxjG3b/t4B284HpWt/Z1z/0Gb7/viD/43R/Z1z/0Gb7/AL4g/wDjdJRaGZcHnnyRqP8AaHl7D9n8vzc/fbHmbOc7dn3vfvmq8QvYdLiguEuxKyxgyIsxSOMLxhIyDuyMEZzzk8YA3P7Ouf8AoM33/fEH/wAbo/s65/6DN9/3xB/8bp8rA56aS7j052v31BSkDC3aMTKNwdhl9pJHGz75Ix+NX7Bb3+22a5ubhT5j5iNvMUZOdvz7jGOMHgA8YPOatzaCLiaOafULiWWPlHeC3Zl78ExcVP8A2dc/9Bm+/wC+IP8A43RZiM3UI5ZNRYOl68ouYWgCeZ5IjBUknHy5zuzu5/DFL4fW8FyzXdzcNIY/3sUlvKq78jkMzFPX7mAc+1aP9nXP/QZvv++IP/jdH9nXP/QZvv8AviD/AON0KLSsNmDeC/SMpCl1C8bSyRlI5m8wmRjjCEKOADls5z09dLxB5+YDEbpsK37qASKHbjGXjztI5xuBU9/UXP7Ouf8AoM33/fEH/wAbo/s65/6DN9/3xB/8bo5WHUxguofa7ppbu7hl/e4RLWVxtwduDu8vIG08AEkY6k1C/wBrFuu0aiVVn2oDcjzjhQDuI3x854bcvXnvW/8A2dc/9Bm+/wC+IP8A43R/Z1z/ANBm+/74g/8AjdHKwMWb7ftfeNQE2G+ybN+3zPMb7+3jGNn3vlx071etLe6S4tp3e7LvcTLKHdigT59vyngDhcHH41c/s65/6DN9/wB8Qf8Axuj+zrn/AKDN9/3xB/8AG6OViDQ/+PGT/r7uf/R70VYsbRbK2ECySS/O7l5MbmLMWJOAB1J6CirAmkdYo2dzhVGSayLd5rTw2lxCY1kEfmsXGd56+vU1s1m2GnAWdul2j74VKbC+UPvgHH50AQ3ckjWdtezmPb58Ui7ByiEjIz34rYByM1mzaeIoLa3tY2KLOkjMzZwFI6556DArToAKKKrtdwpeLas22Vk3qD/EPagCxRRWfrd3LZaZJPAQJAQASM4yaANCiuMtfFN7FLm4Czpj7uAv6gVqad4lF9fR2xtDH5mRu8zOOM9MUAb9FV726FnbGUqXOQqqDjcxIAH5mqMmstbG4W9gSFoVjORNlWLkgckDA46mgDWorHi1wTRnyo4ppRKsREE4dPm6ENj254p0utrbwv8AaUihnWbydrTYj3bd2d5A4x7fhQBrUVlW2tRThGKx7CXVnjkDqGUBuDjkEZOeOlEeto1tHPLC0YMUksoJ5jCEAj35NAGrRXPza4Lm0uEiaLzVQSL9muBJxuAwSMYPP0961LW7lkuZLe5gWGRVDrtfeGUnHXA546UAXKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACs+50uO61SK7lOVhUBU9WyTk1oUUAFZXiVGfRZgiljlTgDPcVq0UAeZeVJ/cb8q0vD0Un9tW58tsAkk46cGu7ooAqanCJ7J1IfKlXUouWDAgggd8EdKzbaynv5rueaV1LiIRSeQYsMhLZCNzjJHXrzW7RQBSNpcSrGbm5V3SUSfJFtXjsBkn9TUUullppZ459kxnE0bbMhSECYIzyCM+nWtKigDPu9OkvbNYbm4y4kDl0TaMdCoGeAQSOp60HSYnmvmkdmS7QIUHGwYwcfXrWhRQBnSWF1PZyW9xfBtyhVZIQpGCDk5JyePYe1S2tpLHcyXFzOs0rKEXamxVUHPTJ5561cooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACq7XcKXi2rNtlZN6g/xD2qxWfc6XHdapFdynKwqAqerZJyaANCs/W7uWy0ySeAgSAgAkZxk1oVleJUZ9FmCKWOVOAM9xQBg2vim9ilzcBZ0x93AX9QK1NO8Si+vo7Y2hj8zI3eZnHGemK5HypP7jflWl4eik/tq3PltgEknHTg0Adnf3QsrOS4ZdwTHGcDk45PYc8n0qv9vmWyeeS3iUqQAROPKIP8W8gcevGfY1buI3lhKxSmJ+CHAzj8O4rPGkMInPnxrO0yzApDiMMBj7mf69aAGw639oij+zwxSytOYDsmymQhbIbHIxjtSpq8+N8tmqRpOIJSJskMSACoxyOR1wfan2+lPHOJpbnzH+0m4OI9oOY9mOv4/5zTm0zdDNH53+tuVuM7emGU46/wCz196fX+vL/gh/X5/8AYuqy58x7QC2E5gMgkywO/aDtx0zjvVaPVxZwMJpYzLJdTKhuJvLUBWPVjnAHAwBUlpYXEyus0uy3F28vlGLDHEhK/Nn7vQ9PxqYaU8ZEkFwEnWaSRWaPK4c5KkZGe3cdKX9fkN/1+JZ0+8S/tFuI8YJKnDbhkHBwR1HHWqOq38/2a+S1i+SBCry+ZtZWxn5RjnAI7irbHUYgqxx29zxlnklMXOegUI3H41Xn0y4njuFW4SBboAzIE8zDYA+VuOMAdR+VHUQt/rC2E4SVYVj4+/OFds91THOPqKS1vbwzal58UbJBJiNUk5+6DjkAd85J7+1F3pMtw1ysd0I47kqzgxbmyABwc9OBxj15qSbSzKb1fOAjutrFdmSrAAZznkfKOMfjQAumaol/JNEDCXh2kmCbzUIOcfNgc8HjFaFUbOymhvJ7me4WV5kRCFj2Bdu7pyf71XqACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIL2SSGynkiGZEjYqPfFcUlzJFFDexX8j3ryYeI5PHP59vzrvKqR6ZZR3HnpbRrLnO4DoaAMaXX9Shmjhk05Vkk+4pJya6NSSoJGDjkVBNZ2888c8sYaSL7jZPFWKACiiigAooqG8do7Od1OGWNiD6HFAE1Fee2d5M93EtxeTrEWAc+aeBXW6RqPnyyWjTLcNEu5Zl/jX396ANWiq1/dGztTMsfmncqhQcZ3MF6/jVGXVrqH7SHsU3WqiSXE+RsIJ+X5eTweCB9aANeis59U2mZRDl1eNY13f6wPjB6cc7v++arWmoXEKu00Je3+1vF5plywzIQvy4+70HX8KA6XNqiss6wqaklpIsK738tQJwZM4OCUHQHHr3HFLbaqZ2kdoVW3Tfl1l3Mm3++uPl6epoA06KytO1uK+uVhUwZdC6eVOJCAMcMB908+/fmprm/ljuJIbe3ExhjEkpaTZgHOAODk8H0+tD0Av0VjtrgWzadrY7gsbiNXyWVxnPTthv8AvmtC3uftE1wirhIWCBs/eO0E/wAxQBYooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKYkscjMqSKzIcMFOSPrT6L3DYKKKKACiiigAqvf/wDIPuf+uTfyNWKQgEEEZB7UAeYV0Pg7/j/n/wCuX9RXRf2Tp/8Az5Qf98CpreztrUsbeCOIt12rjNACXlt9qgEW/Z86PnGfusG/pUFxp3nG+/e7ftcIi+7nZgMM9efvVfoo8guZX2QS61buFkC2kRDsVIV2/hxnrgFunTNKulTZMb3Ya2NwZzH5WGzu3Abs9M47Z961KKAMpdJlWWPF0PIjuDOqeV8xJJJBbPPX0H407+ymkuRJczrKqqyriLa5DDGGbPI+gFadFAFG2tbuCPy2vVdUTZH+6wfYsc/MR7YqpqazQzO8Jm8yaEI+y3MgcjOMEH5Dz1bj8q2aKHqC0Mu30kK9lLK/zQW4idMcMcYBz7Zb86s6bZfYLNYPMMpBJLsME5P+RVuincVgooopDCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAMjR/wDj/wBS/wCuv9WrXrH0lgt7qbHoJMn82p6a7A7gGGZVJ+8RwK5qVSMILmff8zpq05Tm+VdvyNWiqi6jaMwUTDJOBkEVbroUlLZnO4tboKKKKYgqG8do7Od1OGWNiD6HFTVXv/8AkH3P/XJv5GgDhbO8me7iW4vJ1iLAOfNPArrdI1Hz5ZLRpluGiXcsy/xr7+9cJXQ+Dv8Aj/n/AOuX9RQB01/dGztTMsfmncqhQcZ3MF6/jVGXVrqH7SHsU3WqiSXE+RsIJ+X5eTweCB9av3lt9qgEW/Z86PnGfusG/pUFxp3nG+/e7ftcIi+7nZgMM9efvUdBqw19U2mZRDl1eNY13f6wPjB6cc7v++arWmoXEKu00Je3+1vF5plywzIQvy4+70HX8Kl+yCXWrdwsgW0iIdipCu38OM9cAt06ZpV0qbJje7DWxuDOY/Kw2d24DdnpnHbPvTF0A6wqaklpIsK738tQJwZM4OCUHQHHr3HFLbaqZ2kdoVW3Tfl1l3Mm3++uPl6eppq6TKsseLoeRHcGdU8r5iSSSC2eevoPxp39lNJciS5nWVVVlXEW1yGGMM2eR9AKnWwdRuna3FfXKwqYMuhdPKnEhAGOGA+6effvzU1zfyx3EkNvbiYwxiSUtJswDnAHByeD6fWltrW7gj8tr1XVE2R/usH2LHPzEe2Kqams0MzvCZvMmhCPstzIHIzjBB+Q89W4/Km/IF5itrgWzadrY7gsbiNXyWVxnPTthv8Avmp5NTIkeKKHzH80Qx/PgO23ccnHAA+tMt9JCvZSyv8ANBbiJ0xwxxgHPtlvzpYdJMFlBFHcHz4JDIkzLnJORyM8jBx1pvcS2LVndNceakkflTQvskQNuGcAgg8ZGCOwqzVaztTb+a8kgkmmffI4XaCcAAAc4GAO5qzSGFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAYun/wDHxq3+8f5tV/TXUadbgsP9WO9U9H/4/wDUv+uv9Wq7/Z9n/wA+0X/fIrlop8qa8/zOms1zNPy/Ii1VlNngMCfMTv8A7Qq/VZbC0Rgy28YYHIO0cVZreKd22YyaskgoooqyApCAQQRkHtS0UAUv7J0//nyg/wC+BU1vZ21qWNvBHEW67Vxmp6KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAMvSopI77UGeNlV5MqWGAeW6VqUUVEIckbFzlzu4UUUVZAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH/9k=)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {
"cellView": "form",
"id": "jF_yIa6UbUwp"
},
"outputs": [],
"source": [
"#@markdown #Type your database file name\n",
"#@markdown You need to fill the **basefile** input according to the database file you have uploaded.\n",
"basefile = 'mybase.gw' #@param {type:\"string\"}\n",
"\n",
"#@markdown Then execute all cells one by one with “>” button, including this one, or press Ctrl+F9 to execute them all."
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "1gApp3nC27vo"
},
"source": [
"##Building Ocaml with Opam\n",
"\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "a6ITFlOg1wEA"
},
"outputs": [],
"source": [
"#Installing Ocaml environnement needed to build Geneweb (takes 15-20 min, be patient!)\n",
"!add-apt-repository -y ppa:avsm/ppa\n",
"!apt update\n",
"!apt install opam libgmp-dev xdot\n",
"!opam -y init --compiler=4.14.1\n",
"!eval $(opam env)\n",
"!opam install -y calendars.1.0.0 camlp-streams camlp5 cppo dune jingoo markup oUnit ppx_blob ppx_deriving ppx_import stdlib-shims syslog unidecode.0.2.0 uucp uutf uunf"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "OdVIltaiFADP"
},
"outputs": [],
"source": [
"#[OPTIONAL] Verify installed versions of Ocaml and Opam versions, list Opam dependencies\n",
"!opam exec -- ocaml --version\n",
"!opam exec -- opam --version\n",
"!opam list"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "h3d_lUG-cXMK"
},
"source": [
"## Clone and build GeneWeb"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "ZdUDG0-zEycK"
},
"outputs": [],
"source": [
"#Clone GeneWeb, checkout selected branch\n",
"!git clone https://github.com/geneweb/geneweb\n",
"!cd geneweb && opam exec -- ocaml ./configure.ml --sosa-legacy --release && opam exec -- make distrib"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "cij0oB2fe42d"
},
"outputs": [],
"source": [
"#Import your Geneweb database. Log file stored in /bases/ if needed.\n",
"!cd geneweb/distribution/bases/ && ../gw/gwc -f ../../../$basefile -stats -cg > import.log"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "WE_b3wDIj6va"
},
"source": [
"## Lauch Geneweb server"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "gKpkYEtkhf0Y"
},
"outputs": [],
"source": [
"# Show the URL of Geneweb server on this Colab environnement. Dont click before the gwd server is launched (next step).\n",
"from google.colab.output import eval_js\n",
"print(eval_js(\"google.colab.kernel.proxyPort(2317)\"))"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"id": "y5VrJTdlZ8GW"
},
"outputs": [],
"source": [
"# Launch Geneweb server and clic on previous given Colab URL …-2317-colab.googleusercontent.com/ to test your database in live!\n",
"!cd geneweb/distribution/ && gw/gwd -hd gw -bd bases"
]
}
],
"metadata": {
"colab": {
"provenance": [],
"include_colab_link": true
},
"kernelspec": {
"display_name": "Python 3",
"name": "python3"
},
"language_info": {
"name": "python"
}
},
"nbformat": 4,
"nbformat_minor": 0
}